事件发展在游戏中起什么作用?


9

大多数应用程序开发都是基于事件的开发,但是考虑到开发游戏的游戏循环风格以及对高性能/吞吐量的(通常)需求,使用事件进行开发的角色是什么?经常涉及的同步/锁定是否会产生更大的影响?

例如:-网络[层]如何将收到的数据通知游戏循环?-物理系统如何通知碰撞

我问,因为我记得有一次使用事件进行游戏开发是严格禁止的时间。这改变了吗?

Answers:


5

活动系统功能强大,并且制作速度非常快。

它们还允许您以非常松散的耦合结构来调制代码段。他们使您可以批处理工作并完成任务。与多核和异步功能配合良好。

物理-碰撞回调,激活或静止对象可以很好地转换为事件。联网-尽可能多地进行事件(语音聊天等。例外)游戏逻辑-自然地适合事件模型菜单和UI-在基于事件的系统中工作出色

许多现代的控制台和中间件库也使用事件。

输入设备的渲染器和轮询可能会有些混乱。尤其是在使用运动控件时,因为事件可能会引起明显的延迟,并且与轮询格式背道而驰。


4

我会说仍然建议使用主循环样式:它速度快,可以让您完全控制动作的顺序(这在游戏中很重要),并且更难出错。但是,如果您使用的技术允许您轻松使用事件,那么它在很多事情上都非常有用。例如,我使用它们来通知敌人何时何地死亡,何时按下键盘键...

结论:使用游戏循环来控制游戏的主要逻辑,但要记住,事件在其他情况下可能会有用。


我不同意建议使用主循环样式。主循环风格的游戏在几个方面都输给了编写良好的事件控制游戏:1)在多任务系统上,它们消耗了不必要的大量处理器来处理一组固定功能; 2)在便携式设备上,甚至在单个设备上任务系统,额外的处理器使用量会对电池寿命产生不利影响; 3)游戏越简单,与适当的事件驱动游戏相比,这些问题就越大。
山姆·哈威尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.