zhouqijie

游戏对象(Game Object)

游戏的动态元素通常会以面向对象的方式设计。这种方式非常直观。

通常使用游戏对象(GameObject, GO)去描述游戏世界的几乎任何动态元素。

游戏对象有时也成为实体(entity)或者代理人(agent)等。

Cre:Unity引擎部分静态元素也用游戏对象描述。

面向对象思想:

游戏对象本质上是属性以及行为的集合。

同一类型的所有实例共享相同的属性行为,但是每个实例的属性的值可以不相同,如果行为是数据驱动的,那么不同实例的行为也可以有差异。

面向对象还包括继承机制,继承有利于代码复用。


1.游戏对象模型

Jason:在计算机科学中,对象模型(object model)一词有两个相关但不一样的意思。它可以指某编程语言或形式设计语言所提供的特性集,例如C++对象模型。另一个意义是指,某面向对象编程接口,如类和方法的集合,以及为特定问题所设计的相互关系,例如Excel对象模型。游戏对象模型(game object model)含有上述两个方面的定义。


2.工具方设计和运行时设计

以世界编辑器呈现给设计师的对象模型,不必和用于运行时的对象模型相同:

因此引擎一般有两个不同但相关的对象模型:

  1. 工具方对象模型(tool-side obbject model)是一组设计师在世界编辑器看到的游戏对象类型。
  2. 运行时对象模型(runtime object model)是把工具方对象模型实现于运行时的对项目信息。可能和工具方对象模型相同或有直接映射,也可能实现完全不同。

Jason:有些引擎中,工具方和运行时会共享游戏对象模型实现。其他一些引擎中,运行时和工具方对象模型实现则不一样。

(END)