基于C++和JS的全平台全栈式游戏开发解决方案的思考
编者按:近几年在在企业开发人员当中,很多主流语言备受关注,当然它们也有自己的广度和深度,比如像Python,Ruby,MATLAB,R等等,然而昔日的霸主JavaScript和C++在如今有着怎样的优势和劣势呢?它们的机会在哪里?本文作者言简意赅表达出来。
一、JavaScript的机会
近几年JavaScript在各个领域愈发流行起来。JS已经逐渐摆脱了只能做web的局限,在前端,后端,Native,Web,游戏,应用等各个领域遍地开花。
Cocos2d-x支持两种脚本系统,Lua和JavaScript。考虑到未来的趋势,我选择JavaScript。因为JavaScript和C++配合未来能够覆盖到很多主流应用领域:
后端:C++ Node.js
前端Native:C++ JavaScript
前端Web:Html5
工具:Qt C++ QML
国内在开发技术的选择上,跟世界比一直是滞后的。我们用C++的时候,国外在用Java,我们用Java的时候,国外已经用RoR,Python,Node.js,Go等等了。虽然国内有许多同道都作出非常多的有意探索,但这并不能左右大多数游戏公司在技术选型过于保守。这与国内开发商严酷的生存环境有一定关系,大家都想着技术积累让别人去完成,到时候挖人就好了。但最先进的技术,一定是买不到的,很多时候买到的只是一个解决方案,而且是难以进化的解决方案。最终技术的成熟还是需要持续交流和积累。而不是靠砸钱一步搞定一步到位。
业内还有一种说法,语言只是工具。潜台词是到时候学就好了。这是专门用来坑码农的。按这种说法,语言是工具,码农也是工具。任何一门语言要精通,没有持续的积累是做不到的。任何的库和代码要想重写,没有相当的时间和精力也是做不到的。做不到怎么办,那么就做初级的,写点功能,做做UI,过两年看看有没有新的东西出来,再学一下……如此反复。
二、优势与劣势
优势:
1.招聘。根据一个很古老的数据,web开发程序占整个程序员的65%。按照最近几年的情况,这个比例只会多不会少。
2.社区。Cocos2d-x、Cocos2d-html5和Node.js背后都有非常强大的社区支持,Qt在软件开发领域和游戏工具开发领域,也被众多的公司所采用。技术文档和支持很容易获得。
3.现在流行一个技术名词,叫全栈式开发。全栈式开发,前后端必须要考虑相同的语言,相同的技术接口。全栈式开发方式,一个程序员负责一个模块,同时处理前后端,减少大量的沟通成本和协调成本。
4.全平台覆盖,大量代码互换,极大减少了工作量和犯错机率。
劣势:
1.Qt在智能移动端发力太慢(让诺记给坑了)
2.不同环境下的JS虚拟机实现不同。Qt是自己写的。Node.js是V8。Cocos2d-x是SpiderMonkey。html5要针对不同的浏览器。不同的实现,不同的绑定机制,当然也有不同的bug。