Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是「;“哥特查斯”;在开发iPhone游戏时?_Iphone_Opengl_Cocos2d Iphone_Unity3d_Game Engine - Fatal编程技术网

什么是「;“哥特查斯”;在开发iPhone游戏时?

什么是「;“哥特查斯”;在开发iPhone游戏时?,iphone,opengl,cocos2d-iphone,unity3d,game-engine,Iphone,Opengl,Cocos2d Iphone,Unity3d,Game Engine,我习惯于开发商业和参考应用程序。现在我要做一个iPhone游戏。您可以分享哪些技巧来帮助我: 了解项目的范围 定义可交付成果 指定游戏和其他参数 评估开发工作 测试游戏 我知道这是个大问题。谢谢 我的答案不是按照您所寻找的瀑布式方法论的反应,因为我认为您需要先学习游戏编程技能,然后才能规划、设计、实施和测试它。游戏编程与商业编程以及整个其他领域本身都有很大的不同 由于您缺乏游戏编程经验,在编写游戏之前,您需要学习一些概念,更不用说在iPhone上编写游戏了 其中一些事情将取决于您是在编写3D游戏

我习惯于开发商业和参考应用程序。现在我要做一个iPhone游戏。您可以分享哪些技巧来帮助我:

  • 了解项目的范围
  • 定义可交付成果
  • 指定游戏和其他参数
  • 评估开发工作
  • 测试游戏

  • 我知道这是个大问题。谢谢

    我的答案不是按照您所寻找的瀑布式方法论的反应,因为我认为您需要先学习游戏编程技能,然后才能规划、设计、实施和测试它。游戏编程与商业编程以及整个其他领域本身都有很大的不同

    由于您缺乏游戏编程经验,在编写游戏之前,您需要学习一些概念,更不用说在iPhone上编写游戏了

    其中一些事情将取决于您是在编写3D游戏,还是选择2D平台风格

    OpenGL ES 你需要学习的第一件事是。这基本上是一个3D API,使您能够绘制3D基本体。如果您正在编写2D游戏,您仍然需要使用此功能,因为它使用GPU加速,速度很快。 谷歌上有一些不错的教程,你应该从这些教程开始

    向量数学 如果你要做任何3D的事情,你需要学习3D向量数学,向量基本上用于游戏中的一切,相机的外观方向,角色的位置,速度,碰撞检测等。2D游戏编程仍然需要2D向量(x,y)减去z分量

    碰撞检测 我怎么知道我的球什么时候撞到墙上?答案是碰撞检测。碰撞检测有多种形式,如球体到球体、凸包、三角形网格等

    AI 我如何让敌人攻击我的玩家角色?人工智能是另一个重要的领域,它使NPC/敌人能够做出智能决策。人工智能可以很简单,比如if-else语句,但通常需要有限状态机或模糊逻辑才能有效

    寻路 如果要在避开敌人和移动障碍物的同时将角色从点a移动到点B,则需要使用寻路算法。明星(A*)是最受欢迎的明星之一

    场景图 如果您希望一次在屏幕上显示10-20多个敌人,则需要编写场景图来管理动态绘图、逻辑以及资源的创建和删除。如果你不知道多态性是什么,你需要知道它,因为它对于你的游戏对象来说是必不可少的,并且它与场景图联系在一起

    物理学 位置、速度、加速度、重力和光线都用矢量表示,为了编写游戏代码,你可能需要复习物理数学。从牛顿第二运动定律F=MA(力=质量*加速度)开始。一个开源的物理引擎,如Bullet、ODE、Newton、Tokamak,将使事情变得更简单,这意味着你不需要自己编写这些物理规则

    Objective-C++ 尽管建议这样做,但这是可选的。如果你不知道C++,这本质上是C++和Objtovi.C的混合。我倾向于使用C++来实现核心游戏引擎和编程,因为C++的速度和C++中第三方库的可用性。 声音 如果你需要声音,你可以继续使用苹果提供的简单音频框架,但是3D定位音频需要更好的东西。我建议学习iPhone的FMOD SDK。正如@Stowelly所提到的,FMOD需要商业发行许可证,但也有其他免版税的许可证


    使用游戏引擎 目前iPhone有游戏引擎可供使用,这将使你更容易开始游戏,在你的情况下,这将更快,尽管你仍然需要学习我上面提到的概念

    以下是我知道的一些游戏引擎:

    这可能是我所知道的最受欢迎的。Unity是一个PC/Mac游戏引擎,可以让你在Mac上编写代码,并为Windows/Linux/Mac OS X编译。我怀疑iPhone的构建是否与其他平台直接兼容,我想如果你开始一个新项目,你会被限制在iPhone上。但是,该引擎的商业部署成本为$199-$399

    这是一个开源2D游戏引擎,可能对很多游戏都有用。值得一看。托管在谷歌代码上

    以下是其他一些要查看的内容:


    商业应用程序和游戏之间的主要区别,尤其是在移动设备上,是性能的重要性。一个放置表单并等待用户输入的应用程序可能在此期间没有做任何事情。另一方面,游戏循环一直在进行,可能做了很多。业务程序员不习惯用这些术语来思考,但游戏会消耗电池电量,不管你信不信,你如何实现游戏将对电池消耗的速度产生很大影响

    所以,一个问题是,你“必须”开发的游戏是什么?如果是数独,不用担心。如果这是一场实时3D太空战,那就另当别论了

    如果你的商业应用程序在iPhone上,那么你可能会使用100%的Objective-C(如果你在台式机上使用C#或Java应用程序,那么欢迎管理你自己的内存)。有人会告诉你,Objective-C的运行时类型管理对于复杂的游戏来说太慢了。人们当然会用cocos2da制作OK游戏