如何将PC游戏移植到用C++编写的Android上

Squ*_*all 3 c++ android porting

我想创建一个像Space Invaders这样的简单游戏.我知道我可以使用Android NDK,但我必须移植我使用的库.我不能使用第三方专有库.

我将使用OpenGL,但OpenGL API在Android上似乎有所不同.我必须使用jpeg和png纹理,并编写文本.我可以为Android编译libjpeg,libpng和freetype吗?

我不能具体的游戏引擎(C++)和渲染例程(C++和OpenGL)的实现,因为这是复杂的部分.

我准备为每个平台实现组件.窗口系统和用户输入没有问题,因为我将为每个系统使用特定的实现,这对我来说很简单.

我在PC上使用SDL及其音频扩展,但它易于使用.我可以使用Android的特定音频库.

谢谢

Alo*_*ave 5

我可以为Android编译libjpeg,libpng和freetype吗?

是的,您将不得不重新编译专门针对Android的所有本机库.是的,您确实需要您计划使用的所有第三方本机库的源代码,因为通常当我们在Android之外编译和链接这些库时,它们链接到glibc但不幸的是,由于liscence和性能问题,Android不使用glibc.Android使用称为libc的glibc的淡化版本.对于大多数常用功能,它与glibc具有匹配的符号名称.但据我所知,libc没有一些与Strings相关的功能,它肯定没有一些posix支持.如果您的本机库使用任何已弃用的功能,则必须通过使用libc支持的替代功能并相应地编写lib来为这些功能找到解决方法.

此外,正如您所指出的那样,您必须使用NDK将Java(Android app/fwk)与本地世界(C++)连接起来.

虽然这听起来很简单,但根据我的经验,在Android上编译本机库(Android移植)传统上非常耗费时间而且不能保证过度使用.