零·引言
标题所说的手机软件,包括一般app软件与游戏,我将从入行开始,把自己所感受到的移动技术变化做个分享
一、智能机前期
楼主在上学期间到参加工作一年,使用的都是索爱,对这段时间的移动软件没太多概念,也没太多记忆,一年后,大概2011年初,入手了第一台手机 iphone 4
二、智能机原生时期
在参加工作一年后,大概2011年,有幸通过培训机构参加了移动4G游戏开发,学习重点是Andriod游戏开发,我还清楚的记得当时学习,因为大部分学员没有学习用手机,机构会给每个学员发个新的Android设备,当时的普及度可想而知。
在机构内的学习流程,从JAVA基础学起,再进阶到Android平台开发。
然后在之后,进入了国内一家知名的棋牌游戏公司。在2011年下半年,参与制作了Android版的德州扑克。靠着这款游戏的收入支撑着整个公司未来几年的收入直至上市。
可能很难想象,早期的游戏都是由原生语言开发,可以想象带来了几个问题:
1、开发成本大,Android设备的JAVA,IOS的oc,当时大部分公司,做一款软件发布2个平台,是需要2波人并行开发的。
2、游戏有两种更新方式,一个是大家熟知的整包更新,另一个被称为增量更新,类似于现在的热更新,只不过更新完了之后依然需要进行游戏下载
三、跨平台引擎时期
大概2012年开始,以cocos2dx、Unity为首的引擎开始大量普及,有实力的公司也会借鉴其引擎实现方式推出自己的引擎进行开发,例如我当时所在的公司,参照了cocos2dx-lua开发了自己的引擎。
那么不管是哪种跨平台引擎,它解决上述问题的方式都很类似,
跨平台:所有在游戏内看到的画面,只是由一个opengl画板绘制出来的图片,引擎需要做的只是为这个画板提供一套api,然后android、ios循环便利刷新这个画板
更新:上述画板内的逻辑通过脚本语言lua实现,得以通过下载脚本语言的方法实现动态更新。
当然这个时期的cocos2dx引擎,还存在大部分cococs2dx-c++的用户,也就是说无法做到动态热更新。
总体来说这个阶段各个厂商都处于探索最佳解决方案的阶段,并且市场对各个提供方案也进行着筛选
四、引擎大统一
最终cocos2dx,unity占领了大部分市场,其他引擎面临由于自身开发实力局限以及闭门造车的做法,慢慢面临淘汰,这带来一个问题,
非使用主流引擎的开发将会慢慢被市场给淘汰,为什么?
因为现阶段的各自研引擎的公司都使用脚本语言进行开发,而且一般公司不像cocos2dx unity这样对用户开源,公司内部引擎对于引擎组外的业务部门都是非公开透明的,也就导致一个开发工作了几年,除了对脚本语言使用熟练外,不具备其他优势了,他即接触不到引擎层面的代码,在公司内部使用的api也对外面没有任何价值
这个阶段能够在cocos2dx 以及 unity坚持下来的开发无疑是幸运的,保持市场竞争离的同时,由于引擎开源也在飞速的提升自己。
在上述引擎逐渐占领移动游戏市场的同时,也在不断进行的技术上的探索与革新,得以进入到下面一个阶段
五、h5大方异彩
随着人们的生活、工作节奏的提升,。动辄下载一个app进行游玩,觉得不喜欢又删除,类似这样越来越被用户抵触。
这个时候,随着小游戏、小程序的出现,发觉了一种新的行为模式,甚至渐渐成为目前用户群的主要行为:碎片时间游玩。
用户越来越接受小而精的游戏,并且十分享受近乎0成本的游玩成本-点击即玩,
cocos2dx引擎十分敏锐的察觉到趋势并且推出了cocoscreator解决方案:原生、h5、pc 3端,支持几乎所有小游戏平台。并且同样开源。
底层依然是cocos2dx,于是以前的用户又平滑的过度到cocoscreator,
由于cocos团队在移动端积累的强大技术实力,也立马在各h5引擎竟品中完成超车,成为不二的选择。
至此,国内的移动开发技术发展至今。