大掌门开发经验分享.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大掌门开发经验分享

《大掌门》 开发经验分享 欧阳刘彬 owen@ 代讲人:曲宁 quning@ why cocos2d-x ? why lua ? 跨平台 灵活 动态更新 容错 开发速度 基本情况 基于cocos2d-1.0.1-x-0.13.0-beta 封装了一些C的接口 事件管理、UI控件、网络通信、加解密…… 所有游戏逻辑使用lua实现 版本更新 代码加密 错误检查 接口封装 版本更新 Waiting For Review 版本更新 - 问题 首次提交审核需要一个月 后续更新审核需要一周 审核周期长 版本:1.0.1 更新日志:修复XX bug 更新大小:108MB 版本:1.2 更新日志:增加XX玩法 更新大小:108MB 版本更新 - 问题 每次更新都需要下完整的包,用户体验差 版本更新 - 解决方案 所有游戏逻辑用lua实现 游戏内更新:游戏升级时只更新lua文件 及时,随时可以更新 快速,增量更新,只需要下载更新部分 游戏启动过程 手机端 版本管理服务器 游戏逻辑服务器 资源服务器 方案1: 存一份代码,代码升级时更新对应的文件 v1 → v2,覆盖更新 script/a.lua script/a.lua 客户端只有一个版本,不能快速回滚 script/v1/a.lua script/v1/b.lua script/v2/a.lua script/v2/b.lua 方案2: 每个版本存一份代码 v1→v2,只有a.lua变化了,b.lua没有变化 不变化的代码不能复用,空间浪费 v1 → v2,保留旧版本,增量更新 方案3 用文件内容的md5sum做文件名 用sqlite数据库管理文件名的映射关系 自定义lua loader 打包流程 script/a.lua script/b.lua script/7c66a970f98841fb02a81236a762fcd8 script/1393c4b428e550db809f5aa64eb415b1 reslib - sqlite数据库 游戏安装包 require “a” luaL_loadbuffer script/9970fd7451f6e604e3e3bd require “b” script/1393c4b428e550db809f5aa64eb415b1 代码加密 打包流程 script/a.lua script/b.lua script/7c66a970f98841fb02a81236a762fcd8 script/1393c4b428e550db809f5aa64eb415b1 reslib - sqlite数据库 游戏安装包 加密 require “b” 自定义的lua loader 查询reslib script/1393c4b428e550db809f5aa64eb415b1 问题 700多个lua文件,200多个配置文件 加密之后,无法压缩,安装包体积变大 性能? script/1393c4b428e550db809f5aa64eb415b1 script/b.lua 打 包 过 程 游 戏 运 行 时 数据对比 在 iPhone 5上加载总共700+ lua文件和200+配置文件 数据对比 在 iPhone 5上加载总共700+ lua文件和200+配置文件 数据对比 在 iPhone 5上加载总共700+ lua文件和200+配置文件 android ? 数据对比 ? android上,首次安装完成之后, 把脚本文件从apk中展开到SD卡 数据对比 错误捕获 错误捕获 int lua_pcall ( lua_State *L, int nargs, int nresults, int msgh); msgh is the stack index of a message handler 1. 捕获详细的错误堆栈 2. 弹框显示错误堆栈信息(只在开发模式打开) 3. 将错误信息上传到游戏日志服务器 int CCLuaEngine::executeGlobalFunction( const char* functionName) { lua_pushcfunction(m_state, my_error_handler); lua_getglobal(m_state, functionName); if (!lua_isfunction(m_state, -1)) { lua_pop(m_state, 1); lua_pop(m_state, 1); return 0; } int error = lua_pcall(m_state, 0, 1, -2); ...... [

文档评论(0)

118books + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档