Opengl es 将Wii和/或PSOne游戏移植到OpenGL ES
我被要求调查将Wii游戏和一些(索尼)PSOne游戏移植到OpenGL ES(你能猜到是什么平台吗?) 我以前从未进行过这样的游戏端口(并将聘请人员进行),但我想了解这个过程Opengl es 将Wii和/或PSOne游戏移植到OpenGL ES,opengl-es,porting,wii,Opengl Es,Porting,Wii,我被要求调查将Wii游戏和一些(索尼)PSOne游戏移植到OpenGL ES(你能猜到是什么平台吗?) 我以前从未进行过这样的游戏端口(并将聘请人员进行),但我想了解这个过程 Wii使用OpenGL吗?如果没有,它使用什么?移植到OpenGL/OpenGL ES有多容易 是否有任何资源/书籍/博客可以帮助我理解这个过程 我的公司必须成为Wii的官方开发者吗?如果是,我从哪里开始这个过程 游戏控制台不使用OpenGL,而是使用自己的自定义库。主要原因是它们速度很慢,而且内存很少。所以你需要挤出每一
游戏控制台不使用OpenGL,而是使用自己的自定义库。主要原因是它们速度很慢,而且内存很少。所以你需要挤出每一点你能得到的性能。这意味着:自定义代码。通常,您会得到一个带有开发人员工具包的框架,它可以让您开始工作,然后,您就可以从中构建代码。最终,您将开始用自己的特殊代码替换开发工具包中的部件,以获得所需的所有速度和特殊效果 PSOne游戏在PS3上如此丑陋的原因在于,尽管开发人员可以访问源代码,但收入并不能证明触碰代码是合理的 这就是游戏开发如此昂贵的原因之一:每一款游戏(或多或少)都是一款全新的产品。有时候,游戏公司可以重用上一个版本中的一些代码,但更多的时候,他们不得不重新开发所有的东西。他们彼此也不怎么交谈 近年来,工具包变得更加复杂和强大,你可以获得完整的游戏引擎(具有各种效果和3D支持),但每个引擎都是一种完全不同的野兽,因此你甚至不能将代码从引擎a复制到引擎B 今天,媒体内容(视频、音频和渲染序列)非常昂贵,以至于实际的游戏引擎通常只是一个小细节,所以这不会很快改变 最终结果:如果你想移植一个游戏,为硬件编写一个模拟器(它通常非常简单,允许你运行各种游戏) [编辑]要为Wii开发软件,请参见此处:
对于Wii仿真器,请参见当我还是一名新的游戏程序员时,我移植了一些游戏,从使用一个版本的引擎到一个更新的版本(在这个版本中,向后兼容性既不被忽视也不被追求)。甚至复制(可能重命名)这些文件并将它们放在新项目中的一个家中都是一点工作。随后,程序如下:
- 重新编译
- 修复数百个错误中的许多[在许多地方,同一个错误反复出现]
- 将新游戏引擎的调用“连接”到旧代码中的相应调用
- 从旧代码到新游戏引擎的“连线”函数调用
- 处理其他奇怪的事情(例如,在旧游戏引擎中,2d游戏本身会“旋转”纹理;在新版本中,引擎会这样做(在特定平台上))
- 而且,虽然我记不清楚这一点,但它可能与一堆
混合在一起,将代码的某些部分整理出来,以便实际编译,并可能创建稍后填充的函数存根李>#ifdef
最后,我不认为Wii使用OpenGL,我真的不知道该向您指出哪里可以获得进一步的帮助。您可能想做的是从设计游戏的架构开始,为新游戏编写详细的规范 一旦您有了这个,因为您将重写代码,您可能会发现一些不处理控制台的业务逻辑可以移植。但是,任何涉及I/O、用户交互或图形/声音的内容都将被重写,所以您最好从头开始 规范非常重要,确保您了解当前游戏的工作方式,以便新端口能够提供相同的用户体验(如果需要的话)
如果这是体验的一部分,你可能想保留相同的bug,比如,如果我知道在Wii中我可以跳下并从墙上弹下来安全着陆,那么如果在新版本中我不能做到这一点,那可能会很麻烦。将PS1游戏移植到iPhone上将是一项相当艰巨的任务,它们的工作方式截然不同。我相信这是可行的,但要将所有定点数学和缺乏基于Z缓冲区的渲染替换为真正的图形芯片,需要做大量的工作 Wii会容易得多。Wii API与OpenGL非常相似。然而,Wii有一些非常好的固定功能,这在任何其他基于GL的平台上都是不可用的。应该是可行的,不过 我不确定我还能说什么。多年来签署了太多的NDA,无法100%确定我能说什么和不能说什么;)