整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

深度干货|Cocos2d-x v3.11在HTML5方向的优化

几天,Cocos2d-x v3.11 已经发布,除去物理引擎升级,JSB 新内存模型,Tizen 平台支持等亮眼功能外,还有很重要的一点更新是,我们在 Web 引擎上强化了渲染器性能。总的来说,在行业对 WebGL 支持越来越好的背景下,我们大幅度强化了 WebGL 渲染器的实现,让其支持自动批处理渲染。

背景介绍

WebGL 是 OpenGL ES 的 Web 版本,它的诞生就是为了给 Web 平台带来更强劲的 2D/3D 渲染能力,可以说是为游戏行业而生。为什么说行业对 WebGL 支持越来越好呢?主要有下面几点利好:

腾讯 X5 引擎的 Android 版本在上个月完成了 blink 内核的集成,这意味着 Android 平台上 QQ 浏览器和微信浏览器也都拥有了强大的 WebGL 支持。

Android 5.0 版本以上的系统浏览器也是默认支持 WebGL 的。

而 iOS 平台的 WebGL 支持从 iOS 8 开始就已经非常完备了。

也就是说两大移动平台对 WebGL 的支持已经趋向成熟。

Cocos2d-html5 自 2012 年诞生之日起就具有完备的 WebGL 支持,和 Canvas 的表现统一性也一直保持得很好。如果接触得早,会知道早在 v3.1 中,我们就已经彻底升级过一次渲染器,将渲染和逻辑分离。而这次,在行业重大利好的情况下,我们决定再次升级 WebGL 渲染器。最终,v3.11 相较于 v3.10 在 bunnymark 测试中取得了 4 倍以上的成绩,让我们很受鼓舞。

Bunnymark 测试运行画面:

Bunnymark 测试数据(均是 WebGL 渲染模式下的数据):

当然,这次升级还没有结束,我们测试仍然还有很大的优化空间,在后续版本中,我们将持续投入在 WebGL 渲染器的优化上,这些优化也会被同步到 Cocos Creator 中。

主要优化概述

在 v3.11 中我们完成的主要优化点如下:

1.在 Android 浏览器上默认开启 WebGL(支持的话)

目前开启 WebGL 的环境有下面这些:

WebGL 模式下,通过直接将渲染指令发送给 GPU 完成在 GPU 中的渲染,除此之外,一些计算也会在 GPU 上完成,相比 Canvas 渲染模式来说高效很多。

目前开启 WebGL 的环境有下面这些:

所有主流桌面端浏览器

iOS 8.0 以上版本的所有浏览器

QQ 浏览器内核 6.2 版本以上(包含微信最新版本)

百度浏览器 6.2 版本以上

Android 5.0 以上的系统浏览器和 WebView

2.WebGL 自动批处理渲染

众所周知,draw call(渲染指令的调用次数)是优化的重点,draw call 的降低,就等同于渲染性能提升,发热和耗电量下降。

自动批处理渲染是在 WebGL 模式下专门针对 draw call 的一种常见优化技术,在渲染游戏场景的过程中,如果发现使用同样贴图和混合模式的精灵,就会自动将他们的渲染指令合并为一个,将多个精灵在一次 draw call 中绘制出来。

在 v3.11 开发过程中,经过 5 个版本的自动批处理实现迭代,自动批处理渲染已经可以显著得降低 draw call,在完全不改动游戏的情况下即可得到明显的性能提升,如果游戏本身设计对批处理更友好,那么会得到更大的提升,大型游戏控制 draw call 在 50 以下是完全有可能的。

下面是使用了 v3.11 内测版本的腾讯欢乐斗地主 web 版本的性能优化前后对比(均为 WebGL 渲染模式):

3.音频系统升级

除了渲染以外,我们对音频系统做了一次升级,提升了音频系统在 Android 平台上的适配度,降低了内存占用。

音频的播放方式主要分为两种:DOM Audio 和 WebAudio。之前的版本中,可以使用 WebAudio 的情况下都会选择使用 WebAudio,因为它拥有更强大的音频控制和多音轨播放能力。而在测试过程中,我们发现 WebAudio 占用内存非常高。因为 Web 环境中对音频是软解码,所有数据都保存在内存中,而 DOM Audio 的内存占用则更加稳定。所以我们在 v3.11 中,我们将 playMusic 接口改为使用 DOM Audio,playEffect 接口继续使用 WebAudio,因为音效往往比较短,所以占用内存不多。这样可以有效得降低音频资源的内存占用,下面这张图是 v3.11 优化前后的音频占用内存对比。

4.让无法批处理的 Sprite 共享全局的渲染数据缓存,并减少 WebGL 函数调用

对于无法自动批处理的 Sprite,目前已将渲染数据缓存合并为一个共享缓存,降低 WebGL 函数调用频率和缓存更新频率,这个优化对于中低端安卓机器比较有效。

5.将顶点位置运算从 GPU 转移到 CPU(Mobile friendly)

这个版本中,我们将精灵顶点位置的运算从 GPU shader 中移到了 CPU 中,减轻 GPU 的运算压力和发热量,这个改进在中低端机器上得到的效果较为明显。

未来优化方向

在这些优化之后,大家可以放心得在安卓上开启 WebGL 渲染模式,看看自己的游戏表现,相信可以让 Web 端的体验更上一层楼。

当然,优化还远远没有结束,下一个阶段我们会继续在三个方向上深入优化 Web 引擎的体验:

进一步提升 WebGL 渲染性能

降低引擎内部的计算损耗

降低引擎的内存使用

与此同时,我们的重点产品 Cocos Creator 和 Web 引擎共享同一套底层渲染机制,所以也将享受这些修改带来的优势。前一个阶段,我们在 Cocos Creator 上所投入的主要精力在于搭建数据驱动框架、组件化机制以及核心功能的迭代,目前我们已经更多得投入在优化上,相信很快也会有成果展示给大家。

游戏多发布此文仅为传递信息,不代表游戏多认同其观点或证实其描述。

戏葡萄原创专稿,未经允许请勿转载

2014年十月底的Cocos开发者大会上,触控副总裁王哲做了一次演讲,《重新定义下的Cocos》。

当时他这样说到,“没有-X和JS框架的区别,没有2D和3D的区别,它们就在一个引擎里,Cocos集成了所有这些服务,重新定义了无缝的工作流。美术和设计人员不需要配置很复杂的工作目录,不需要配置Android NDK、SDK之类的东西,当设计完场景动画和UI之后可以直接开发工作,开发工作只是由程序员来完成的。”

那么,2014年这一年,Cocos业务特别是CocosPlay取得了哪些成绩?Cocos部门对HTML5等新方向如何看待?葡萄君最近在触控厦门分公司与王哲聊到了这些话题。

葡萄君:对于触控,CocosPlay的意义在于?

王哲:CocosPlay目前是给触控代理的几款游戏使用,先让自家游戏用好了,再考虑面向别家以及商业化。自己先趟坑,这是触控开发工具类产品一贯的做法。CocosPlay是一个在用户体验上跟HTML5接近的系统,但没有HTML5那么高的移植和性能要求,不需要重写程序内容。Cocos Play技术可以对Native游戏简单改造之后,实现两个要点:免安装,和边玩边下载,也就是以前PC页游的运行模式。

王哲:PC互联网是以网站为基础建立服务链的,现在移动互联网App之间不能连通,于是需要SDK的接入。对于大量app产生的移动互联网流量,如内涵段子、冷笑话精选、美图、酷狗音乐等,流量很大,但这些流量的变现效率肯定不如游戏。这些站点对用户来说吸引力很大,因为用很低的成本就能换取更多的资源,而他们从前的变现手段主要是靠卖广告位CPA,或者通过游戏联运,但既要联运又得和CP谈、嵌SDK,非常浪费成本。所以现在我们希望通过CocosPlay做的大联运,来让长尾流量通过触控擅长的游戏领域提高效率和收入。

王哲:对于手机游戏,流量来源已经是一个瓶颈问题。国内流量来源最重要的是渠道给的推荐位,这些位置是有限的。所以在看到这些非游戏app产生的长尾流量的商机后,我们希望能把握这一点,进而给游戏厂商和高流量app带来额外的利润。现在Coco splay还只有触控代理的游戏在用,触控要评估这个市场的潜力,在摸清市场以后才会开放。Coco splay目前有3、4款游戏在使用,但技术上没有做到完全的自动化,因为涉及到对操作系统接口很复杂的封装,所以比较麻烦。

葡萄君:怎么看待HTML5游戏?

王哲:Cocos已经有技术可以用JavaScript做大型游戏游戏,也有很多研发商在用。比如Facebook游戏收入前列的《Big Fish Casino》就是用cocos 2d-html5写的。国内高收入的代表作则有DeNA的《变形金刚》、边锋的《三国杀传奇》、心动游戏上到微信的《仙侠道》、途游的一系列棋牌游戏等,采用cocos 2d-html5开发后,通过我们的JavaScript 绑定加速方案打包到native app,发行到安卓和iOS渠道。

王哲:我一向是比较保守谨慎的风格,所以提供出来的技术方案都是让客户可进可退的。从Cocos 2d-x在2010年的设计,就是进可攻Android退可守iOS的方案,要知道当时Android还非常小。而Cocos 2d-js就是进可攻HTML5退可守Native,我没有赌性,认为不把公司命运赌在唯一的方向上,这点非常重要。而对于只打算纯守Native的公司,我们还提供了Cocos Play方案可以转化为手机页游形态。我喜欢Cocos 2d-js这种可进可退,左右逢源的技术方案。

王哲:就目前而言,我遇到很多研发商的需求是,用Cocos 2d-js开发完游戏后,用我们引擎的native runtime加速方案打包为原生形态到渠道上分发,同时用HTML5 runtime做关卡试玩来导量。HTML5一大优点的是能在朋友圈里病毒传播,点开就玩。Cocos 2d-js很好地满足了这种既要原生性能来做大游戏,又要利用HTML5做病毒式传播导量的当下需求。市面上也有其他HTML5引擎,但cocos引擎的成熟程度和生态圈发展程度大家都明白,手Q玩吧里面的HTML5游戏,有50%直接用DOM开发,有20%~30%是用Cocos 2d-html5开发的,是玩吧里市场占有率最高的游戏引擎。但HTML5领域最终能发展到怎么样不是我e们引擎提供商和中小CP说了算的,还得看大厂的态度,尤其是谷歌和苹果的态度。所以目前谨慎的态度还是先用Cocos 2d-js跨native和html5两端,先走这一步,再看HTML5市场会不会有爆发。

王哲:再进一步,HTML5只是技术手段,手段只是为了实现背后的商业目标;而对于实现同个商业目标,可以有不同的技术手段。对于游戏厂商而言,HTML5技术背后的商业目标就是:如何在手机上像页游一样来源广泛且方便地导量,如何托管于社交软件中实现病毒式传播。如前面所说,现在非游戏app的流量很高,但缺乏高效变现手段;普遍采用的广告模式导量,玩家在看到广告到进游戏开玩的时间长,流量转化率低下。缩短这个等待时间,提高转化率是手机页游关键的问题和价值所在。比如一个100MB的游戏,下载10MB就能进游戏,最好是秒进,然后一边玩一边下载后续内容,而且不要弹界面出来问用户是否安装,是否授予一堆访问权限等等。在实现这个商业目标上,触控的Cocos Play技术和HTML5都是手段而已。两者都不是针对玩家需求而制作的东西,它是满足游戏厂商运营、盈利的需求的技术手段,比如发行、CP在商业上对分发效率、玩家进入游戏的时间、玩家的留存率、转化率的问题;而玩家只关心能否在手机上方便地玩到好玩、高质量的游戏,并不关心你游戏背后用的是哪种技术。

葡萄君:那么Coco splay的效果如何?

王哲:国庆的时候做了《秦时明月》的Coco splay版,放到渠道里发现反馈的数据都比较好,包括转化率和收入水平等。投放的渠道比所有的安卓渠道整体水平要高一些。由于不知道用户的反馈会往那个方向走,所以我们做的初始版本会相对简陋,在不断测试里去调试。当时《秦时明月》上91的时候还是试玩版,没有代支付等系统,将100多M的游戏改到10m,放上去以后,收入数据很快就上去了。

葡萄君:玩家会不会觉得包太小了?

王哲:玩家会有疑问,但还是眼见为实,玩一玩才知道。关键是以下几个:1)节约首次下载时间,10MB下载wifi环境2分钟,4G环境以秒计;而100MB wifi下载10多分钟,那么前两分钟过后,玩家就可以提前体验游戏,如果觉得不好玩就可以不下剩下90m的流量。2)网络环境的变化会导致下载中断,但10MB的包之后剩下90MB可以分次下载。

葡萄君:现在CocosPlay希望先解决哪些需求?

王哲:一是完善自动化转换工具,接入提升效率。但改造单款游戏的投入成本大,制作时间长,CP需要消耗过多资源。第二是收入目标,暂定目标是增收上千万的流水,比如《秦时明月》原本能达到5000万单月,使用Coco splay以后能提高20%,达到6000万,那么就KO了,因为手机上的HTML5游戏还没单月过100万的。

葡萄君:Cocos这一年取得了哪些成绩,2015年又有哪些打算?

王哲:国内的收入排行榜前十前二十,用Cocos研发的游戏占有率很高。韩国日本也有很多,比如海贼王、SE亚瑟王系列、怪物弹珠等。

王哲:2014年Cocos的成绩还分三方面。一是cocos 3D推出,我们去年在3D技术方面的进步比较大,是从无到有的过程,2D还将占据市场一段时间,尤其是欧美和日本市场;但3D不得不准备,未来手机市场可能像PC平台一样分化为:核心手游3D化端游化、2D游戏休闲化、社交化,退守手机页游戏形态。第二是理清了Studio工作流,终于解决了多个编辑器分立的问题,同时windows和mac两个版本的代码也合到了一起。从前尽管有同一个入口,但仍然是一堆功能分立的细碎编辑器。那样分开的工作既不方便管理,也影响工作效率。而今年实现了整体的统一,后面的迭代工作会快很多,很多改进的基础功能也帮大家提高效率。第三是Code IDE解决了苹果和谷歌眼中二等公民Lua和JavaScript脚本调试的问题。

王哲:展望新的一年,首先第一点是我们希望cocos系列产品之间能相互打通,可以在各产品各编辑器和扩展里面自由的调用相互的资源,实现更好的一体化集成开发环境。而进一步就是插件和扩展系统,让研发商自由加入自己的扩展控件,如自己的UI控件等。第二点就是3D,我们发布3D功能后到现在也过了10个月左右,在去年新立项的cocos 3D游戏会在今年陆续上线。我很期待也衷心祝愿cocos游戏,不论是2D还是3D游戏,都能在今年大卖,雄踞畅销榜榜首。‍

建风,92年资深游戏开发者。坚持自己对开发技术的热爱与追求,自学编程技术,毕业后一直从事Cocos游戏开发工作,并先后在CocoaChina发表多篇Cocos2d-JS教程以及两套Cocos2d-JS视频学习教程,获得广大游戏开发爱好者以及从业者的喜爱,仅优酷播放时长就达60万分钟。今天这位90后开发者又带来了他倾心编写的书籍《Cocos2d-JS游戏开发》与我们一起分享他对技术的理解、把控以及成书心得。

CocoaChina:请问你是如何进入游戏开发这个行业的?

这事情,说来也比较有意思。我是2014年从学校出来实习,那时候一心想做iOS应用开发,然后面试的第三家公司,便是我职场上的"初恋"--宝宝巴士(福建)网络科技有限公司,当时iOS组和Andoird组主管以及公司的技术总监分别面试了我,都一再确认我是否真的要做iOS应用,因为我大二的时候和我的好友曾彬思参加了福建省软件设计大赛,我们制作了一款RPG的游戏,获得了省二等奖,还作为代表队赴台参加比赛,所以在游戏的方向上应该更有经验。但是,在我的坚持之下,公司同意了做iOS应用。可没想到的是,第二周周一,我开开心心背着书包去上班的时候,公司就变卦了,让我做回游戏去。太坑爹,然后,当初那么天真无邪、单纯善良的我,就被这几个老男人给连哄带骗的骗去做游戏了,当然,公司开的条件是做游戏的话,毕业转正之后,就调去公司最核心的技术部门--框架组,就是这样,我踏入了游戏的圈子。

CocoaChina:选择Cocos2d-JS做游戏开发的原因是什么?

当初也刚毕业,对这些游戏技术方向,并没有一定程度的认识,选择Cocos2d-JS做游戏开发,主要还是因为宝宝巴士的技术总监,也就是我AC哥(请允许我在此向他说一声谢谢,感谢他一直对我的帮助、信任以及鼓舞,如果没有他,也就没有今天的凌建风)。记得当时我毕业之后调到框架组的时候,他就注意到Cocos2d-JS,发现官方开始主推Cocos2d-JS了,所以,安排我去学习突破一下。应该是出于这样的一个巧合吧。

另外,去年在宝宝巴士的时候,用的都是Lua,今年公司用的都C++,但是,我还是更喜欢JS,总结起来应该有三点原因:

首先,我最看重的是Cocos2d-JS的全平台支持。对我个人而言,全平台是非常具有诱惑力的。Cocos2d-JS提供了Web的支持,这让我可以使用Cocos2d-JS来开发Native游戏,也可以开发Web上的游戏,闲来无事,还可以写个H5小游戏,生成一个二维码,然后发给自己心仪的妹子,说不定一不小心就脱单了(然而我并没有这么干过)。所以,全平台的支持间接的提高了我个人的价值,让我的技术最大价值化,在一定程度上,也减轻了我需要学习其他技术(例如Web前端)的压力。

其次,在生活中,我是一个不赌钱的赌徒,从去年7月份开始,Cocos2d-JS一直陪伴着我成长,这一路来,让我爱上了Cocos2d-JS。另外,今年H5也是非常的红火,所以,我拿我的前途和钱途在打赌,我赌JS的潜力,我相信HTML5的时代不远了。

再者,我AC哥曾经一直灌输我们一个思想,男人有的时候还是要快一点。我本身也处于年轻气盛的时候。这么说吧,借潘婷洗发露的广告改一下--我是个急性子,编译要我等,不可能,Cocos2d-JS专业绕道编译两三年。所以,我非常喜欢Cocos2d-JS的开发效率。

CocoaChina:平时还对哪些技术比较感兴趣?

怎么说呢,我现在应该算是贼心不死吧,还是对iOS应用开发比较有兴趣。在游戏方面,对OpenGL、WebGL也有浓厚的兴趣,一直想挤出点时间,好好学下这些东西。其他的话,对编辑器也有一定的追求吧,比如之前做Lua的时候,我会去写一些Sublime的插件,写Cocos2d-JS的时候,自己也花了点时间做了个Cocos2d-JS在Sublime上的代码补全包。

CocoaChina:你之前在CocoaChina社区上发布了很多视频教程,为什么想要自己做教程呢?

自己做教程,实际上是有2个促进我的因素 。第一个因素是我大学受到了几个学长的点拨,他们会把他们的很多心得和技术分享给我,让我能跑的比别人快一些,所以,我传承了他们分享的品德。第二个因素,就是学习了1个月的Cocos2d-JS,然后想做个总结,给公司的同事们分享一下,碰巧当时在群里看到华彬哥(panda)说官方正在征教程,然后,我就和彬哥聊了几句,于是,本来面向公司内部的分享,就直接面向社会了。就是这样,我把教程放到了CocoaChina,没想到,我放上去之后,反响还不错,于是就接着出了第二套视频。

CocoaChina:据了解,你最近在写书?是什么样的书呢?

是的,确切的说,今年都在写。与其说在写书,还不如说在怀书,十月怀胎,好吃好喝的供着它,还把我整的不要不要的,有时候还让你恶心到想吐。这本书,书名叫《Cocos2d-JS游戏开发》,是和人民邮电图灵图书签订的,《保卫萝卜2》实例贯穿了整本书的每章章节实例(很感谢保卫萝卜将素材授权给我)。书分4大部分。第一部分为基础篇,讲解Cocos2d-JS基础模块,包含各平台下的环境搭建,渲染框架,动作模块,事件模块,音频处理,粒子系统等。第二部分为进阶篇,含数据存储,控件模块,性能优化技术,游戏地图设计,网络编程,反射调用,JavaScript Binding等。第三部分为物理引擎篇,讲解Chipmunk物理引擎。第四部分为项目实战,把萝卜没做完的继续做完。大概就是这样子吧。

CocoaChina:这本书适合哪些读者?对初学者学习上面有何建议?

这本书,由浅入深,结合多个实例项目,大部分的章节后面也都有一个章节实例,在比较高阶的,例如性能优化、Javascript、物理引擎等技术也写的还算详细,所以本书既适合初学者,也适合有一定Cocos2d-JS游戏开发经验的同学们当做工具书。

CocoaChina:写这本书时有没有特别难忘的事情?

自从视频暂停更新之后,我就开始琢磨想写一本Cocos2d-JS的书。因为,录制视频实在太累人了,都是我下班和周末回家录制的,时间本来就不多,所以我的视频都是一个视频一口气讲完,这样保证了视频的连贯性,可能有些开发者会说,可以剪辑呀。其实试过就知道,剪辑会降低视频的连贯性,而且,剪辑消耗的时间成本更大。录制到后面的时候,我发现,成本越来越高了,有些我也还不懂的技术,我要先去学,学会之后,要备课,备课之后,再录制成视频,还不能讲错一个字,一错,就重新录制,所以,几乎每一讲视频,我都录制了八九遍以上,有些更是超过了十几遍,这样的时间压力和强度,迫使我暂停视频的更新。而且,视频本身和书还是有区别的,书要讲的详细比较容易,视频要讲的面面俱到,着实不简单,所以,这两个因素,让我最终选择了写书。当然,写书压力也没少多少,游戏行业本身加班就凶,我是9106的工作机制,每天晚上10点下班回家后,状态还好,就写书到十二点多一点的样子,回来比较累的话,就睡觉去,第二天早上6点半爬起来写书2个小时,然后去上班,加上我本身比较在意细节,所以,这本书就是这样一点一滴的积累下来的吧,速度是慢了点。

CocoaChina:《Cocos2d-JS游戏开发》一书计划何时上市?

说到上市呀,哎,都被人催了无数遍,群友们说,群主,你书再不出来,我们就冲去厦门打你了。我也很想尽快上市呀,那样我就轻松了,但是,这不像我的作风,我可不想辛辛苦苦写了一本书之后,因为质量问题,被人喷,被人骂,对不起自己,也对不起读者。所以,我宁愿晚一些时间出来,我也要保证书的质量。书呢,目前书正处于二轮优化阶段,我争取在农历年底的时候把书搞上市,然后这样我回家就能过个好年了。

CocoaChina:之前在CVP圈子解锁了逆袭哥称号?能和我们说说逆袭背后的故事么?

封给我一个逆袭哥的称号,我感觉有点受宠若惊了。其实,也没逆袭什么,可能是自己自身的条件在外界看来,似乎显得差了一点。比如说什么高考300多分,想想也没什么好惊讶的,CVP圈子里,像我这样的多了去了,好几个92年的大牛。要说这背后经历了什么吧,那大概是这样子的,我11年高考失利(失利个毛线,其实就是不会读书),又执意不复读,然后同年同村的2个表兄弟都是600分左右,人家考那么好的大学,都很低调,结果我考了个小小的大专,父母却支持宴请全村(感谢爸妈一直如此信任和爱我),然后,我咬了咬牙,心里想,靠,自己装的逼,含着泪也要装完。

于是,我就那么上大学去了。上大学之后,我和高中的状态算是发生了180°大转弯,上课非常认真听讲,书的笔记做的都是满满的,结果第一学期下来,苍天呐,大地呐,C语言65分。后来,发现我高中的历史老师也在福师大继续读研,就和他诉说了我的心声,和他交流了几次之后,他支持我鼓励我,让我继续叛逆,从那之后,我又变成坏学生了。我上课就开始不听老师讲,下课不做作业,两年多下来都是这样,遇到新的课任老师,我就上去安利他,说:“老师,你的课讲的很好,我的耳朵是非常喜欢听的,但是我的内心告诉我,我不能听,我得学我该学的技术,你的课我一不迟到、二不早退,三不旷课,期末考,我尽我最大的努力,平时分您觉得给多少合适,就多少”。然后,几乎有教过我的老师都有当着全班的面说:“凌建风,你期末是第一个重修的”。可结果,老师们都看到了我的坚持,看到了我的努力,在期末的时候,都给了我蛮高的分数,还得了奖学金(哈哈哈,真是天上掉下个大馅饼)。

因为我上课都是自己带着电脑,坐在老师的旁边,他讲他的,我做我的,几乎是没有什么问题。但是记得有一次,机房管理员的主任过来,让我把电脑收起来,七七八八的讲了一堆,课任老师也暗示我,先收起来,和他打游击战下,等他走了,我再拿出来,我照做了,可第二次,那主任又过来了,说我不能带电脑来机房上课,我说为什么,他说这是学院规定的,带笔记本要登记,要不怎么知道那笔记本是我的,当时我就怒了,和他出去扯,越扯越火大,最后我说,我们去你办公室谈吧,这里影响大家上课。然后,我就去大闹了他的办公室,我说,你要是不让我带电脑,你这就是在阻碍我学习,最后我拉着他去见院长,说我们到院长面前理论吧,在这里说的都是废话。结果,他妥协了,让我找辅导员写个申请书什么的,我后来也懒得管他。所以,大学就是这么奇葩的走过来,虽然一把鼻涕一把泪,哭笑不得,但是,大多数的老师们都很支持我,这让我非常的感动。另外,也正是因为大学两年多都在自学,才给后来学Cocos2d-JS打下了快速学习的基础。

好吧,貌似说的就这么多了,最后感谢CCTV,感谢CVP,感谢触控,感谢CocoaChina,感谢那些曾经陪伴过我,帮助过我的朋友们,绳命(生命),有你们更精彩,人绳(人生),有你们--足够了。

CocoaChina:看的出来建风对技术的坚持与努力,我们也期待你的新书《Cocos2d-JS游戏开发》及更多技术分享!