在游戏中设计和加载关卡

时间:2011-01-07 23:57:57

标签: iphone opengl-es levels

我对游戏编程很陌生,所以请原谅我非常模糊的问题:P

我已经开始在iPhone上使用OpenGL开发2D游戏作为自学游戏编程的手段。我已经到了我编写引擎的地步,得到了碰撞检测工作和其他动画之类的东西,但现在我需要真正开始创建一些可玩的东西,我的第一个重要问题是在关卡上。对于我的项目,我将使用Tiled map作为关卡,我的问题是:我将如何“设计”关卡?我的意思是,程序员如何知道地图中的某些敌人应该发挥作用?他们如何在将要发生的水平中指定某些事物?总体而言,是否有一种设计级别的方法(从编程角度来看)并能够加载它以使用它?游戏程序员如何做到这一点?我当然知道有一个敌人的AI部分,所以我当然不会为每个敌人预先编写每一个动作,但至少基本上知道每个人何时应该发挥作用和那种事情呢?再次感谢您的帮助,如果我的问题太模糊,我很抱歉,因为我刚刚开始:D

3 个答案:

答案 0 :(得分:3)

通常你会做些什么来满足你的需求。没有一个正确的方法。

对于我多年前工作的3D平台游戏,我设计了编辑器和游戏逻辑。游戏逻辑都是C ++层次结构,每个对象都能够将消息传递给其他对象。要激活打开门的杠杆,我只需设置一个简单的“触发区”,这个逻辑对象本身就是一个逻辑对象,只需检查用户是否在球体内(因为水平被组织成某些“区域”)不需要检查不在我当前区域的触发器。触发器然后将激活杠杆(这将启动动画)。然后设置杠杆以在拉动门时启动门。由于任何对象都可以作为触发器,因此将触发器链接在一起很简单。我甚至可以为某些点分配触发器。如AnimationBegin,AnimationEnd,在一定时间之后或者它可以键入动画中的特定关键帧。由于每个对象都可以有这样的触发器,因此很容易设计编辑器以允许您选择触发事件,然后设置触发发生时激活的对象。当然,这些触发器可能恰好发生在一个动画上,这个动画允许我做一些事情,比如同步物体运动以获得更多令人讨厌的陷阱......

这只是一种方法,它可以很好地满足我们的需求。有许多不同的方法可以解决这个问题。没有一种方法是正确的,所以你最好的选择是阅读“游戏逻辑”和“游戏对象行为”等内容。更重要的是,您需要弄清楚您正在进行什么样的交互,并考虑您将需要的状态转换。与直觉相反,我总是发现设计框架工作比编写实际逻辑要复杂得多。

祝你好运!

答案 1 :(得分:3)

你可以从传统的方式开始:让暴徒静止不动。您的地图数据可以包含怪物,它们所在的位置,它们的类型以及它们的移动方式。精心设计的地图可以使游戏变得非常具有挑战性和乐趣。

对于AI,通常需要多种算法的混合。假如你正在做类似于单人游戏的自由模式星际争霸,那么AI可以是启发式的组合(即预先制作的策略,例如充满力量的玩家群体,创造第二垒)和最小 - 最大算法决策(即在一次遭遇中,像在国际象棋中那样取出最具威胁性的单位)。这是一个有趣的话题,也是许多程序员/科学家事业的基础。

答案 2 :(得分:0)

查看此this页面,游戏开发人员有很多资源

相关问题