基于cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

32
Mobile 2D Framework by Happy Elements Cong Ling

Upload: beyond0102

Post on 10-May-2015

809 views

Category:

Technology


23 download

TRANSCRIPT

Page 1: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

Mobile 2D Framework

by Happy Elements

Cong Ling

Page 2: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

Agenda

为什么

整体设计

Q&A

Page 3: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

为什么使用cocos2dx?

Page 4: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

我们使用过的技术

Cocos2d-iphone

HTML5

Flash air port

Cocos2dx

Conora

Unity

跨平台

可控性

Page 5: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

为什么脚本化?

Page 6: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

多版本维护

IOS和很多Android市场无法做到增量更新

大包包含所有分辨率,浪费带宽和存储

更新问题

Google Play:2小时

IOS:5天 审核周期

Page 7: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

开发调试工具全部不一样

Context被破坏

真机调试的问题

调试困难

编译、部署、调试需要写脚本 Eclipse对NDK的支持很弱,特别是debugging Gdb在windows下有问题

需要使用MAC去编译、部署、调试 IOS

Android

Page 8: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

50%的联调时间在处理crash

引用计数池的问题

Context/Stack会丢失,特别是在优化版本

Crash

上线标准 5% crash rate over 5000 minutes testing sessions

Page 9: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

为什么选择lua?

Page 10: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

简单、可控

Lua最轻

国内市场商业最成熟的是 cocos2dx+lua

解决方案

Page 11: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

我们做了那些改进?

Page 12: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

Android:Java lua

IOS: OC Lua

第三方库集成接口

Page 13: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

IDE和调试器

UI编辑器

动画编辑器

TTF字体导出工具

工具

Page 14: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

COCOS2D-X

Develop Tools

内存混淆

本地化

Utils 网络库

资源管理

Crash

渲染

脚本引擎

第三方接入 帐户系统 SNS接入

支付接入 Notification

DC打点 广告&积分墙

Log Tracker CI service

IDE

自动化Build脚本

调试工具

打包工具 日志管理

Engine

Page 15: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

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

Page 16: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

基于Zerobrane

改善断点性能-提高100x

支持symbols和文件的快速定位

Push to device

改善智能提示

Lua调试器

Page 17: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

Stub

Debugger

iOS stub

Android stub

Windows stub

文件列表和MD5

连接debugger

连接成功

日志和断点

改变了的文件

推送文件

关闭连接

发送命令

文件部署过程 调试过程

Push to device

Page 18: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

• 更新一定要Transaction

• 增量更新

• 按需下载

• 功能模块

• 分辨率 (分辨率匹配)

• 资源加密

• APK更新(国内android市场)

Resource Manager-设计目的

Page 19: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

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

Page 20: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

Client CDN

Dynamic Server

获取当前配置

下载配置

下载资源

查看当前配置是否是最新的

查看那些资源没有

增量更新

Page 21: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

Client

CDN Game

Res Mgr

Ensure Modules

本地缓存了?

下载资源

回调结果

按需下载

加载资源

Page 22: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

客户端配置管理 (支持lua/c/java)

Utils

Meta信息(支持lua/c/java)

Page 23: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

Crash分析系统

PLCrash reporter

Google breakpad

Crash Analysis Center

Log tracker

Game

Crash folder

Crash Sent Task

开发人员

Symbol Center

Build

Page 24: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

Hudson做build管理

手机下载安装

新版本下载提示、自动安装更新包

Crash/日志采集和分析

Session time分析

CDN同步检查

Udid检测、申请流程

一键发布到App store和Google Play (future)

Build/CI

Page 25: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

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

Page 26: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

Dragon Bones

■ Flash CS5.5+Plugin

■ UI Editor

■ Animation Editor

Font editor

■ BMP Font

■ TTF

工具

Page 27: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

Particle designer

Glyph designer

第三方工具

Page 28: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

多谢开源项目

Cocos2dx

https://github.com/cocos2d/cocos2d-x

LuaJava

http://www.keplerproject.org/luajava/

Wax

https://github.com/probablycorey/wax

Page 29: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

ZeroBrane

https://github.com/pkulchenko/ZeroBraneStudio

Mobdebug

https://github.com/pkulchenko/MobDebug

DragonBones

http://dragonbones.github.com

多谢开源项目

Page 30: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

你想和一群有创造力、想象力的人一起工作吗?

你相信工程师能改变世界吗?

你想不断挑战、提升自己的能力吗?

Page 31: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en

请加入我们吧!

联系人:柳小姐(HR)

QQ : 2459685715

E-mail:[email protected]

C++

Java

Page 32: 基于Cocos2 d x二次开发的自有引擎方案分享-mobile 2d framework en