基于cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en
TRANSCRIPT
Mobile 2D Framework
by Happy Elements
Cong Ling
Agenda
为什么
整体设计
Q&A
为什么使用cocos2dx?
我们使用过的技术
Cocos2d-iphone
HTML5
Flash air port
Cocos2dx
Conora
Unity
跨平台
可控性
为什么脚本化?
多版本维护
IOS和很多Android市场无法做到增量更新
大包包含所有分辨率,浪费带宽和存储
更新问题
Google Play:2小时
IOS:5天 审核周期
开发调试工具全部不一样
Context被破坏
真机调试的问题
调试困难
编译、部署、调试需要写脚本 Eclipse对NDK的支持很弱,特别是debugging Gdb在windows下有问题
需要使用MAC去编译、部署、调试 IOS
Android
50%的联调时间在处理crash
引用计数池的问题
Context/Stack会丢失,特别是在优化版本
Crash
上线标准 5% crash rate over 5000 minutes testing sessions
为什么选择lua?
简单、可控
Lua最轻
国内市场商业最成熟的是 cocos2dx+lua
解决方案
我们做了那些改进?
Android:Java lua
IOS: OC Lua
第三方库集成接口
IDE和调试器
UI编辑器
动画编辑器
TTF字体导出工具
工具
COCOS2D-X
Develop Tools
内存混淆
本地化
Utils 网络库
资源管理
Crash
渲染
脚本引擎
第三方接入 帐户系统 SNS接入
支付接入 Notification
DC打点 广告&积分墙
Log Tracker CI service
IDE
自动化Build脚本
调试工具
打包工具 日志管理
Engine
Lua scripting runtime
tolua++
Cocos2dx/Common Lib
iOS native api
luajava
iOS 3rd party API
Android 3rd party API
Android native API
Interface w/ languages
Wax
基于Zerobrane
改善断点性能-提高100x
支持symbols和文件的快速定位
Push to device
改善智能提示
Lua调试器
Stub
Debugger
iOS stub
Android stub
Windows stub
文件列表和MD5
连接debugger
连接成功
日志和断点
改变了的文件
推送文件
关闭连接
发送命令
文件部署过程 调试过程
Push to device
• 更新一定要Transaction
• 增量更新
• 按需下载
• 功能模块
• 分辨率 (分辨率匹配)
• 资源加密
• APK更新(国内android市场)
Resource Manager-设计目的
APK/app目录
Resource Manager-设计
Current Resource Locator
Resource Locator version
Content with md5
name
Old Resource Locator
Document目录
Content with md5
name
Content with md5
name
Client CDN
Dynamic Server
获取当前配置
下载配置
下载资源
查看当前配置是否是最新的
查看那些资源没有
增量更新
Client
CDN Game
Res Mgr
Ensure Modules
本地缓存了?
下载资源
回调结果
按需下载
加载资源
客户端配置管理 (支持lua/c/java)
Utils
Meta信息(支持lua/c/java)
Crash分析系统
PLCrash reporter
Google breakpad
Crash Analysis Center
Log tracker
Game
Crash folder
Crash Sent Task
开发人员
Symbol Center
Build
Hudson做build管理
手机下载安装
新版本下载提示、自动安装更新包
Crash/日志采集和分析
Session time分析
CDN同步检查
Udid检测、申请流程
一键发布到App store和Google Play (future)
Build/CI
Build/CI
Build.s
h
symbol
s
Hudso
n apk/ipa/pn
g
resources Adhoc.mobile
provision
svn
build_version
Projec
t.plist
Safari Mobile
Browser
Udid Check Resource
Manager
CDN
Crash
Analysis
Latest
Version
Client
Manager
Dragon Bones
■ Flash CS5.5+Plugin
■ UI Editor
■ Animation Editor
Font editor
■ BMP Font
■ TTF
工具
Particle designer
Glyph designer
第三方工具
多谢开源项目
Cocos2dx
https://github.com/cocos2d/cocos2d-x
LuaJava
http://www.keplerproject.org/luajava/
Wax
https://github.com/probablycorey/wax
ZeroBrane
https://github.com/pkulchenko/ZeroBraneStudio
Mobdebug
https://github.com/pkulchenko/MobDebug
DragonBones
http://dragonbones.github.com
多谢开源项目
你想和一群有创造力、想象力的人一起工作吗?
你相信工程师能改变世界吗?
你想不断挑战、提升自己的能力吗?