游戏性基础系统的组件(1)

游戏引擎之间的重要差异,莫过于其游戏性组件设计与实现的差别。然而,不同引擎之间也有出奇多的共同模式。

 

【一】单一庞大的类层次结构,如虚幻引擎

这种风格使用OOP中的继承多于组合,这显然不符合现代OOP所倡导的多用组合原则。

也会引发很多问题,如多重继承的致命钻石,冒泡效应(虚幻引擎中的Actor类)

但是max-in类可以稍微缓解上面的问题

【二】基于组件的模型

类似unity的架构模型,游戏对象类GameObject只是一个容器,本身不具备任何行为和属性(Transform除外)

游戏对象的各种行为和属性被分解到各种组件上。想要什么功能直接往GameObject上挂一个组件即可

这种组合多于继承的风格现在很受欢迎啊,即使在游戏领域之外也是如此。

【三】纯组件模型

把组件模型发挥极致,连GameObject都不要了,但是组件本身要维护一个标识符,用来标记它现在是属于哪一个游戏对象的。

但是组件和组件以及游戏对象之间的通信变得比较麻烦了。

 

参考:《游戏引擎架构》

转载于:https://www.cnblogs.com/dongerlei/p/6472572.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值