我打算为手机制作一款游戏。我的目标平台是 iOS 和 Android。我希望能够在 windows 和/或 linux 上进行测试。除了一般的游戏开发经验之外,我对此有点过头了,所有技术对我来说都是相当新的。我做了相当多的研究并得出结论,游戏应该用/移植到 C++ 中,以确保我的大部分引擎都可以轻松移植到多个设备上。
我更喜欢的另一件事是最初用 java 编写游戏并移植到 C++,因为那是我最舒服的地方,并且会以最快的速度完成它。
现在我面临选择是使用 cocos2d-x 等游戏引擎,还是从头编写引擎并使用 OpenGL ES 2.0 进行渲染的问题。最初我认为使用 cocos2d-x 会更好,因为我对 OpenGL 没有很多经验。然而,我使用 cocos2d-x 的问题是,因为我想最初用 java 编写游戏,所以我将很难移植引擎以符合 cocos2d-x(或者我必须学习关于 cocos2d-x 引擎的所有内容,然后编写我的引擎来模仿 cocos2d-x 引擎.. 似乎是多余的)。
经过进一步考虑,我认为使用 OpenGL 编写自己的引擎实际上是更好的选择。我可以使用 PowerVR SDK 和 JOGL 来模拟 GLES 环境。这看起来也不错,因为我可以让 GL 在碰撞检测和转换方面为我完成大部分工作。我唯一的问题是,由于游戏也将支持多人游戏,因此 GL 碰撞检测等基本上没有实际意义,因为无论如何我都必须在服务器端进行碰撞检查以防止游戏被轻易入侵. 当然对于单人游戏来说这种方法是可行的。
显然这个决定是主观的,取决于我个人的喜好,尽管我希望给一些更有经验的人提供足够的背景来发表他们的意见。
话虽如此,我的问题是:考虑到这些参数 - 对我来说,使用 cocos2d-x 并遭受从头开始用 C++ 构建游戏的头部创伤会更好,还是最初编写自己的引擎会更好在java中并通过它的OpenGL方面挣扎?