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