es

游戏对象模型设计与实现(四)

最近几个月一直在写一些与游戏无关的程序放到 AppStore 上, 主要是用了一些 FRP 的东西. 关于 FRP, 以后再写一些文章介绍. 期间抽空在 iOS 把 Artemis 实现了一遍, 开始做一个横版 2.5d 的动作游戏. 等实现完了发现有人把另外一个 Objective-C 的实现放到了 GitHub 上. 不过 GitHub 上的版本貌似是基于 Artemis 0.96 的, 其中后来 Artemis 的一些优化比如 Aspect 等并没有同步进去. 我是直接基于 Artemis 的最新版本做的, 也不算重复发明轮子了.

游戏对象模型设计与实现(三)

由于本人对游戏实现认识不足, 总结一下几种游戏设计模式的区别仅供参考, 也许你有更深入的认识, 欢迎交流. 对于我这种菜鸟来说, Entity-System 比较适合.

基本上所有的运行期动态游戏对象实现的目的大部分是为了实现数据驱动的方式. 数据驱动的好处就在于可以明确分离 程序 - 策划 在游戏实现环节的工作.也很方便 程序 开发一些编辑工具给 策划 使用,提高 策划 的工作效率,满足 策划 高度定制游戏的需求.

游戏对象模型设计与实现(二)

严格来说,一个游戏的实现框架有三种:

  • Object-Centric:面向对象方式的。
  • Component-Based:面向组件的。
  • Entity-System:实体系统?

我们依次来分析这三种实现方式的优点和缺点.

游戏对象模型设计与实现(一)

准备做一个 RPG 的游戏。由于以前没有做过游戏,首先学习了 cocos2d-iphone 的一些资料,再从网上看了一些写游戏的教程,自认为可以动手开始写框架的时候,发现遇到了相当大的困难。

cocos2d-iphone 的教程或者网上的一些其他教程有一个共同点:都是拿一个 太空大战 或者 坦克大战 之类的作为实现的例子。诚然这种简单的游戏可以充分考虑展现游戏框架本身的特点,但是从游戏编程上来说,有很大的误导之嫌。再加上由于没有游戏编程的经验,同时受这些教程或者书籍中的这些例子的误导,思维上还是以写软件的方式来写游戏,认为游戏不过是一种特殊的软件。