不使用游戏引擎如何开发游戏
游戏引擎是在图形接口(API)的基础上运行的。
如果把图形接口比作英文单词库,那游戏引擎就是金山词霸和有道词典。
所以不依赖游戏引擎的话,就需要直接驱动图形接口了。
如同不借助金山词霸,你要如何成为一个英文作家?当然是直接写英文了。
图形接口其实有很多种。
但值得一提的只有四个,其中两个主流,两个非主流。
两个主流,分别是DirectX和OpenGL。
而两个非主流,是Metal和Vulkan。
除此之外,还有一些游戏机厂商自己的API,比如索尼的GNM和GNMX,它被用于PS4游戏开发。
但这类图形接口,只能服务于固定的硬件环境下。
简单说,如果将来再推出PS5的话,GNM和GNMX是无法使用的,因为硬件环境不同了。
所以这类图形接口,会随着宿主机型的灭亡而消失,无法被后续机种所继承。
因此能够用于各种不同硬件的API,一共就只有四个。
性能上,DirectX所向无敌。
兼容几乎所有品牌与型号的硬件设备,并能支撑次世代级的画面水平,从技术角度简直是完美的。
但问题是,DirectX是微软独家的,只能工作在Windows系操作系统与Xbox游戏机之上。
借助DirectX的强大,开发人员不需要太过注重优化,便能获得高超的性能与画面水平。
至于OpenGL,其实诞生比DirectX要早,是图形工作站上的产物。
它唯一的优点,就是可以跨系统。
不仅能运行在Windows系统之上,还能运行在Linux,Mac OS,安卓,IOS,甚至网页之上。
由于有代码膨胀的先天缺陷,性能与DirectX相比,简直弱爆了,约10倍左右的性能差距。
用于一些2D小游戏还好,开发3D游戏,真是勉为其难。
虽然在手机上,可以看到类似《王者荣耀》之类的3D游戏,但这都是建立在开发人员几乎变态的优化与妥协之上,才得以实现,优化的难度,远远超过开发游戏本身,大多数情况下,都要靠降低画质标准才能实现,“手游”与“端游”画质差距,便显得一目了然。
也正因OpenGL低下的性能,Mac和Linux始终都是游戏的禁区,几乎所有次世代大作,都是在Windows环境下开发出来的。
也正因为各家厂商都对OpenGL的性能非常不满意,才会有Metal和Vulkan诞生。
90年代的微软天下无敌,整个IT行业绑在一起,还比不过微软的一条胳膊粗,但随着比尔盖茨隐退,鲍尔默接任掌门人之后,微软在策略上出现连续失误,吞并任天堂计划破产,WP系统夭折,XBOX萎靡不振,.NET平台错过最佳开源时机。
微软突然病了
由于WP系统夭折,DirectX因此没能引入到移动设备。
苹果与谷歌趁势崛起,占据了移动端,安卓和IOS成了手游的首选平台。
而开发者则必须习惯,在OpenGL上开发游戏。
优化便成了首要问题,开发难度明显增加。
之后,苹果公司便发布了Metal,主要用于IOS游戏开发,苹果公司号称,它的性能比OpenGL高10倍,且可能超越DirectX。
但无论这些数据有多华丽,使用苹果的标准总是要格外谨慎,因为苹果设备与游戏行业本就格格不入,开发手段也从来不与其他平台共享。
因此你很可能“进得去,却出不来,最后困死在连调试游戏都困难重重的mac上面”。
苹果不仅从来不给开发人员留后路,而且还赚开发者的钱,需要先掏钱,才能开发游戏。
加上Object-C,shake,Macintosh等事件,苹果公司的奸商路线,所创造出的血淋淋的教训已经够多了。
否则当年作为仅次于IBM的第二大电脑公司,拥有近40%的市占率,也不至于被边缘化到只剩下个位数。
十年前IOS开发还很火,Object-C程序员遍布大街小巷,而当苹果抛弃Object-C的时候,失业是他们唯一的选择。
所以Metal可能会吸引到一些无辜的初学者,但按照苹果公司一贯的行事作风,很难期待它会成为主流行业标准。
另外一个非主流,就是Vulkan,是AMD开发的一个标准,所以也主要是被AMD的显卡所支持,后来开始逐渐支持一些手机设备,系统方面支持windows和安卓,被视为目前最有可能取代OpenGL的潜力股,所以未来可能会很有前景。
但到底能不能成为主流,目前还很难说,尤其在英伟达都没跟进的前提下,去谈行业标准,显得为时过早了。
如果你是倾向于次世代游戏方向,则DirectX是首选,因为它的性能在今天依然是无可替代的,且至少目前根本看不到对手。
而且由于可以通过C#语言驱动,它的学习难度也要比OpenGL容易一些。
如果你只是希望学习图形接口。
个人比较推荐OpenGL,因为它有更广泛的平台适应性。
但它很难承载太大型的游戏项目。
不过你依然可以把它用于游戏之外的项目。
比如有一个网页版的OpenGL标准,叫做WebGL,只要设置一下浏览器,就可以在网页上显示3D模型。
而如果你希望投资未来,为将来做技术储备。
那么两者均可。
因为万变不离其宗,即便将来有了更优秀的图形接口,基本原理总是不变的。