2009-07-24 55 views
9

用于开发业务和参考应用程序。现在我必须做一个iPhone游戏。你可以分享什么技巧可以帮助我:什么是开发iPhone游戏时的“陷阱”?

  1. 了解项目
  2. 的范围定义交付
  3. 指定游戏和其它参数
  4. 估计开发工作
  5. 测试游戏

一个很大的问题,我知道。谢谢!

+1

应用程序商店审查过程 – 2009-07-24 07:55:40

+1

如果您要求提示和技巧,这应该是社区Wiki吗? – Xetius 2009-07-24 08:04:55

回答

2

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

所以,一个问题是,这个游戏“你必须”开发什么?如果它是数独,不用担心。如果这是一场实时的3D空间战斗,那是另一回事。

如果您的业务应用程序在iPhone上,那么您可能使用了100%的Objective-C。 (如果您在桌面上执行C#或Java应用程序,那么欢迎管理自己的内存。)有些人会告诉您Objective-C的运行时类型管理对于复杂游戏来说太慢了。人们肯定会在Cocos2D和其他引擎上使用OK游戏,但这又取决于游戏。有专业开发人员只能使用C++甚至直接工作。

36

我的回答并非遵循您所寻找的瀑布方法学回应,因为我认为您需要在计划,设计,实施和测试之前学习游戏编程的技巧。游戏编程与业务编程以及整个其他领域非常不同。

由于您在编程游戏方面缺乏经验,因此您需要在编程游戏期间之前学习一些概念,更不用说在iPhone上编写一个概念。

其中的一些事情将取决于您是在编程3D游戏还是2D平台风格。

OpenGL ES 您需要学习的第一件事是OpenGL ES programming language。这基本上是一个3D API,它使您可以绘制3D基元。如果您正在编写2D游戏,您仍然需要使用它,因为使用GPU进行加速会很快。 在Google上有一些很好的教程,你应该从头开始。

矢量数学 如果你正在做什么3D,你需要了解三维矢量数学,载体主要是用于一切游戏,摄像头的样子方向,人物的位置,速度,碰撞检测等。 2D游戏编程仍然需要2D矢量(x,y)减去z分量。

碰撞检测 我怎么知道我的球何时撞墙?答案是碰撞检测。还有如球到球,AABBOOBB,凸包上,三角网等

AI多种形式的碰撞检测 我如何攻击我的玩家角色的敌人?人工智能是赋予NPC /敌人智能决策能力的另一大领域。 AI可以很简单,比如else语句,但通常需要有限状态机或模糊逻辑才能生效。

寻路 如果你想为一个字符从A点移动到B点,同时避免敌人和障碍物移动,你将需要使用一个寻路算法。 A星(A *)是最受欢迎的之一。

场景图 如果您希望在屏幕上10-20 +敌人的时间,你需要编写一个场景图来管理资源的动态图,逻辑以及创建和删除。如果你不知道多态是什么,你需要知道它,因为它是游戏对象遵守的基本要素,并且与场景图形紧密相关。

物理 位置,速度,加速度,重力和光线都是用向量来表示,您可能需要刷上你的物理数学以代码的任何游戏。从牛顿第二定律F = MA开始(力=质量*加速度)。像Bullet,ODE,Newton,Tokamak这样的开源物理引擎会让事情变得更简单,这意味着你不需要自己编写这些物理规则。

Objective-C++ 虽然是推荐的,但这是可选的。如果你不了解C++,这实质上是C++和Objective-C的混合体。由于C++的速度和C++中第三方库的可用性,我倾向于将C++用于核心游戏引擎和编程。

声音 如果你需要的声音,你可以先走一步,使用简单的音频框架,苹果公司提供,但3D定位音频将需要更好的东西。我会建议学习iPhone的FMOD SDK。正如@Stowelly所说,FMOD需要一个商业分销许可证,但也有其他人可以查找哪些是免版税的。


使用游戏引擎 有可用于iPhone游戏引擎的那一刻,这将使它更容易让你获得一个游戏罢了,你的情况,这将是更快,虽然你仍然会需要学习我上面提到的概念。

这里有一些游戏引擎,我知道的:

Unity3D 这可能是最流行的,我知道的。 Unity是一款PC/Mac游戏引擎,可让您在Mac上编写代码并编译为Windows/Linux/Mac OS X.我怀疑iPhone的建筑是否与其他平台直接兼容,我想你会被限制在iPhone上你开始了一个新项目。然而,该引擎的商业部署成本为199至399美元。

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

这里有一些其他检查出:

Ston3D for iPhone

OOlong Engine

SIO2Engine

iTGB for 2D Games