一套适用于大型团队的Unity游戏解决方案。
XGame旨在提供一套完整的大型游戏开发解决方案,包括前后端、底层驱动、配置数据等。采用C++
、C#
、Lua
、Python
等语言开发。
XGame模拟大项目团队管理流程,为了方便项目管理、多部门协作、权限划分、避免版本管理错乱等,将工程拆分成多个仓库。不同的开发角色可以迁出不同的仓库组合所需的最小工程,提高开发效率,减少冗余错误,降低维护成本。
XGame对人数百人以上,资源量30G以上的团队具有一定的参考意义。小团队小游戏的话可以考虑更简洁的方案。
本方案重点放在整体框架设计和资源管理上,有些功能只是简单实现,特别是底层驱动和服务器部分,没有具体参考意义。
仓库 | 描述 |
---|---|
XGame-XClientLua | XGame游戏解决方案:客户端Lua代码 |
XGame-XConfig | XGame游戏解决方案:配置数据 |
XGame-XCommon | XGame游戏解决方案:前后端共用的Lua代码 |
XGame-XDriver | XGame游戏解决方案:底层C++驱动代码,前后端共用 |
XGame-XServer | XGame游戏解决方案:服务端Lua代码 |
XGame-XClient-Packages | XGame游戏解决方案:Unity客户端的Packages目录 |
XGame-XClient-ProjectSettings | XGame游戏解决方案:Unity客户端的ProjectSettings目录 |
XGame-XClient-iOS | XGame游戏解决方案:Unity客户端的ResAB下的iOS目录 |
XGame-XClient-Editors | XGame游戏解决方案:Unity客户端的Assets下的Editors目录,用于放工具类或不用打包的代码 |
XGame-XClient-Plugins | XGame游戏解决方案:Unity客户端的Assets下的Plugins目录,用于放第三方插件代码 |
XGame-XClient-ResData | XGame游戏解决方案:Unity客户端的Assets下的ResData目录,用于放程序和策划资源数据 |
XGame-XClient-ResPublic | XGame游戏解决方案:Unity客户端的Assets下的ResPublic目录,公共资源 |
XGame-XClient-ResEffect | XGame游戏解决方案:Unity客户端的Assets下的ResEffect目录,特效资源 |
XGame-XClient-ResModel | XGame游戏解决方案:Unity客户端的Assets下的ResModel目录,角色模型资源 |
XGame-XClient-ResScene | XGame游戏解决方案:Unity客户端的Assets下的ResScene目录,场景资源 |
XGame-XClient-ResSceneModel | XGame游戏解决方案:Unity客户端的Assets下的ResSceneModel目录,场景模型资源 |
XGame-XClient-ResUI | XGame游戏解决方案:Unity客户端的Assets下的ResUI目录,UI资源 |
XGame-XClient-Runtime | XGame游戏解决方案:Unity客户端的Assets下的Runtime目录,运行时或打包用的代码 |
√√ 表示需要迁出仓库,可以提交仓库
√x 表示需要迁出仓库,不能提交仓库
仓库 | 打包 | 程序 | 程序 | 策划 | QA | QA | 美术 | 角色 | 场编 | 场模 | 特效 | UI |
---|---|---|---|---|---|---|---|---|---|---|---|---|
XGame-XClientLua | √√ | √√ | √√ | √x | √x | |||||||
XGame-XConfig | √√ | √x | √x | √√ | √x | |||||||
XGame-XCommon | √√ | √√ | √√ | √x | √x | |||||||
XGame-XDriver | √√ | |||||||||||
XGame-XServer | √√ | √√ | √x | √x | ||||||||
XGame-XClient-Packages | √√ | √√ | √√ | √x | √x | √x | √x | √x | √x | √x | √x | √x |
XGame-XClient-ProjectSettings | √√ | √√ | √√ | √x | √x | √x | √x | √x | √x | √x | √x | √x |
XGame-XClient-ResAB | √√ | √x | √x | √x | √x | √x | √x | √x | √x | √x | √x | √x |
XGame-XClient-Editors | √√ | √√ | √x | √x | √x | √x | √x | √x | √x | √x | √x | |
XGame-XClient-Plugins | √√ | √√ | √√ | √x | √x | √x | √x | √x | √x | √x | √x | √x |
XGame-XClient-Runtime | √√ | √√ | √√ | √x | √x | √x | √x | √x | √x | √x | √x | √x |
XGame-XClient-ResData | √√ | √√ | √√ | √x | √x | √x | √x | √x | √x | √x | ||
XGame-XClient-ResEffect | √√ | √√ | √√ | √x | √√ | √√ | ||||||
XGame-XClient-ResModel | √√ | √√ | √√ | √x | √√ | √√ | ||||||
XGame-XClient-ResScene | √√ | √√ | √√ | √x | √√ | √√ | √x | |||||
XGame-XClient-ResSceneModel | √√ | √√ | √√ | √x | √√ | √x | √√ | |||||
XGame-XClient-ResUI | √√ | √√ | √√ | √x | √x | √√ | √√ | |||||
XGame-XClient-ResPublic | √√ | √√ | √√ | √√ | √x | √√ | √√ | √√ | √√ | √√ | √√ |
功能 | 完成情况 |
---|---|
C++ 和Lua 交互方案 |
已完成 |
XLua |
已完成 |
基于RecastNavigation 的导航网格寻路 |
已完成 |
基于Libuv 的网络通信 |
已完成 |
自动化打包 | 开发中 |
AB浏览和管理工具 | 开发中 |
Editor-Phone远程调试工具 | 开发中 |
Shader和变体管理工具 | 开发中 |
资源加载和管理 | 待开发 |
Patch和热更 | 待开发 |
LuaBT 行为树AI 方案 |
待开发 |
数据库存储和读写方案 | 待开发 |
日志输出和收集 | 待开发 |
SFM 影子跟随移动 |
待开发 |
战斗同步 | 待开发 |
clone
或下载到本地,放到一个新目录,如XGameSolutions
下。XGame
里面的project_pull_clone_developer.bat
或project_pull_clone_developer.sh
脚本Clone
工程,如果工程已Clone
则进行更新。Unity
打开XUnity
下的UnityForCoder
工程即可运行。.
├── XGameSolutions
. ├── XClientLua
├── XConfig
├── XDriver
├── XGame
├── XCommon
├── XServer
└── XUnity
├── UnityForCoder
| ├── Assets
| | ├── Editors
| | ├── Plugins
| | ├── ResEffect
| | ├── ResModel
| | ├── ResScene
| | ├── ResSceneModel
| | ├── ResUI
| | ├── ResPublic
| | └── Runtime
| ├── Packages
| ├── ProjectSettings
| └── ResAB
├── UnityForArt
[^a-zA-Z0-9]
替换为_
。