Cocos 技术派|实时竞技小游戏技术实现分享

本文介绍了华夏乐游开发的实时竞技小游戏《保卫豆豆-欢乐枪战》的技术实现,重点探讨了ECS架构、网络同步机制及其在小游戏平台上的优化策略。通过ECS架构降低代码复杂度,网络同步采用优化的快照插值方式减少带宽占用,并针对网络抖动进行了航位推测法和抖动缓存法的优化。
摘要由CSDN通过智能技术生成

在前阵子举办的 Cocos 开发者沙龙上,来自华夏乐游 BigRoad 工作室的客户端主程李清,为现场开发者分享了其团队制作的实时竞技小游戏《保卫豆豆-欢乐枪战》技术实现方案,深受开发者喜爱。在征得华夏乐游的同意后,技术派专栏将通过本文对李清的演讲进行梳理总结,把他们宝贵的技术经验分享给因为各种原因没能去到沙龙现场的开发者伙伴们!

9e1c7558529626fe3dd68e09db9774de.jpeg

李清

关于华夏乐游

北京华夏乐游科技股份有限公司是一家专注于游戏研发与发行、泛娱乐IP打造和经营的创意文化企业。代表作品《奔跑吧-撕名牌大战》3、4、5系列,《极速前进-狂野飞车》、《星河战神》。目前聚焦于以 H5 为代表的无端和轻端游戏,先后研发和发行了《欢乐消消消》、《保卫豆豆-欢乐枪战》、《全民小镇》等微信小游戏,同时多款游戏上线微信小游戏精品平台。

3e3f77c63e84e94d106e98dc574910d0.jpeg

游戏简介

《保卫豆豆-欢乐枪战》是一款基于 Cocos 引擎研发的休闲射击乱斗小游戏,融合了射击、MOBA、吃鸡等热门玩法。

2ab14c0b522b790f4c475157d351ba8f.jpeg

游戏特点:

  • 萌宠射击,实时竞技

  • 四人乱斗,双人组队

  • 多个英雄,身怀绝技

本文主要从三个方面来进行分享,分别是:

  • ECS 架构

  • 网络同步机制

  • 技术难点及解决方案

一、ECS架构

1、ECS 架构目的:

降低不断增长的代码库的复杂度。

2、游戏原型需求:

  • 子弹:移动、碰撞

  • 英雄:移动、碰撞、发射子弹

  • 炮台:发射子弹

3、传统架构的弊端

要实现游戏原型,按照我们之前的做法,是用一个类来实现一种游戏实体的所有功能,这个类既有状态,又有行为。代码复用使用继承来解决。如果用这种做法,那么类大概长这个样子:

870452bf0a56a0ffe40fc5f7d60166f1.jpeg

类图

大家可以看到,父类会有很多共享的属性和方法,子类继承父类去做具体的事情。但是这种做法有很多弊端,比如说,随着项目规模的增长,代码库复杂度也不断增长,父类会越来越复杂,子类的功能越来越不明确,与多个类相关的代码你不能太确切知道应该放在哪里,拓展功能的时候极其不灵活,如果后期需要增加新功能的话,我们需要对整个继承树进行功能重构才能使其比较合理。

在经历过几个项目之后,我们回头反思,发现之前的做法,违反了很多面向对象设计原则。比如说:

  • 单一责任原则(Single responsibility principle)

    每个类都应该只有单一的功能,并且该功能应该由这个类完全封装起来。

  • 组合重用原则(Composite Reuse Principle)

    默认情况下应当使用组合,只有在必须时才使用继承。

在总结了从前的项目经验,并参考了大量技术文章后,我们找到了一种架构,把大量的模块进行拆分解耦,然后再集成起来,这就是我们接下来要介绍的 ECS 架构。

4、ECS架构

ECS 分别是:

  • Entity(实体)

  • Component(组件)

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值