Submit Search
Upload
08 gaming framework design based on cocos2d-x
•
0 likes
•
702 views
乐费 胡
Follow
cheng li (renren.com)
Read less
Read more
Technology
Report
Share
Report
Share
1 of 32
Download now
Download to read offline
Recommended
UCloud
UCloud
De-Wu Zeng
Ivod下載器提案簡報
Ivod下載器提案簡報
Joy Hsu
Linux 系統管理實務期末報告
Linux 系統管理實務期末報告
群宇 賴
How to replace linux system call by module
How to replace linux system call by module
YU-CHENG Hsu
BLE室內定位技術實現龍珠雷達裝置
BLE室內定位技術實現龍珠雷達裝置
艾鍗科技
網頁設計
網頁設計
Inker Kuo
S1
S1
bunny4776
Power cam 應用簡介(講義)
Power cam 應用簡介(講義)
bunny4776
Recommended
UCloud
UCloud
De-Wu Zeng
Ivod下載器提案簡報
Ivod下載器提案簡報
Joy Hsu
Linux 系統管理實務期末報告
Linux 系統管理實務期末報告
群宇 賴
How to replace linux system call by module
How to replace linux system call by module
YU-CHENG Hsu
BLE室內定位技術實現龍珠雷達裝置
BLE室內定位技術實現龍珠雷達裝置
艾鍗科技
網頁設計
網頁設計
Inker Kuo
S1
S1
bunny4776
Power cam 應用簡介(講義)
Power cam 應用簡介(講義)
bunny4776
Web并发模型粗浅探讨v3
Web并发模型粗浅探讨v3
乐费 胡
神仙道移动Ui演变
神仙道移动Ui演变
乐费 胡
07 funny sango td and cocos2d-x
07 funny sango td and cocos2d-x
乐费 胡
09 creating windows phone game with cocos2d-xna
09 creating windows phone game with cocos2d-xna
乐费 胡
05 optimization of cocos2d-x games on x86 architecture
05 optimization of cocos2d-x games on x86 architecture
乐费 胡
06 html5 and cocos2d-x
06 html5 and cocos2d-x
乐费 胡
Dean Keynote Ladis2009
Dean Keynote Ladis2009
longhao
杜增强 Flash移动开发优化技巧
杜增强 Flash移动开发优化技巧
增强 杜
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qcon
Yiwei Ma
N-layer design & development
N-layer design & development
Xuefeng Zhang
LinkIt 7697 IoT tutorial
LinkIt 7697 IoT tutorial
CAVEDU Education
Component in fe
Component in fe
sking l
美团前端架构简介
美团前端架构简介
pan weizeng
Deskpool vdi solution introduction
Deskpool vdi solution introduction
DongLiwu
豆瓣网技术架构变迁
豆瓣网技术架构变迁
reinhardx
美团技术团队 - KVM性能优化
美团技术团队 - KVM性能优化
美团点评技术团队
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
Hsu Ping Feng
高效益、設計專利保護 如何達成雙贏?
高效益、設計專利保護 如何達成雙贏?
NVIDIA Taiwan
了解应用服务器
了解应用服务器
Feng Yu
Kvmopt osforce
Kvmopt osforce
meecheng
[SITCON2015] 自己的異質多核心平台自己幹
[SITCON2015] 自己的異質多核心平台自己幹
Aj MaChInE
张松国 腾讯微博架构介绍08
张松国 腾讯微博架构介绍08
drewz lin
More Related Content
Viewers also liked
Web并发模型粗浅探讨v3
Web并发模型粗浅探讨v3
乐费 胡
神仙道移动Ui演变
神仙道移动Ui演变
乐费 胡
07 funny sango td and cocos2d-x
07 funny sango td and cocos2d-x
乐费 胡
09 creating windows phone game with cocos2d-xna
09 creating windows phone game with cocos2d-xna
乐费 胡
05 optimization of cocos2d-x games on x86 architecture
05 optimization of cocos2d-x games on x86 architecture
乐费 胡
06 html5 and cocos2d-x
06 html5 and cocos2d-x
乐费 胡
Dean Keynote Ladis2009
Dean Keynote Ladis2009
longhao
Viewers also liked
(7)
Web并发模型粗浅探讨v3
Web并发模型粗浅探讨v3
神仙道移动Ui演变
神仙道移动Ui演变
07 funny sango td and cocos2d-x
07 funny sango td and cocos2d-x
09 creating windows phone game with cocos2d-xna
09 creating windows phone game with cocos2d-xna
05 optimization of cocos2d-x games on x86 architecture
05 optimization of cocos2d-x games on x86 architecture
06 html5 and cocos2d-x
06 html5 and cocos2d-x
Dean Keynote Ladis2009
Dean Keynote Ladis2009
Similar to 08 gaming framework design based on cocos2d-x
杜增强 Flash移动开发优化技巧
杜增强 Flash移动开发优化技巧
增强 杜
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qcon
Yiwei Ma
N-layer design & development
N-layer design & development
Xuefeng Zhang
LinkIt 7697 IoT tutorial
LinkIt 7697 IoT tutorial
CAVEDU Education
Component in fe
Component in fe
sking l
美团前端架构简介
美团前端架构简介
pan weizeng
Deskpool vdi solution introduction
Deskpool vdi solution introduction
DongLiwu
豆瓣网技术架构变迁
豆瓣网技术架构变迁
reinhardx
美团技术团队 - KVM性能优化
美团技术团队 - KVM性能优化
美团点评技术团队
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
Hsu Ping Feng
高效益、設計專利保護 如何達成雙贏?
高效益、設計專利保護 如何達成雙贏?
NVIDIA Taiwan
了解应用服务器
了解应用服务器
Feng Yu
Kvmopt osforce
Kvmopt osforce
meecheng
[SITCON2015] 自己的異質多核心平台自己幹
[SITCON2015] 自己的異質多核心平台自己幹
Aj MaChInE
张松国 腾讯微博架构介绍08
张松国 腾讯微博架构介绍08
drewz lin
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
iammutex
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
yang alex
张勇 搜搜前端架构
张勇 搜搜前端架构
isnull
Nodejs & NAE
Nodejs & NAE
q3boy
ProtoStar:“次世代”的移动端渲染
ProtoStar:“次世代”的移动端渲染
Ning Hu
Similar to 08 gaming framework design based on cocos2d-x
(20)
杜增强 Flash移动开发优化技巧
杜增强 Flash移动开发优化技巧
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qcon
N-layer design & development
N-layer design & development
LinkIt 7697 IoT tutorial
LinkIt 7697 IoT tutorial
Component in fe
Component in fe
美团前端架构简介
美团前端架构简介
Deskpool vdi solution introduction
Deskpool vdi solution introduction
豆瓣网技术架构变迁
豆瓣网技术架构变迁
美团技术团队 - KVM性能优化
美团技术团队 - KVM性能优化
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
高效益、設計專利保護 如何達成雙贏?
高效益、設計專利保護 如何達成雙贏?
了解应用服务器
了解应用服务器
Kvmopt osforce
Kvmopt osforce
[SITCON2015] 自己的異質多核心平台自己幹
[SITCON2015] 自己的異質多核心平台自己幹
张松国 腾讯微博架构介绍08
张松国 腾讯微博架构介绍08
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
张勇 搜搜前端架构
张勇 搜搜前端架构
Nodejs & NAE
Nodejs & NAE
ProtoStar:“次世代”的移动端渲染
ProtoStar:“次世代”的移动端渲染
More from 乐费 胡
10 multi-platform game development using cocos2d-x
10 multi-platform game development using cocos2d-x
乐费 胡
04 growing up with the open source community
04 growing up with the open source community
乐费 胡
03 crazy castle meets cocos2d-x
03 crazy castle meets cocos2d-x
乐费 胡
02 evolution innovation and participation
02 evolution innovation and participation
乐费 胡
01 cocos2d past, present and future
01 cocos2d past, present and future
乐费 胡
11 share experience on porting 3 kingdoms td legned of shu
11 share experience on porting 3 kingdoms td legned of shu
乐费 胡
Oauth tutorial
Oauth tutorial
乐费 胡
[.产品设计与用户体验(马化腾)
[.产品设计与用户体验(马化腾)
乐费 胡
More from 乐费 胡
(8)
10 multi-platform game development using cocos2d-x
10 multi-platform game development using cocos2d-x
04 growing up with the open source community
04 growing up with the open source community
03 crazy castle meets cocos2d-x
03 crazy castle meets cocos2d-x
02 evolution innovation and participation
02 evolution innovation and participation
01 cocos2d past, present and future
01 cocos2d past, present and future
11 share experience on porting 3 kingdoms td legned of shu
11 share experience on porting 3 kingdoms td legned of shu
Oauth tutorial
Oauth tutorial
[.产品设计与用户体验(马化腾)
[.产品设计与用户体验(马化腾)
08 gaming framework design based on cocos2d-x
1.
基于cocos2d-x 的游戏框架设计 单击此处编辑母版标题 单击此处编辑标题 人人游戏-李成(关中刀客) guanzhongdaoke@gmail.com
2012-03-10
2.
WHY THIS PPT •
cocos2d-x开发经验分享 – 虽有大量的技术点分享,但无大型项目整体的设计经验分享 – 如何充分结合IOS平台的诸多特性 – 避免项目开发中后期,面临难以拓展,难以复用的问题 • 传统游戏开发经验分享 – 传统游戏开发技术已经很成熟,完全值得学习和借鉴 • 交流探讨 – 抛砖引玉,希望大家将自己的开发经验分享出来 – 众人拾柴火焰高
3.
LET US GO
4.
大楼倒塌VS游戏崩溃
5.
灾难之后……
6.
游戏开发 VS 盖大楼 •
前期设计规划很重要 • 基础设施,基础模块的构建很重要 • 拓展性&重用性很重要 • 健壮性&安全性很重要 • 从基础做起,从细节做起,拒绝豆腐渣工程
7.
COCOS2D-X&IOS简介篇
8.
COCOS2D-X引擎简介 • cocos2d的c++版本,c/c++开发者的福音 • 支持IOS,Android,Windows等平台,跨平台开发的福音 •
开源免费,易学易用,庞大的工具链支持 • 强大的技术支持,活跃的技术社区交流平台 • 多款线上游戏应用经验 • 不断的完善和改进,逐渐增加更多的新技术
9.
COCOS2D-X引擎简介 • cocos2d-x引擎框架图
10.
IOS应用程序框架 • UIApplication • UIApplication
Delegate • UIScreen • UIWindow • UIView • UIView Controller
11.
IOS应用程序框架
12.
IOS应用程序运行周期
13.
IOS应用程序运行周期
14.
COCOS2D-X&IOS的结合 • EAGLView
– 自定义View,继承自UIView,客户端最主要的View界面 – 捕捉,封装和分发系统TOUCH事件 – 外层的RootViewController为其控制器,可通过该控制器对 EAGLView进行相关控制 – OpenGL-ES进行渲染更新 • Accelerometer – AccelerometerDispatcher实现了UIAccelerometerDelegate协 议,并接收系统Accelerometer事件,然后内部派发处理 – 依附在CCLayer上
15.
COCOS2D-X&IOS的结合 • 引擎总体更新流程 –
UIApplication初始化完成之后,通过UIApplication Delegate初始化EAGLView,调 用引擎CCApplication的run()接口 – 调用初始化initInstance()及applicationDidFinishLaunching()接口,调用 CCDirectorCaller的startMainLoop()接口 – 调用系统接口CADisplayLink,注册引擎桢更新处理函数:导演类CCDirector内部 的mainLoop() – 系统定时回调mainLoop(),进入其内部的drawScene()方法 – 逻辑更新处理:CCScheduler::Tick() – 渲染更新处理
16.
游戏客户端总体架构篇
17.
客户端主模块 • 单一CCScene
– 拒绝不必要的花哨表现,简化代码实现 • 基于帧率的游戏更新处理 – 游戏主逻辑MINIFinger继承自CCNode,且在初始化Init函数中通 过schedule设置游戏逻辑主更新函数Tick(),以此确保每次渲染之 前,都会首先进行逻辑更新处理 • 完全基于帧率的定时器调度 – 所有的定时器处理,完全依赖于游戏帧率,简单直接
18.
客户端网络模块 • 网络模块总体设计图
19.
客户端网络模块 • 原生的SOCKET封装
– 原生的socket编程,简单直接 – 代码可控,方便定位问题 • Non-Blocking IO – 使用非阻塞式IO模式,无需开辟网络线程 – 对于TCP来说,单独的连接线程 • Selector轮训模式 – 监听所有socket可读,可写和异常的消息 – 基于事件的回调处理方式
20.
客户端网络模块 • TCP &
UDP – 对于TCP来说,为解决粘包问题,内部使用MemNode来接收数据 – 对于UDP来说,使用Sequence Number方式处理杂乱,无序包 • 定制内存池管理器 – 绝大部分的数据包大小限制于4096bytes – free-list内存池技术,NO-MEMCPY;避免频繁new/delete • 异或加密方式 – A^B->C C^B->A – 一次异或,明文变密文;二次异或,密文变明文 – 简单高效,安全性低
21.
游戏数据层模块 • 仅指游戏数据层
– 非IOS常规开发中的数据层,特制游戏内的静态数据层 • 客户端通常需要大量的静态资源 – 图片资源&音效资源,窗口布局文件 – 其他游戏策划数据 • 拒绝扁平化文件存储 – 使用SQLite – 统一进行读写,提高IO读取效率 • 统一管理 – 建立统一的加载,更新和卸载等机制 – 方便游戏逻辑管理和监控
22.
游戏数据层模块 • 数据模块示意图
23.
游戏UI系统模块 • UI布局示意图
24.
游戏UI系统模块 • 窗口布局组
– 相同“功能”UI组件合并为一个布局Layout – 统一化管理:初始化/加载/更新/事件响应/卸载操作 – 基于消息事件的处理方式,方便脚本拓展 – 采用外部配置处理/支持动态化配置 • 独立的根窗口(UILayer) – 系统最底层的窗口层,所有Layout的父窗口 – 游戏内唯一监听Touch,Accelerometer事件的CCLayer – 采集用户输入,统一化处理 • 脚本拓展 – Lua语言拓展,将具体逻辑和游戏框架分离,加强健壮性
25.
游戏UI系统模块 • UI局部配置化文件示意图
26.
游戏UI系统模块 • 关于模态窗口
– 修改源代码,在CCNode中增加m_bPriorityFromParent; m_nPriority属性,所有添加的UI组件,需要明确设定是否继承父 节点的优先级,以此形成一个优先级响应队列,从而实现模态窗 口的功能 – 借助系统UIView,实现单独的View界面,附加在EAGLView之上 • 相关优化 – 所有Layout延迟加载 – 不使用时马上卸载,释放内存 – 合并需要的图片资源
27.
游戏音效模块 • FmodEx
– 成熟高效,接口简单统一,无需考虑平台化差异 – 功能强大,支持3D音效,静音,暂定,音量大小等设置 – 需要购买 • 引用计数 – 相同的音效,仅需公用一份资源数据 – 及时清除不需要的音效资源,减少内存占用
28.
游戏音效模块 • 人性化设置 –
增加人性化的设置面板,提升用户感受 – 提供动态开启/关闭,设置音量等功能 – 按照用途,划分音效类型,单独管理 – 通过Application Delegate,程序获得焦点时播放音效,失去时静 音 • 关于音效资源 – 音效文件尽可能的小,降低内存占用
29.
其他模块简介 • 消息事件管理模块
– 整个客户端基于消息事件驱动 – 实现和调度分隔,最大程序降低耦合 • 调试器管理器模块 – XCODE自带的调试器工具不够用 – 需要针对渲染,网络,逻辑数据进行更细化的监控 – 两者结合,宏观微观,两手一起抓 • 日志模块 – 日志分等级,分输入方式,完全可配置 – 不同类型日志,按照等级分开记录
30.
还需要什么? • 消息推送
– 借用本地和远程的消息推送机制,提高产品粘合度 – 借助“社会工程”,调动玩家积极性 • 移动产品的UI界面设计 – 移动产品的UI界面尽量简单直接 – 人性化操作 • 移动产品的特性 – 考虑移动产品的特性和人们的使用习惯等,有针对性的设计
31.
THANKS • 感谢cocos2d-x引擎团队的大力支持 • 感谢本次大会的支持 •
Thanks All
Download now