关于游戏中的实体系统 --- Component-Based Entity System

本文探讨了游戏开发中组件模式应用于实体系统的优势与挑战。作者最初受到游戏Entity设计的启发,尝试使用组件模式替代传统继承模式,以应对策划需求的变化。在实践中遇到组件动态添加删除、组件依赖等问题,通过研究Unity3D的API得到灵感。文章还提到游戏框架的其他关键部分,如场景管理、资源管理、服务器同步等,强调在复杂度与实用性间寻找平衡的重要性。
摘要由CSDN通过智能技术生成

首先关于游戏实体,最早有这个概念是看了这篇文章---游戏Entity设计不完全整理

最早接触游戏编程的时候,看的是老师的代码,类似于早期的游戏,使用的是最传统的继承模式的实体系统。当时就觉得继承就是面向对象的一切,认为只要不断的继承就能解决所有问题。到后来才发现,继承的一个严重的缺陷是你必须知道所有父类的具体实现,到了最后一个实体也变得非常臃肿且难以修改。后来接触了设计模式,知道了策略模式这东西,大概的意思就是使用组合代替继承,个人认为组件模式更多的就是使用了策略。

总之,第一次接触组件模式的时候感觉很兴奋,认为一旦有了这种系统,无论策划怎么变,修改起来都是轻而易举的。于是立刻找了相关资料开始尝试实现,但是真正去实现之后才发现这玩意真不容易,越写越没思路,后来只能放弃。

后来跟一个朋友提起这个系统,然后他也尝试去弄了一下,相互交流之后感觉思路更开阔,不过苦于工作繁忙一直没时间再去弄,而且实际上对这个模式依旧是只有一个模糊的概念。其实期间一直在想办法找到可以参考的框架,那样就可以站在巨人的肩膀上去看组件模式。后来又接触了U3D,发现这玩意不正是组件模式的设计吗,于是迫不及待去看她的API,还去看了相关教程,然后就非常手痒的想实现一个看看。这时候公司说要做页游,于是就让我去搭框架,我第一个就想到了组件模式,而且第一个想法是直接复制U3D的那套。

虽然复制的话结果不需要想太多,但到了细节就不知道怎么实现了,比如实体具体该怎么创建,原型和克隆该怎么管理,最关键的是组件的动态添加和删除问题。虽然游戏中去给一个实体添加组

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值