# oop-moba **Repository Path**: work_25/oop-moba ## Basic Information - **Project Name**: oop-moba - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-06-05 - **Last Updated**: 2024-09-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## oops framework + tsrpc 网络游戏全栈解决方案 此产品实现了MOBA类游戏玩法基础功能,可用于二次开发或学习全栈游戏制作技巧。 产品前后端全采用TypeScript语言实现,同时业务代码使用同一套ECS框架设计,前后端代码风格接近,便于理解学习。 前端框架采用 [oops-framework](https://store.cocos.com/app/detail/3558) 做为业务框架。 后端框架采用 [tsrpc](https://tsrpc.cn/) 框架,使用这套框架前后端通讯协议就不需要在学习其它中间协议语言,全自动工具生成协议代码,底层二进制传输数据,可把精力关注到游戏业务逻辑设计上,提高开发效率。(感谢 tsrpc 作者提供优秀的开源技术资源) ## 开发环境 - 引擎版本:Cocos Creator 3.6.1(需要Cocos Creator 3.x低版本购买后联系作者获取) - 编程语言:TypeScript ## 已适配平 | H5 | 微信小游戏 | Android原生 | iOS原生 | 抖音小游戏 | OPPO小游戏 | vivo小游戏 | | --- | ---------- | ----------- | ------- | ---------- | ---------- | ---------- | | ✔ | ✘ | ✔ | ✘ | ✘ | ✘ | ✘ | - 本资源仅保证支持作者已测试通过平台,其他平台理论上是支持的,其它平台兼容问题请自行适配或加入交流群与作者交流 - 有其它定制需求的开发者可加入交流群与作者交流 ## 解决问题 1. 如果无同类解决方案,使用此产品二次开发网络游戏可省至少二个月的自研开发成本 1. 学习 oops-framework 实战开发技巧,里面包含客户端框架中大多技术的应用 1. 学习 tsrpc 实战开发技巧,里面包含服务器框架中大多技术的应用 1. 学习网络游戏程序设计技巧 1. 学习游戏技能系统程序设计技巧 ## 应用案例 - [daolink 论坛贴](https://forum.cocos.org/t/topic/139505) - [daolink 官网](https://www.daolink.world/) ## 功能介绍 - 玩法功能 - 账号功能 - 游戏区服 - 房间管理 - 创建 - 加入 - 选择加入 - 匹配加入 - 退出 - 网络即时战斗玩法 - 摇杆控制角色移动 - 触摸地图控制角色移动 - 弱网移动同步策略 - 网络即时战斗系统 - 角色数值系统 - 技能系统 - 技能释放前摇与后摇 - 木桩类打靶NPC - 死亡后3秒后服务器复活角色 - 客户端功能模块 - 游戏登录模块 - 游戏公共模块 - 游戏初始化模块 - 摄像机管理模块 - 轨道摄影机 - PC平台鼠标滚轮调整镜头距离 - 地图管理模块 - 房间管理模块 - 角色管理模块 - 遥感控制移动 - 触摸地图控制移动 - 角色动作移动、攻击、死亡、复活 - 角色数值系统 - 技能系统模块 - 可自定义类扩展技能框架 - 技能配置表 - 技能数值计算框架 - 自动选目标 - 验证技能是否满足触发条件 - 技能效果对角色数值的影响计算 - 技能动画播放框架 - 立即触发效果类技能 - 远程射击技能 - 瞬发回复技能 - 全体连锁闪电技能 - 位移类技能 - 持续触发效果类技能 - 持续伤害 - 持续控制(新增) - 持续光环类范围影响技能(新增) - 持续陷阱类范围影响技能(新增) - 服务端功能模块 - 支持 HTTPS、WSS - 支持 数据加密 - 服务器与服务器之间通讯白名单 - 网关服务器 - 账号登录 - 账号注册-数据库中没帐号会自动注册 - 登录权限-未登部分协议无法使用 - 匹配服务器 - 服务器初始化 - 房间服务器加入并进入工作状态 - 获取在线的游戏房间列表 - 创建一个房间 - 在人数所少房间服务器创建 - 匹配一个房间,如果在超时前没匹配到则创建一个新房间进入 - 房间服务器 - 服务管理模块 - 服务器初始化 - 申请加入匹配服务器,等待授权进入工作状态 - 登录权限验证 - 断线逻辑 - 玩家断线自动离开房间 - 与匹配服务器断线,无限尝试连接匹配服务器直到恢复正常后继续提供服务 - 空房回收策略 - 聊天业务处理 - 房间管理 - 创建 - 加入 - 选择加入 - 匹配加入 - 退出 - 房间管理模块 - 房间数据状态管理 - 房间内玩家状态广播 - 房间内战斗逻辑管理 - 服务器同步验证验证客户端技能计算结果 - 服务器只广播技能触发命令,不广播技能结果的状态,减小数据包 - 服务器验证逻辑与客户端同一套技能框架代码,减小开发成本 - 玩家管理模块 - 玩家数据状态管理 - 玩家玩法协议代码分离设计 - 玩家移动状态同步 - 玩家移动广播 - 玩家攻击广播 - 玩家离开房间广播 - 角色数值系统 ## 工程结构与第三方库下载 - 公共配置 ShareConfig.ts - 开启https与wss - 传输协议是否使用加密功能 - 是否用二进制数据传输 - 客户端 - assets 资源与脚本目录 - 使用 vscode 打开 cocos creator 3.6.0 项目 - 使用 vscode 中的终端(Ctrl + `),运行 npm install -d - 连接服务器配置文件 GameServerConfig.ts,默认连接外网作者的服务器,本地调试可修改为本地IP - 服务端 - tsrpc_server 脚本目录 - 使用 vscode 打开 tsrpc_server 目录 - 使用 vscode 中的终端(Ctrl + `),运行 npm install -d - 配置文件 Config.ts ## 调试与部署 - 安装软件 - 安装 MongoDB 官网地址:https://www.mongodb.org/downloads, 选择操作系统及位数,进入下载页 - 调试环境 - npm run dev:gate 启动网关服务器 - npm run dev:match 启动匹配服务器 - npm run dev:room 启动房间服务器 - npm run dev:room2 再启动一个房间服务器测试分布式 - npm run build 构建发布 - 生产环境 - npm install pm2@latest -g 安装工具 - pm2 start ecosystem.config.js --env production 启动生成环境 - pm2 start ecosystem.config.js --env develop 启动调试环境 - pm2 delete all 停止所有服务器 - oops-framework 文档[传送门](https://dgflash.gitee.io/oops-plugin-framework/) - tsrpc 文档[传送门](https://tsrpc.cn/) ## 联系作者 QQ群: - 798575969(1群) - 621415300(2群) ![](http://dgflash.gitee.io/oops-full-stack-web/doc/img/qq.png) ## 购买须知 - 本产品为付费虚拟商品,一经购买成功概不退款,请支付前谨慎确认购买内容。 - 个人开发不易,希望各位支持正版。 - 后期随着功能的逐步增加,售价也会逐步提高,但是已经购买的用户可以免费的享受后续所有更新。 ## 作者其它产品 [角色扮演游戏解决方案](https://store.cocos.com/app/detail/3675) [新手引导解决方案](https://store.cocos.com/app/detail/3653) [框架解决方案演示](https://oops-1255342636.cos-website.ap-shanghai.myqcloud.com/oops-solution/) [开源框架 oops-framework gitee](https://gitee.com/dgflash/oops-framework) [开源框架 oops-framework github](https://github.com/dgflash/oops-framework)