# CocosGame **Repository Path**: linux2014/CocosGame ## Basic Information - **Project Name**: CocosGame - **Description**: 基于cocos2dx-lua游戏框架,致力于多分包,自动化游戏编程。 - **Primary Language**: Lua - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 65 - **Created**: 2023-04-22 - **Last Updated**: 2023-04-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CocosGame v1.0 基于cocos2dx-lua的游戏框架。除了cocos2dx自带的功能外,还提供了如下功能: * 对游戏进行分包处理,根据需求把游戏分解为子包,有效控制初始游戏包容量。 * 提供游戏资源包打包功能,可以把游戏资源打包为单个文件,简化游戏包版本管理流程。 * 提供打包优化功能,可以在资源打包过程中对资源进行可选的压缩、加密或编译等以提高游戏安全性及性能。 * 提供游戏对象预加载、加载及卸载精确控制模型,帮助你模块化管理游戏对象的生命周期以优化内存使用。 * 提供部分游戏自动化工具,主要运用于原始资源到游戏资源的转化、打包游戏资源、安装游戏资源、上传游戏资源到服务器和发布程序等一系列自动化工具链。 项目以复刻FC游戏![](https://images.gitee.com/uploads/images/2019/1014/201617_05123b32_904839.png)《吞食天地2》为模板,向初入cocos2dx的开发者展示了如何设计游戏框架结构,以便于在学习完cocos2dx后,能更合理、更高效的开发游戏。`publish/`目录有编译好的发布Demo游戏。
## 框架设计文档 设计的目标基本上都是`结构清晰`、`使用方便`和`尽可能提高效率` 这里给出了大概的设计思路。细节太多,感兴趣可以自己看代码: 1. [**框架文件目录结构**](https://gitee.com/nomat/CocosGame/blob/master/docs/框架文件目录结构.md "框架文件目录结构") 2. [**游戏分包设计**](https://gitee.com/nomat/CocosGame/blob/master/docs/游戏分包设计.md "游戏分包设计") 3. [**游戏启动设计**](https://gitee.com/nomat/CocosGame/blob/master/docs/游戏启动设计.md "游戏启动设计") 4. [**游戏包结构设计**](https://gitee.com/nomat/CocosGame/blob/master/docs/游戏包结构设计.md "游戏包结构设计") 5. [**游戏索引模块设计**](https://gitee.com/nomat/CocosGame/blob/master/docs/游戏索引模块设计.md "游戏索引模块设计") 6. [**游戏元数据模块设计**](https://gitee.com/nomat/CocosGame/blob/master/docs/游戏元数据模块设计.md "游戏元数据模块设计") 7. [**游戏数据库模块设计**](https://gitee.com/nomat/CocosGame/blob/master/docs/游戏数据库模块设计.md "游戏数据库模块设计") 8. [**游戏网络模块设计**](https://gitee.com/nomat/CocosGame/blob/master/docs/游戏网络模块设计.md "游戏网络模块设计") 9. [**游戏其他模块设计**](https://gitee.com/nomat/CocosGame/blob/master/docs/游戏其他模块设计.md "游戏其他模块设计") ## 后续开发计划 可以查看[**Wiki**](https://gitee.com/nomat/CocosGame/wikis/Home "Wiki") ## V2版本预览 1. [**游戏棋牌室-QQ欢乐斗地主**](https://gitee.com/nomat/CocosGame/wikis/%E6%A3%8B%E7%89%8C%E5%AE%A4%E9%98%B6%E6%AE%B5%E9%A2%84%E8%A7%88?sort_id=1718699 "游戏棋牌室-QQ欢乐斗地主")
## 上手指南 项目主要以lua语言为主,因为cocos2dx的跨平台特性,所以还会涉及到C/C++、安卓java和object-c。游戏工具链主要使用的是python3.x(NOT python2.x)。所以你最好是会cocos2dx的,并且比较熟悉lua语言,最好了解python语言。由于框架比较复杂,下面将给出具体安装步骤。 如果国内github下载慢,则可以访问gitee同步项目[**CocosGame**](https://gitee.com/nomat/CocosGame) ## 安装步骤 ### 1.安装cocos2dx相关开发工具 * Windows 7+, VS 2015 * NDK r16+ is required to build Android games * Android Studio 3.0.0+ to build Android games(tested with 3.0.0) ### 2.安装辅助软件 1. [**TexturePacker 4.9+**](https://www.codeandweb.com/texturepacker/download) 图片打包工具 2. [**Tiled 1.2+**](https://www.mapeditor.org) 瓦片地图编辑器,如果你修改修改地图 3. [**behavior3editor**](https://github.com/behavior3/behavior3editor) 行为树编辑器,如果你需要编辑行为树 ### 3.安装python3.6+脚本工具 游戏开发脚本使用的是**python3**,不是python2,安装完python后你需要安装如下库 * **xlrd** (Excel表格读取库,可以使用命令 `pip install xlrd` 安装) * **Pillow** (强大PIL图像处理库,可以使用命令 `pip install Pillow` 安装) * **HDiffPatch** (开源补丁程序,可以进入目录 `scripts/toolkits/PyHDiffPatch/`,执行命令`setup.py install`安装) ### 4.使用VS2015编译cocos2dx程序 [1].进入目录 `frameworks/runtime-src/proj.win32/` [2].双击 CocosGame.sln, 使用VS2015打开工程 [3].在VS22015菜单栏中点击 生成 - 生成解决方案 [4].等到exe程序生成完成 `注意:由于中文注释,编译的时候可能有些文件会有些问题,找到编译出错文件删除乱码注释。` ### 5.使用脚本工具链更新、打包及安装资源 [1].进入目录 `scripts/` [2].双击 updateAll.py 以更新游戏所有资源,等待完成 [2].双击 packRes.py 以打包游戏资源,等待完成 [3].双击 installRes.py 以安装游戏资源,等待完成 ### 6.测试游戏运行 双击根目录中 `run.bat` ,如果出现游戏窗口,则游戏运行成功 ## 游戏资源更新 项目支持`游戏更新`功能,如果需要开启游戏更新,则需要`配置服务器` [1].需要一台游戏资源服务器 [2].服务器上需要安装`FTP`和`文件服务`功能 [3].文件服务可以使用普通的Web文件服务 [4].文件服务目录需要和FTP根目录一致 服务器配置完成后需要,修改本地`localconfig.json`文件 [1].进入目录 `runtime/data/` [2].由于配置文件是经过加密处理的,所以需要通过`scripts/cryptoConfig.py`进行解密操作。 (可以在命令行进入当前目录,然后执行 `../../../scripts/cryptoConfig.py localconfig.json`。 当然也可以直接把配置文件拖到cryptoConfig.py文件上进行解密) 会生成localconfig_dec.json解密配置文件 [3].修改localconfig_dec.json配置文件,remoteconfig中的IP端口修改为你自己的文件服务器的IP端口, enableremote和enableupdate都设置为true。 [4].加密localconfig_dec.json配置文件,按照2中的步骤把文件换成localconfig_dec.json执行加密配置文件操作 本地配置修改完成后,需要`修改上传工具配置`,并`上传资源包` [1].进入目录 `scripts/` [2].修改config.json文件的`sync/`节点,`ftp/connect` 和 `ftp/login` 配置服务器的FTP参数 [3].到目前为止更新配置完成,如果当前未有安装的资源,需要执行资源打包安装操作, 详情查看文档前面 `安装步骤 - 3.使用脚本工具链更新、打包及安装资源` [4].双击 syncServer.py 上传游戏资源包,如果存在前一个版本的资源包,则可能存在上传补丁操作。 `测试`游戏`更新`功能 [1].删除本地包文件 `runtime/data/packs/main.pack` (可以删除packs里面的任意包,但是data/boot.pack是启动包,必须存在) [2].双击 `run.bat` 如果进入游戏更新界面,并且无更新失败说明则成功。更新速度受本地和服务器带宽限制 ## 版权说明 该项目签署了MIT 授权许可,详情请参阅 [LICENSE.md](https://gitee.com/nomat/CocosGame/raw/master/LICENSE "版权许可") ## 特别鸣谢 * [**HDiffPatch**](https://github.com/sisong/HDiffPatch "开源补丁库") 作者提供的强大的补丁功能