25 Star 142 Fork 64

Nomat / CocosGame

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 8.25 KB
一键复制 编辑 原始数据 按行查看 历史
Nomat 提交于 2020-10-30 22:14 . 文档修改

CocosGame v1.0

基于cocos2dx-lua的游戏框架。除了cocos2dx自带的功能外,还提供了如下功能:

  • 对游戏进行分包处理,根据需求把游戏分解为子包,有效控制初始游戏包容量。
  • 提供游戏资源包打包功能,可以把游戏资源打包为单个文件,简化游戏包版本管理流程。
  • 提供打包优化功能,可以在资源打包过程中对资源进行可选的压缩、加密或编译等以提高游戏安全性及性能。
  • 提供游戏对象预加载、加载及卸载精确控制模型,帮助你模块化管理游戏对象的生命周期以优化内存使用。
  • 提供部分游戏自动化工具,主要运用于原始资源到游戏资源的转化、打包游戏资源、安装游戏资源、上传游戏资源到服务器和发布程序等一系列自动化工具链。

项目以复刻FC游戏《吞食天地2》为模板,向初入cocos2dx的开发者展示了如何设计游戏框架结构,以便于在学习完cocos2dx后,能更合理、更高效的开发游戏。publish/目录有编译好的发布Demo游戏。

框架设计文档

设计的目标基本上都是结构清晰使用方便尽可能提高效率
这里给出了大概的设计思路。细节太多,感兴趣可以自己看代码:

  1. 框架文件目录结构
  2. 游戏分包设计
  3. 游戏启动设计
  4. 游戏包结构设计
  5. 游戏索引模块设计
  6. 游戏元数据模块设计
  7. 游戏数据库模块设计
  8. 游戏网络模块设计
  9. 游戏其他模块设计

后续开发计划

可以查看Wiki

V2版本预览

  1. 游戏棋牌室-QQ欢乐斗地主

上手指南

项目主要以lua语言为主,因为cocos2dx的跨平台特性,所以还会涉及到C/C++、安卓java和object-c。游戏工具链主要使用的是python3.x(NOT python2.x)。所以你最好是会cocos2dx的,并且比较熟悉lua语言,最好了解python语言。由于框架比较复杂,下面将给出具体安装步骤。
如果国内github下载慢,则可以访问gitee同步项目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+ 图片打包工具
  2. Tiled 1.2+ 瓦片地图编辑器,如果你修改修改地图
  3. 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

特别鸣谢

Lua
1
https://gitee.com/nomat/CocosGame.git
git@gitee.com:nomat/CocosGame.git
nomat
CocosGame
CocosGame
master

搜索帮助