1

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

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

4

3 回答 3

3

好吧,它通常是您为满足您的需求而做的事情。没有一种正确的方法。

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

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

祝你好运!

于 2011-01-08T00:16:13.367 回答
3

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

对于人工智能,通常需要多种算法的混合。假设你在做单人自由模式星际争霸之类的事情,人工智能可以结合启发式(即预先制定的策略,例如以压倒性的力量淹没玩家群,创建二垒)和最小-最大算法决策(即在遭遇战中,像在国际象棋中那样干掉最具威胁性的单位)。这是一个有趣的话题,也是许多程序员/科学家职业生涯的基础。

于 2011-01-08T00:22:53.360 回答
0

看看这个这个页面,有很多游戏开发者的资源

于 2011-01-08T00:07:50.303 回答