StickEngine-架构5-GamePlay基础结构

梦想游戏人
目录:
游戏开发

整体概述是    http://dreamyouxi.com:7129/blog/1203

这里指的是战斗部分的基础代码结构,在这个结构之上,可以构建自己的GamePlay架构。

在服务端中,基础代码结构和Unity引擎类似,传统的面向对象组件式编程,通过这种策略,让使用者尽可能用组合替代继承。

GamePlay基础主要概念:

1.GameObject:

组件的运行实体和容器,对象通信载体和组件间的中间件,内存布局上对象建是平行关系,但是可以借助Transform组件,构建树形管理型对象。

2.CppBehaviour:

脚本基类,大部分业务逻辑将会在这个里面进行运作,生命周期函数,和Unity引擎类似,Awake Start Update OnDestroy OnTrigger  OnContactEnter OnContactStay  OnContactExit 等。

3.Transform:

3D数学变换组件,和Unity引擎类似,基础属性有position scale rotation,构建三维世界的基础,可组成树形场景结构,提供基础3D运算。

4.Rigidbody,Collider,Joint, Ragdoll  等

提供基础物理属性和概念,作用和语义和Unity引擎保持一致,赋予服务器物理模拟和查询的能力。

5.Prefab:

提供序列化和反序列化,构成服务端游戏资源管理,用于构建游戏对象(GameObject)

以上是游戏对象相关,在服务端还有另外一个概念,叫房间组件。

基本语义是非游戏逻辑对象的东西,是单例组件,用ECS中的概念来举例的话,这更像是System,举几个例子说明他们的区别:

1.弹道计算,这个是GameObject,书写CppBehaviour进行逻辑开发,

2.载具生成器,这个是房间单例,本身是非游戏对象,只是单纯的逻辑概念,他会生成坦克汽车等游戏对象。

3.游戏结束,这个是房间单例,全局游戏结束的逻辑块。没有任何游戏对象生成,根据已有的信息进行逻辑决策。

4.快照生成器,这个是房间单例,每一帧结束时,如有必要会生成当前游戏世界快照。

总结:

上面是提供基础的GamePlay结构,在此之上,可以构建其他GamePlay体系,比如ECS,MVC模式等

从这个基础角度来看,那么这个的定义就是一些超底层的抽象:IO,网络,物理,资源,生命周期等。

Scroll Up