1 Star 0 Fork 64

yg178 / CocosGame

forked from Nomat / CocosGame 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

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

特别鸣谢

MIT License Copyright (c) 2019 Lujun Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

基于cocos2dx-lua游戏框架,致力于多分包,自动化游戏编程。 展开 收起
Lua
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Lua
1
https://gitee.com/hwsyy/CocosGame.git
git@gitee.com:hwsyy/CocosGame.git
hwsyy
CocosGame
CocosGame
master

搜索帮助

14c37bed 8189591 565d56ea 8189591