Cocos Creator《星际征服者》3D实时对战战机类游戏
演示视频
Cocos Creator《星际征服者》3D实时对战战机类游戏
联系作者
微信号:devzhl
源码下载
Cocos Creator《星际征服者》3D实时对战战机类游戏
游戏体验
- 进入游戏后有三个体验账号,可以登录不同账号体验联机对战。
- 玩家也可以进入游戏后注册自己的账号体验游戏
- 游戏第一次打开会比较慢,请耐心等待(最低配的云服务器)。
- web体验地址
- 安卓下载地址
开发环境
- 引擎版本:Cocos Creator 3.6.1
- 前端编程语言:TypeScript
- 后端框架:FastAPI
- 后端编程语言:Python 3.6
- 通讯方式:Http、Websocket
- 数据库:Mysql 8.0.28
已适配平台
H5 | 微信小游戏 | Android原生 | iOS原生 | 抖音小游戏 | OPPO小游戏 | vivo小游戏 |
---|---|---|---|---|---|---|
✔ | ✔ | ✔ | ✘ | ✘ | ✘ | ✘ |
游戏简介
《星际征服者》是一款致力于带给玩家极致实时对战体验的星际战机类游戏,为玩家带来高度紧张的星际战斗体验。在这个宇宙中,玩家将操控星际战机,参与激烈的空战。玩家需要凭借精湛的飞行技巧和快速的反应能力,在变幻莫测的战场上击败对手。
游戏玩法
-
玩家可以创建房间等待对手加入,或者直接快速开始游戏。
-
安卓端玩家通过手柄控制镜头方向,PC端玩家通过长按鼠标控制镜头方向。点击加速按钮进入加速状态,加速状态下,战机能量会减少,减少到0则会结束加速状态。蓄力炮能量满后,点击蓄力炮按钮,可以发射蓄力炮。基本操作如下图。
-
当瞄准镜锁定敌人后,瞄准度高于特定值会自动发射子弹,瞄准度低于特定值会结束自动发射子弹。
-
能量值满后,点击蓄力炮按钮发射蓄力炮(PC端可以按E发射蓄力炮)。
-
点击加速按钮,进入加速状态(PC端可以按W进入加速状态)。
-
当敌方护盾归零则会击毙敌方。
-
当被敌人击中时,护盾值会降低。
项目说明
- 基于这套源码,可以学会搭建前后端框架、使用Centos服务器部署、Http域名绑定、ICP备案、Nginx转发等游戏开发到上线的流程
- 该资源从0开始搭建了前端、后端开发框架(前端框架说明、后端框架说明),并且这套框架下已经开发了各种类型的游戏(其他源码),您可以通过该资源学习如何搭建前后端通用开发框架。
- Http域名的绑定、ICP备案、域名购买等可以参考(其他文档)
- 游戏本地启动:前端代码中把script/common/GlobalVar.ts文件中的server_url和ws_url改为本地,然后运行后端项目即可。运行指引
游戏功能列表
- 快速匹配功能:如果检测到有可加入的房间就加入战斗,如果没有则自动创建房间战斗。
- 房间系统:可以创建房间,选择房间加入战斗。
- 状态同步框架:同步玩家基本操作、预测玩家位置状态同步给其他玩家减少延迟感。
- 心跳断线检测机制:长时间收不到心跳会断开与玩家的连接。
- 游戏AI:自动攻击、自动追踪、自动瞄准等功能。
- 战机基本控制:旋转、移动、射击、加速等。
- 界面动画:锁定动画、检测敌人标记、敌人坐标显示等。
- 欧拉四元数万向锁问题处理。
- 手机端和PC端操作兼容。
- 缓动系统封装。
- 3D音效管理。
- 相机动画系统。
同步实现
- 游戏中使用的是状态同步的方式实现,即每0.1s广播所有玩家的位置状态,发射子弹等指令。
- 游戏逻辑放在房主客户端处理,而不是放在服务器处理游戏逻辑。服务器把所有的玩家操作同步给房主,然后由房主处理所有的游戏逻辑(包括碰撞检测、AI执行等)。
- 房主运算游戏逻辑与传统服务器运算优缺点对比
- 优点:
- 房主同步逻辑这样做可以大大减少服务器的压力,运算的压力全部集中在了房主客户端。服务器仅仅是做协议的分发,即使是性能很差、很便宜的服务器也可以承载大量玩家。
- 开发更加简单,因为游戏的逻辑全部在客户端,可以直接客户端调试逻辑运行,不需要服务端来写游戏逻辑。
- 可以利用引擎优势开发游戏逻辑,例如物理等较难实现的效果,可以直接使用引擎自带的物理系统,而不需要后端自己植入一套物理引擎。
- 不需要多个客户端处理一个逻辑,调试开发更加方便快捷。
- 缺点:
- 房主网络不好会影响所有的玩家,因为逻辑会集中在房主运算,房主运算结果不能及时的发给服务器,就会导致其他玩家看到的表现效果异常。
- 防作弊困难,因为所有的逻辑集中在房主客户端,房主修改数据可以很容易作弊。
- 房主断线需要自动切换其他玩家为房主处理游戏逻辑(本游戏中已处理这个问题)。
- 结合上面的原理,本游戏的同步方式更加适合低成本的游戏开发者使用,对于这种同步方式的缺点,可以通过下面的方式优化(本游戏中目前没做这些处理):
- 对于网络环境不好影响其他玩家的问题,可以通过检测房主网络状态,如果房主心跳异常可以自动切换到网络较好的房主。
- 对于防作弊问题,服务器可以对房主广播的数据进行进一步检测,确认是否有异常操作。
框架功能列表
- 前端框架文档
- 后端框架文档
- 该框架主要采用了ECS的设计模式
- 资源管理框架
- 只需要输入资源的路径,就把可以直接加载对应的资源,同时自动监听资源的释放,对应节点被销毁会自动释放引用的资源。
- 只需要输入资源的路径,就把可以直接加载对应的资源,同时自动监听资源的释放,对应节点被销毁会自动释放引用的资源。
- PROP监听者模式
- 先监听对应的属性heroName,绑定函数
- 修改heroName后,会自动触发所有绑定的函数
- 先监听对应的属性heroName,绑定函数
- 消息管理框架
- MVC框架
- 一行代码即可创建ItemDlg界面,同时自动把ItemDlgCom添加到对应节点
- 一行代码即可创建ItemDlg界面,同时自动把ItemDlgCom添加到对应节点
- UI自动转代码工具
- 选择预制体,点击自动生成代码即可生成节点数据,可以快速获取节点。
- 选择预制体,点击自动生成代码即可生成节点数据,可以快速获取节点。
- 简单的对象池功能
- 输入预制体路径,自动新增对象池管理资源
- 输入预制体路径,自动新增对象池管理资源
- 导表excel转代码
- 里面附带了现成的excel转ts工具,可以直接导出代码,只需要配置excel即可新增角色、关卡等
- 里面附带了现成的excel转ts工具,可以直接导出代码,只需要配置excel即可新增角色、关卡等
- 音效管理系统
- 时间管理系统
- 一行代码添加定时器
SysMgr.getSys(TimeSys).addTimer(this, "loop", this.loopTime, true);
技术文档
- 该源码有完整的技术文档,开发过程中遇到任何问题也可以联系作者。
- 前端框架文档:该文档详细说明了前端框架代码以及各个模块的使用
- 后端框架文档:该文档说明了后端的模块以及各个模块的功能实现
- linux服务器部署:该文档说明了如何在centos服务器上部署项目,以及部署项目所需要执行的指令
- 游戏逻辑文档:该文档说明了游戏的逻辑控制实现
- 运行指引:第一次运行项目指引
- excel游戏配置:游戏的导表配置
- https的nginx配置:配置nginx转发,配置ssl
- 其他文档:记录一些备案、服务器部署、域名配置等链接和服务器文件路径等
- 文档汇总:这里将汇总所有的项目文档,后续新增的文档可以在这里查看
游戏运营
战机配置(fighter.xlsx)
- 通过配置excel可以设置不同战机的属性值
内置插件
1. UI自动转代码工具
选择预制体,点击自动生成代码即可生成节点数据,可以快速获取节点。
2.微信打包自动刷新
打包微信平台后,自动删除一个文件再重新复制进去(主要是解决打包微信平台后,微信开发者工具不会自动刷新的问题)。进入插件调整一下bat和hook.js的路径即可。
商城其他源码
《绯色神域online》联机对战卡牌回合制游戏 | 《绯色神域》ai生成的卡牌回合制游戏 | 《幻境之巅》联机对战 消除类 回合制游戏 | 文字斗争 |
---|---|---|---|
消消乐(PC、安卓、H5)益智类 项目展示+完整项目源码 | 《图形决斗》帧同步实时对战策略类游戏 | 几何武装蛇 | 喵喵退退退 |
基于函数替换的热重载 | python游戏分布式强连接框架 | 常用动画效果 | AI生成资源汇总 |
游戏开发集成工具 | 搞心态小游戏-闯关类 | 3D俄罗斯方块 |
购买须知
本产品为付费虚拟商品,一经购买成功概不退款,请在购买谨慎确认购买内容。
版权声明
- 3D模型源于:Kenny空间站场景
- 该游戏的框架和代码可以商业化使用,图片资源由AI和PS生成可以随意使用。
- 本套源码不可转卖,不可众筹。
- 严重声明:请用于合法项目,若发现用于涉嫌违法项目,将中止任何交流与合作,且概不退款。