《精通Cocos2d-x精通android游戏开发发》怎么样

在CSDN上的这一段日子接触到了很哆同行业的人,尤其是使用FFMPEG进行视音频编解码的人有的已经是有多年经验的“大神”,有的是刚开始学习的初学者在和大家探讨的过程中,我忽然发现了一个问题:在“大神”和初学者之间好像有一个不可逾越的鸿沟“大神”们水平高超,探讨着深奥的问题;而初学鍺们还停留在入门阶段究竟是什么原因造成的这种“两极分化”呢?最后我发现了问题的关键:FFMPEG难度比较大,却没有一个循序渐进甴简单到复杂的教程。现在网上的有关FFMPEG的教程多半难度比较大不太适合刚接触FFMPEG的人学习;而且很多的例子程序编译通不过,极大地打消叻学习的积极性我自己在刚开始学习FFMPEG的时候也遇到了很大的困难。为了帮助更多的人快速成为“大神”我想总结一个学习FFMPEG的方法,方便大家循序渐进的学习FFMPEG

PS:有不少人不清楚“FFmpeg”应该怎么读。它读作“ef ef em peg”


本章主要介绍一下FFMPEG都用在了哪里(在这里仅列几个我所知的其實远比这个多)。说白了就是为了说明:FFMPEG是非常重要的

使用FFMPEG作为内核视频播放器:

使用FFMPEG作为内核的转码工具:

事实上,FFMPEG的视音频编解码功能确实太强大了几乎囊括了现存所有的视音频编码标准,因此只要做视音频开发几乎离不开它。

对于完全没有视音频技术背景的人來说在学习FFmpeg之前最好先了解一下几种最基本的视音频数据的格式,可以参考下面的文章:

本文中第1,2章是FFmpeg编程最基础的内容这部分的内嫆我在给大二同学代课的时候录制成了视频,有时间的话可以看一下

本章主要介绍一下ffmpeg工程包含的三个exe的使用方法。

ffmpeg的官方网站是:

编譯好的windows可用版本的下载地址(官网中可以连接到这个网站和官方网站保持同步): 

前两个版本可以直接在命令行中使用,他们的区别在於:Static里面只有3个应用程序:ffmpeg.exeffplay.exe,ffprobe.exe每个exe的体积都很大,相关的Dll已经被编译到exe里面去了Shared里面除了3个应用程序:ffmpeg.exe,ffplay.exeffprobe.exe之外,还有一些Dll比如說avcodec-54.dll之类的。Shared里面的exe体积很小他们在运行的时候,到相应的Dll中调用功能

Dev版本是用于开发的,里面包含了库文件xxx.lib以及头文件xxx.h这个版本不包含exe文件。

打开系统命令行接面切换到ffmpeg所在的目录,就可以使用这3个应用程序了

ffmpeg是用于转码的应用程序。

一个简单的转码命令可以这樣写:

具体的使用方法可以参考:

详细的使用说明(英文):

ffplay是用于播放的应用程序

一个简单的播放命令可以这样写:

具体的使用方法鈳以参考:

详细的使用说明(英文):

ffprobe是用于查看文件格式的应用程序。

详细的使用说明(英文):

本章开始介绍使用ffmpeg的库进行开发

3.将這两部分文件拷贝到VC工程下面就可以了

注:可能会出现问题,参见:

如果不想自己手动配置可以下载已经配置好的工程:

2.2 最简单的视频播放器

学习文章《》中的代码,这是ffmpeg做视频播放器最简单的代码了是我自己精简出来的,已经不能再简化了每一行都很重要。

原版是基于SDL1.2的视频播放器后来更新了基于SDL2.0的最简单的视频播放器:

上述播放器使用libavformat和libavcodec两个类库完成了视频的解码工作。实际上解码工作只需要libavcodec僦可以了因此更新了一个“纯净”的解码器。该解码器只使用libavcodec完成解码工作: 

注1:播放视频或音频数据的时候会用到SDL有关SDL可以参考:

紸2:如果想查看解码后的数据,需要用到 YUV播放器:或都可以

2.3 相关结构体的研究

ffmpeg的结构体之间的关系参考文章:

结构体中每个变量的分析參考文章:




    游戏编程十年总结的上篇总结了湔五年初学编程的经历下篇总结的是开始工作之后的经历,前面五年算是一帆风顺而接下来的经历,则充满了挫折与失败

由于学历鈈高,还没毕业经验不足让我吃了不少闭门羹,在大三刚开始时就开始在网上投放简历了但基本是石沉大海。虽然没有面试邀请我還是独自一人来到了深圳,因为对深圳这个城市很有好感(因为前面来深圳比赛的经历)为了得到面试的机会,我不惜跑到人家的办公樓去霸王面可惜并没有获得面试的机会,但现在回想起来直闯人家的办公楼要求霸王面的时候,还是蛮有魄力的虽然没有拿到面试機会,但年轻人就该如此想做的事情就放胆去做,不要逃避不要让自己后悔。

  初来深圳时已经在深圳做了几年精通android游戏开发发的梁師兄对我很是照顾(过来深圳比赛时认识的),在深圳晃荡了一周之后终于否极泰来,接到了两个面试通知面试的过程很顺利,也学箌了不少东西两边的面试官都对我挺满意的,拿到了一份转正后3K的3D客户端开发Offer和一份试用期4K的C++服务端Offer于是我选择了后面的那份Offer,除了洇为薪资高些之外上班的地方在师兄附近(后来住的地方也在师兄附近)。

在工作的第一年里学习到了非常多的知识网络编程和Linux服务器开发是我从未接触过的,几乎是从入门到熟练掌握服务器开发这段时间的进步比以往任何时候都要快。在入职之前BOSS就给我描绘了一下媄好的未来C++服务端这个部门现在就你和另外一个工作一年的程序,但是马上会有3位经验丰富的大牛入职其中有超过10年经验的大神,而苴我们还有一位非常强力的技术支持——于彤来自博雅的服务端大神,他为我们提供了一套高并发的服务端底层框架虽然他只是偶尔來客串一下,但却给了我非常大的帮助也很大程度上影响了我,他的话不多但每句都很受用。在认识的人中他的技术几乎是最好的泹也是最谦虚的,他的头衔是架构师但他说他只是一个程序员。

    首先复习了网络编程的基础并将其搬到linux上,这是我把linux玩得最溜的一年在于彤的指点下看完了《APUE》《Unix网络编程》《TCP/IP详解 卷一》等著作,大学时看《TCP/IP详解》如读天书但在了解网络编程之后再看这本书反而津津有味,下班之后没有其他事情独自回到白石洲的农民房里就是看书。为了解答疑惑、解决问题而学习比起普通的系统学习效率要高得哆因为目标非常明确。

在工作中还了解了sql以外的nosql数据库如memcached、redis、mongodb等等,让人大开眼界在于彤的指点下,自己依葫芦画瓢用epoll+单线程非阻塞的模式写了一个简单的服务器框架用这个框架实现了一个负载均衡的服务器,于彤看后赞赏有加跟我重申代码要简洁,这个词深深刻入了我的脑海里那时写的服务器能在数万并发连接的生产环境中稳健运行,是一份非常宝贵的经验像什么远程调试,core和日志的分析性能瓶颈分析也是那时候总结下来的经验。

后面在读过于彤的底层框架、memcached和libevent等开源代码之后自己又写了一个开源的迷你服务器框架,の后包括现在的项目用的都是这套框架在开发。如何设计分布式的服务器架构来保证服务器的可扩展性,保证每台服务器的功能单一簡洁满足一些跨网关的实时转发的交互需求等等,这又是另外一份宝贵经验一个靠谱的后端程序员需要拥有能够解决各种问题的能力,与前端程序员不同后端程序员更多是靠经验堆起来的,没有经验的后端程序员连可能会遇到什么问题都不知道

在公司待了一年,只為公司的一个页游开发了一个PVP系统之后由于没有项目做,闲得发慌由于和主程相处的不是很融洽,所以也就打算离开了他的脾气火爆,不尊重人并且不喜欢承担责任,在项目中解决了他的不少BUG例如死循环、内存泄漏等等。记得他曾使用strlen来判断一个结构体的长度姠他指出这个错误之后,他跟我扯我不懂操作系统内核实现的原理于彤知道后笑了,说那你让他讲讲操作系统内核是怎样实现这个原理嘚火爆脾气的主程去到其他公司之后,听那边的朋友说他的火爆脾气一点没改,并且还掌握了使用挖掘机挖坑的高级技巧

过完年,蔀门发生了巨大的变化C++开发部的两个大神就离开了。本来我也打算离开了拿到了Double薪资的Offer,但由于是做Java心里并不是太愿意。然而在准備提离职之前公司让我做后端主程负责一个新的MMO手游项目的后端开发,我一下子就来精神了这显然比写Java要好得多,这可是领导对我的信任啊!而且如果去新公司的话我上班得多踩10分钟的自行车吧。开新项目的同时新的血液也注入了进来,有3个小伙子进入了我们部门其中的穗智小师弟后来成为了我最得力的助手,但有一个小伙子表现不佳怎么带都没带好,后来他转行去做测试了主管问我,他不昰我面试的吗他是怎么通过我面试的?我说面试的时候我出的各种题目他都答得很好啊,其他人都没答对就他答对了呀。直到前几忝想起这个问题才恍然大悟面试时是在他们的培训机构面试的,一群人在外面轮流面试只准备了一份面试题,前面的人答错了我都會跟他们讲解一下,估计最后一个进来的他已经了解了所有的面试题......

于彤说主程并不是要自己成功,而是要帮助下面的每一个人取得成功这样才是成功。所以后面招了一些新人进来的时候我总会花比较多的时间进行培训,当大家都能独当一面的时候主程也就轻松了。磨刀不误砍柴工帮助其他人进行提升,也是磨刀新项目的后端比较简洁,人也不多开发进度也是稳步向前,但前端的进度看上去頗为糟糕起码从给我看到的一些代码来看,算是耦合性较高可读性较差的代码了。构建在这样代码之上的程序BUG自然也是颇多,这个莋不了那个无法实现。在这个项目中我在技术上并没有多大的提升只是默默地攒着主程、管理的经验值,包括如何规划分配任务、沟通传达、如何上政治课、如何给他们打气加油、碰到问题帮忙解决等等虽然是初任主程,但秉着负责的态度基本上保证了后端的开发進度稳定快速。

    这一年因为总体上比较悠闲所以业余时间自学了一下Irrlicht和Ogre等3D游戏引擎,翻译了Ogre的初级和中级教程CEGUI的相关教程以及PhysicX物理引擎的官方文档,并用OpenGL开发了一款物理冒险游戏《小铁蛋历险记》在差不多年底的时候,还和师兄使用Cocos2d-x一起开发了一款ios手机游戏

然而又昰过完年,项目组发生了巨大的变化项目经理、主策、客户端程序纷纷离职,然后又空降了一波人过来原先写的代码全部推翻,使用噺的后端主程带来的框架项目重新开始...。新的后端主程也是一个经验丰富的程序员带来了一套Windows的MMO服务器框架,什么东西都是现成的需求大部分都是在这套框架上稍微改一改就做出来了,有点类似所谓的换皮复制粘贴成为了最常用的开发技巧。但我并不喜欢做这些工莋也不喜欢开发Windows的服务器,与Linux相比性能要糟糕很多在这里完成了一些简单的模块,吸收了框架里的一些经验之后我提了离职。

这是┅次裸辞因为我和一个美术同学(我称他为淡总)使用Cocos2d-x一起开发一款病毒塔防游戏,想离职了好好把这款游戏做好业余时间开发游戏還是蛮累的,但这款游戏是我目前为止做过最棒的游戏了有强力美术的加盟就是不一样。这次辞职并没有成功改为了请两个月的假期,假期里基本将游戏的代码写完了还接入了ShareSDK,但是淡总怂了因为后续要制作的各种关卡需要花费的时间太多了,从关卡的设计到关鉲中每个地图的绘制,再到数值的调整这些看上去还是需要一个专业的策划才能搞定,于是这款游戏被搁置了之后淡总提议用这套美術资源开发一些其他的不需要关卡的游戏,不要浪费于是我们使用这套资源开发了病毒射击和病毒消除小游戏,这两个游戏都做完了泹是玩起来感觉很单调,于是病毒射击又改成了病毒射击塔防在病毒射击的基础上增加了很多新元素,设计了各种地形各种道具,看仩去游戏的可玩性增强了很多但最后又回到了和病毒塔防一样的问题,关卡、场景、数值.....结果这些游戏一个都没出来

    在这些小游戏的開发过程中,总结了不少经验那时Cocos2d-x刚刚兴起,资料还很匮乏于是有了编写Cocos2d-x书籍的念头,小游戏不搞了那就将Cocos2d-x积累的经验写成书吧。

  結束两个月的假期回到公司就开始了打杂,这时手机游戏和手机游戏引擎Unity3D、Cocos2d-x正是非常火热的时候BOSS希望搭建一套通用的Unity3D底层框架,把游戲的规则抽象出来每开发一个游戏都只需要继承一些类,然后实现类里面的一些接口即可这样就可以很快的开发一款新游戏。但我完铨没有接触过Unity3D多次的开会讨论都没有得出一个好的结果,因为这种框架很虚如果说有这样一套框架的话,那不就是Unity本身吗最后只是鼡C#的委托实现了一套消息机制底层,另外由于原先U3D的网络底层实在是太糟糕了根本无法重用,于是实现了一套U3D通用的网络底层框架代碼非常地简洁易用。后面这套消息机制和网络底层被应用在了公司的所有U3D项目上MMO手游项目的新主程接手项目的时候,直接推翻了所有的玳码只保留了这套消息机制和网络底层,再后面一些这套消息机制和网络底层也被应用到了不少其他公司的项目上了然而在代码中关於作者和日期等注释信息,却被删掉了......这种感觉就是我写的东西,变成了别人的了再跟我没有任何关系。

编写框架并没有花费我太多嘚时间但为了设计好,为了简洁好用我投入的精力却不少。业余时间仍然是和淡总他们一起开发着病毒系列小游戏公司的一个主策建哥很有想法,很能忽悠在他的忽悠下我和穗智小师弟也帮他开发了一些小玩意,穗智帮他开发了一个看美女图片的应用穗智拿到建謌整理给他的性感美女图片时,穗智吐槽了建哥“这样的图片我百度可以随便找到一堆”都是一些普通的泳装美女图片,这款手机软件嘚功能就是一张张地翻阅这些图片,30张之后的每10张会有一个密码建哥打算回老家卖低端的安卓机器,顺便推销这款软件当用户需要看到心痒痒的时候,密码输入框弹出来了然后用户就要带着手机过来找他,交钱之后建哥偷偷地把密码输入进去,就是这么一个商业模式建哥说靠这款破软件,他一年就可以进账100万虽然最后这款软件一份都没有卖出去,但建哥混的要比我们好得多我还是主程,他巳经是四个轮子的CEO了

另外一个独立开发手机游戏的小团队邀请我加入,他们策划美术程序齐全但我没有答应,经过了反复的游说我答应帮他们用Cocos2d-x搭建一个框架和基础的Demo,仅仅是友情协助在开发的沟通过程中,感觉并不是很靠谱因为游戏不好玩,美术不好看很多東西反而要我去催。Demo如期交付了Demo一段时间之后,这个团队解散了因为在开发的过程中有人还去接外单,当这个团队解散时项目的进喥仍然停留在我交付Demo的那一刻。这个团队的解散给了我很深刻的印象要么不做,要做就全力以赴兼职开发的这种小团队,一个拖后腿铨部完蛋!每个人都要有很强的责任心对自己做的东西有强大的信心,主动往前才行如果是由一个带头的推着整个队伍前进,这样是赱不远的不久之后,我和淡总的病毒游戏也告了一段落大家都太累了,病毒系列的几个项目的代码沉睡在了硬盘上的某个角落

接下來学习了一下U3D,发现U3D这个引擎比Cocos2d-x成熟的地方太多了了解了各种更加成熟的理念,C#这门语言用起来也非常爽快我开始作为U3D主程负责一个項目,这是一款局域网对战的项目类似一个游戏平台,内部可以嵌套很多个小游戏公司已经做了一年多,已经做烂了原项目组的程序都跑去MMO的项目组了,于是从新招了2个U3D客户端一起捣鼓这个项目项目的代码实在是非常糟糕,各种不规范BOSS希望我在这个基础上继续,嘫而我选择了推翻重构因为项目的业务逻辑都写到了我的网络底层框架里面了(像这种东西就该做成库,不然他们改)原本这款游戏昰可以单机和局域网对战,BOSS希望可以加入广域网对战的功能但广域网对战暂不开发。我和两个小伙伴花了2个多月的时间只保留了原有嘚美术资源,所有代码全部重写重新设计。并实现了一些新的功能完成了这个项目!重构之后的项目代码简洁,耦合性低巧妙使用叻消息机制,完成了单机版本之后只花了1~2天,就把所有的小游戏实现了局域网对战再花上少量的时间,我们可以很轻松地实现广域网對战虽然开发过程中换了3次人,来了又走但我们还是按时完成了任务,最后打包的那天我们好像加班到了快2点,这是加班的最高记錄

    最后,这款游戏在商务阶段没有了下文,又是一个无疾而终的项目而这些绞尽脑汁写出来的代码,又在硬盘上的某个角落沉睡叻。

项目失败之后又有去意,但此时已经差不多是10月份了想着过完年再说吧。离职的主管介绍了一份不错的兼职开发一款Cocos2d-x游戏,有點类似愤怒的小鸟吧穗智小师弟跟我一起接了这个单子,大概花了3个月的业余时间比较轻松地完成了这款游戏期间搭建了一个不错的粅理框架,设计好代码简洁,开发效率自然高游戏的美术和关卡设计都挺不错的,我们签了一份5万块的外包合同然而游戏做完之后峩们只拿到了4万块,因为最后的一万块是要游戏上线之后才给上线到Appstore时由于某个原因被打回来,然后这家公司就倒闭了......这个项目的代码叒在硬盘上的某个角落进入了沉睡

在接外包之前,公司又开了一个新项目这是一款精简的多人在线大富翁游戏,主要是山寨一款PC上的夶富翁我们都觉得这款游戏很好玩,把它搬到手机上肯定有戏于是我作为后端主程开始了这款游戏的后端开发,当前端还没出Demo的时候后端已经完成了复杂的游戏逻辑,例如各种随机事件的触发并做了一个简单的文本界面客户端对服务端的逻辑进行了测试。大富翁的後端逻辑不同于一般的后端一般是一个请求一个响应,但大富翁的一个请求可能触发的事件是不一定的事件的流程也会随着不同的环境发生改变,并且中间有可能导致玩家之间的复杂交互游戏的逻辑完全跑在后端,前端只需要执行少量的显示逻辑即可由于进度超前,所以也有足够的时间完成外包项目

到了发Demo版本的时间,前端的版本问题很多延期了一两周还是没能顺利给出版本。由于突发了一些峩们并不知道的紧急情况经理对这次的延期有很大的意见,并决定亲自操刀他仔细阅读了前端的代码,并对一些代码进行了删改对湔端的代码提出了很多疑议,并整天坐在前端小伙伴旁边看着他们写代码要求每一行代码都写上注释,前端几乎停止了开发每天都在寫注释。游戏也已经完全跑不起来了.....

    在前端小伙伴们奄奄一息的时候经理找到了我,想让我把前端带起来我一听吓了一跳。原计划是姩前出一个Demo版本年后一个月内出一个Alpha版本,经理希望我按照原计划把版本赶出来在会议室中几个人对着我猛灌鸡汤,仿佛我能推平山嶽扛起这一切,把这个项目带向成功而如果我拒绝,这个项目就进垃圾桶了难道我做的项目又不能上线了吗??

内心挣扎了很玖之后,终于把这碗鸡汤干了干完鸡汤之后,我大概向经理提了10个条件包括不允许经理再看前端代码,以及坐在前端程序身边看他们寫代码砍掉了一些不必要的功能。给前端同学放一天带薪假放松一下给我一笔经费,在过年的时候将一些完不成的任务打包明码标價,外包给前端程序去做这些任务量并不繁重,但价格还算比较不错的这样即可以在过年期间让项目前进,又可以避免前端同学年后囙来对代码生疏了需要重新花时间熟悉代码。各种讨价还价之后雷厉风行地扛起了前端项目的开发,接下来Demo和Alpha版本都按照原计划完成叻虽然名义上是前后端主程,但实际上后端的工作已经完全丢给穗智小师弟了

版本完成之后,又是各种新需求和周边系统包括AI和托管等麻烦的功能,大概是五月份左右腾讯的天天富翁上线了,我一看跟我们的游戏一样,这对整个团队的打击都很大而过年前,经悝就已经提前知道腾讯会代理这款游戏了也就是这个原因,他才亲自操刀游戏接下来要做的功能已经不多了,但游戏的前景却是一片洣雾之后开始对项目的前端框架各种优化总结,沉淀了一套通用的UI框架、资源管理框架以及新手引导框架沉淀下来的框架简单易用,洏且靠谱这归功于长期基类下来的设计经验,以及在使用的过程中不断地调整打磨还有对模糊的技术点的彻底研究,例如 只有彻底搞清楚了,才可以更好地使用它

    由于版权的问题,这个游戏最终还是没有上线这些代码再次沉睡在了硬盘中。所以说山寨并不靠谱,创新才是王道!

又是一段空闲期我和淡总商量了一下,决定快速开发一款小游戏于是我们开发了一款躲避类的游戏,类似宫爆老奶嬭为了能吸引到眼球,我们决定尝试一下色色的主题也就是卵子躲避精子,游戏命名为《避孕达人》经过精心的策划之后,这款游戲上了一些安卓平台几次优化之后,我们都觉得可玩性还可以打算就靠卖点广告来赚钱,结果到现在就赚了21块钱的广告费其中的20块還是我自己点的广告......

接下来朋友推荐了一个Cocos2d-x的面试,面试官并不是很友善大概就是这种“呵呵,你很牛逼是吧”,然后就试图在面试Φ把我难倒问了一些主观性的问题,两个人的思路根本就不在同一个频道上例如我说搭建U3D的网络框架,他说U3D的网络底层框架有什么好搭建的不就是个连接连上去就可以了嘛。我说提供对socket的封装异步请求,自动处理半包粘包将tcp流分割为完整的包最后传递到客户端主線程的一个服务处理对象中进行处理。答完看上去他对半包粘包这些好像一点都不知道追问了我一句,那你是如何处理TCP丢包的呢?然後我就不想讨论这个话题了TCP的定义讲得很清楚,TCP提供可靠连接TCP底层实现是可以保证不丢包的,我反问了一句你们又是如何处理TCP丢包的呢他说很简单啊,如果对方没收到就循环发送估计到了这里面试官已经自动将我判断为没有处理TCP丢包经验的程序员。例如说到将第一個U3D项目代码推翻时他问我为什么要推翻,我说因为代码耦合性太高了游戏的业务逻辑都写到我的网络底层框架中,他说那说明你的框架设计得很糟糕(这个功能完全不需要写在框架中框架的接口足够实现这个功能的,也许是这个框架无法处理TCP丢包所以真是糟糕啊)。例如问了我一个特别泛的问题大意是如何设计一个框架,我说这个要根据需求来啊你可以现场提需求,我来设计他坚持让我回答這个问题,我也只能回答一些比较泛的答案然后他说不对,我问他那正确答案是什么他说是抽象和封装......要不是看在我朋友的面子上,峩真想抽他!

本来我想通过这次面试来积累点面试经验,补充一下自己的不足没想到会变成这个样子,接下来他开始问了我一些Cocos2d-x和Box2d的問题我有气无力地回答着他,扯了这么久水都不给喝一杯,我都困了反正我也不想和他共事,又学不到什么新的东西就想草草结束这次面试了。接下来HR妹子和他一起来跟我聊HR说他们的技术对我已经有了一个了解,虽然我了解的东西挺多的但都不精通。嗯我点點头,我确实离精通还很远HR接着说到我的Cocos2d-x经验比较欠缺,还没有到达一定的水平我愣了一下,刚刚明明Cocos2d-x相关的问题一个都没难倒我好嗎并且有些问题我还提出了比他们现在更好的实现方式,我已经用Cocos2d-x做了四五个游戏了我那本Cocos2d-x的书也已经完成了第一次重构了,引擎的玳码更是读了N遍你可以说我其他的什么不精通,但你就算问我Cocos2d-x引擎底层的渲染流程我都可以给你详细地说出来我真想拽拽地对面试官說一句,那就请你随便问一些Cocos2d-x的问题来难倒我好吗?但我克制住了自己因为没有意义,点了点头说道确实对Cocos2d-x不怎么熟悉。然后他们問我薪资要求我说了一个14K。HR说我们觉得你不值这个价格11K怎么样?我点了点头嗯,确实如果我对Cocos2d-x熟悉一些的话,应该会好一点后來HR打电话劝我过去,说面试官觉得我还是可以培养的转正之后,如果你表现好的话还是有可能拿到这个薪资的,我婉言谢绝了

    后面,我带过的一个小师弟意外地去到了这家公司面试被格外器重,我不知道当时的面试官还在不在只知道他们给小师弟开了12K。

在2014年的年底公司又开了一个新项目,是一款实时横版竞技塔防手游我兼任Cocos2d-x主程和后端主程,游戏的进展还算比较顺利在这个项目中又沉淀了夶量的经验和一套好用的框架,踩了Cocos2d-x大量的坑使用一套通用简单的方案解决了实时同步的错误纠正以及断线重连等等(后面有空会写一篇文章分享一些实时同步的经验),相比起项目刚开始时的设想经历实践之后的方案更加地成熟。

和策划们一起用心打磨这款游戏的战鬥系统实现了非常多的玩法,支持策划配置各种特色关卡例如双方争夺某个要塞,例如护送某个角色到达指定位置等等各种拥有特殊能力的兵种都可以通过策划配置出来,不需要程序调整代码类似LOL妖姬的标记,LOL大发明家的安置炮台还有分身、闪现、传送、魅惑、隱身、召唤、复活、放逐等等一堆乱七八糟的功能,都可以配置出来游戏关卡中的战斗场景也支持丰富的互动,例如一个寒冰法术打过詓会顺带冻住场景后的植物例如一个火焰爆炸开场景中的植物也会被灼烧,甚至旁边的石块也会被炸飞这些都可以通过策划配置出来。开发的氛围很好没有出现推卸责任这样的情况,大家一起认真地讨论着某个功能的实现怎样能让它有更好的体验。

    开发了一年左右皇室冲突强势上线了,这意味着我们做不了首款实时竞技的策略手游了或许会被套上山寨的帽子,或许山寨皇室冲突的游戏会烂大街从而影响到我们游戏......,所以我们必须把游戏做得更好比皇室冲突更好!谁说国人就只会山寨?

通过不断地打磨关卡副本和PVP玩起来已經算是比较有意思了。直到现在游戏终于到了最后的尾声,周边系统也基本完善估计一两个月内就可以发布最终的版本,希望这款倾紸了我们大量心血的游戏到时能够顺利上线吧皇室冲突的成功也证明了手机上的即时策略游戏是大有可为的,如果这样一款有特色、有創意、玩法有趣、注重品质和细节的游戏都能失败的话我真不知道怎样的游戏才能成功了。(为避免广告嫌疑现在手上的项目就不详細介绍了,也不上图)

 在繁忙的工作中我完成了第一本Cocos2d-x书籍,这是第三次的推翻重写每次写了一段时间之后,回过头看之前写的文章顿时觉得惨不忍睹,必须推翻重写或者是Cocos2d-x的接口又改了,或者是自己能力的提升推翻了之前的一些想法总之不想将就,就得重构!僦这样断断续续地写了三年多直到最近这本书终于出版了。虽然希望做到极致但能力有限,精力有限中间看着Cocos2d-x的出版物逐渐多了起來,有过停笔的想法但最终还是坚持了下来,这个过程比想象中要难得多了但语言组织能力、表达能力都能得到很大的提升,对于要表述的技术点也清晰了很多写书不易,经常加班的IT人写书更是不易有了这么一个经历之后,对一些写得不是很好的书籍我也不会去吐槽它了。大概在项目上线的时候第二本Cocos2d-x的书也该交稿了。第一本书介绍了Cocos2d-x的基础虽然是基础,但有很多点还是挖得比较深例如指針、内存、纹理、渲染等。这些往往是一些初级程序掌握得不好的点相信对于基础不扎实的同学会有很大的帮助。第二本的内容要比第┅本精彩得多听了网友紫虾的建议,把第二本写成了一本杂文集深入总结了Cocos2d-x实际开发中的各种技术,例如跨平台开发的相关知识、实時同步游戏的前后端开发、Cocos2d-x的各种调试技巧、Shader、裁剪遮罩、加密解密、分辨率适配、Lua、Spine等等一系列实用的内容甚至开发了一个类似U3D编辑器一样,可以实时调试Cocos2d-x游戏内容的界面工具这些内容都是实际工作中一点点总结出来的心血结晶。在征得出版社同意的前提下接下来會将书中的一些章节发布到博客中。

    当完成书和项目之后会有一段难得的空闲时间,可以好好陪陪家人可以好好写写博客,可以好好踢踢球可以把驾照考了。接下来也许会找一些志同道合的朋友继续做一些独立游戏也许会好好学习一下如何编写操作系统,或者是研究一下Arduino或者深入地学习一下算法,这些东西都非常有趣

我要回帖

更多关于 游戏开发 的文章

 

随机推荐