我的个人博客:www.moonkite.cn
大家好,我是风筝
到现在为止,我不信还有人不知道《黑神话:悟空》这款游戏的,可以说是中国的第一款流行的3A游戏了,就连新闻联播都在说悟空的出圈刷屏现象。
3A 游戏,很多人一听就知道是很厉害的游戏,但是3A到底是什么意思你知道吗?
其实是3个 A 开头的英文短句,A lot of time, A lot of money, A lot of resource
,意思是这款游戏需要很多时间、很多钱、很多资源,当然有了这么多的投入,最后产出的质量肯定也是超群的。
听说到目前为止,销售额已经达到18亿了,相比会给国内的单机游戏开发带来一定的影响,以后游戏行业应该会比现在要好很多,游戏开发人员也会更有市场。
身边有条件的同学早就玩儿上了,因为要玩儿这个游戏,首先需要一块儿性能不错的显卡,然后硬盘最少还剩200多G的空余空间,所以说玩游戏也是需要门槛的。
我这种的就不行,首先,没设备,MacOS 好像只有 M2 芯片可以玩儿;第二:打游戏比较菜,这么说吧,魂斗罗都玩儿不过去,长此以往对游戏的兴趣也就不大了;第三,晕3D,上学是和同学去网吧玩儿CF直接玩儿吐了。
游戏引擎
要做一款游戏,一般都会先选一个游戏引擎,当然了,也可以自己写一个游戏引擎。
游戏引擎通过提供图形渲染、物理模拟、音频处理、AI、脚本系统等多种功能,大大简化了游戏开发过程,允许开发者专注于创意和内容的实现,而不用担心底层技术的细节。
举几个例子,让画好人物、动物图形在画面中走路、跳跃,跳起来后,要加速度落下,符合物理定律,这就是游戏引擎的功能。例如下面的伪代码,完成一个人物的跑跳动作。
在游戏引擎的加持下,就完成了小明的跳和跑,并且跑的速度是1.8米/秒,小明重80kg,跳起后落下要符合自由落体。
Person xiaoming = new Person();
xiaoming.weight = 80;
xiaoming.speed = 1.8;
xiaoming.run();
xiaoming.jump();
再比如一个物体在黑夜中、室内灯光、室外太阳光下的光影效果如何,也是游戏引擎控制的。
我记得有一段时间「保卫萝卜」很火,我虽然不太爱玩儿游戏,但是那时候感觉做游戏应该挺有意思。
保卫萝卜是用 Cocos2D-x 游戏引擎开发的,从名字也能看出来,这是一款 2D 游戏引擎,后来好像也支持 3D 了。Cocos2D-x 用 C++ 开发,后来好戏还有 JavaScript 的版本。
为此还买过一本《Cocos2D-x权威指南》,我一看订单,好家伙2013年5月8日,慢慢的回忆,那时候激情满满,啥都想学。
当然最后还是放弃了,要用好它必须掌握C++,但是我对C++比较头大,再有学习过程中发现做游戏不光是开发这么简单的,游戏中需要大量的图片、还要设计关卡,每一个都比写代码复杂。后来听说做游戏开发加班严重,赶紧借着这个理由把书给扔了。
比如2D引擎,3D游戏引擎要复杂的多,目前使用最广的游戏引擎就两个,一个是 Unity ,另一个就是虚幻引擎。
Unity 用的是 C#,虚幻引擎用的是 C++。《黑神话:悟空》是用虚幻引擎5开发的。
虚幻引擎以高端图形著称,特别适合制作3A级游戏,在实时渲染方面表现出色,常用于电影和电视制作。所以,玩儿3A游戏除了获得游戏操作本身体验外,画面、剧情、音效也是很重要的一部分,玩儿一款游戏,就像走进一个大片当主角一样。
下图是虚幻引擎官网上开发机的最低配置,我严重怀疑这个最低配置根本没办法开发。
游戏开发中的「开发」和程序开发中的「开发」差别还是很大的,游戏开发中的开发更像是房地产「开发」,尤其是这种大型3A游戏,虽然写代码也很重要,但是只是其中的一部分。
开发一款这种类型的游戏,需要做下面这么多事儿:
确定游戏主题和玩法; 设计游戏世界、场景、人物等等,需要画很多图,设计很多 3D模型等,很多游戏还需要真人进行表演,用摄像机进行动作捕捉,然后在进行处理,跟拍特效电影差不多。黑神话:悟空中的很多动作来自同一个,前后拍了4、5年。 使用代码或者可视化工具进行游戏逻辑的设计,比如虚幻引擎即支持直接用 C++写,也可以通过官方的蓝图工具进行可视化的编排。
其中的很多步骤更像是艺术创作,更多的需要代码的地方在于数据的处理,例如保存进度、系统加载等等。
游戏虽然好玩儿,但是开发却是非常复杂的。这也是为什么有那么多独立开发者开发应用,但是鲜少有独立开发者开发游戏的。
还可以看看风筝往期文章
用这个方法,免费、无限期使用 SSL(HTTPS)证书,从此实现证书自由了
古时的风筝,一个程序员,一个写作者。