文章插图
葡萄君:重做图形库的工作量具体有多大?
弋振中:开发的工作量确实不小。PS5的图形库和大家比较熟知的DX12、Vulkan相比更加底层,技术上除了要支持引擎、支持游戏的各种图形特性之外,还要做很多类似PC驱动层的事情。
比如PC的驱动层会进行数据保护,状态跟踪等工作,通过更保守的方式提高GPU的运行稳定性。而在PS5上和硬件的对话更加直接,这些东西全部要自己来做。要处理某项功能,就要收集各种各样的状态、数据,然后自己把这些数据组织好以后,再通过对PS5提供的底层API调用直接扔给PS5的硬件。
这样的方式当然更加高效,但是也几乎没有保护。一旦数据不对,PS5就当场崩给你看。传给硬件的这些数据的内存管理,资源回收,CPU/GPU同步也都需要自己完成。而且PS5才刚推出,配套的开发环境也并不成熟,需要自己琢磨的地方很多。
葡萄君:这么夸张。
弋振中:对,所以PS5图形库的开发,需要对硬件的了解达到一定程度。当时我花了差不多两个月的时间写了第一版,再让同事跟我一起debug和进一步完善。如果没有图形库,游戏画面出不来,其他模块做好之后也没办法验证,所以它的优先级是最高的。由于图形库开发量确实比其他模块更大一些,那段时间我们压力也比较大,容易掉头发。
葡萄君:定制文件加载系统的考量又是?
弋振中:《原神》的开放世界,相比其他特定品类,加载上会吃亏一些,因为它不是线性的加载逻辑。所以缩短加载时间能有效提高玩家体验,免去等待的过程。SSD本身的硬件特性就很强了,读取非常快,我们再定制一个加载系统,就能够更进一步放大它的特性。
难点在于我们游戏运行时需要读取的文件往往分散而且比较小,所以就涉及「如何把读取的命令有效地组织起来」的问题,让硬件能够更有效去发挥SSD的功能,加载得更快。与此同时,文件快速加载进来时,CPU如何小心地处理这些文件转换成游戏运行需要的数据,也是影响性能的一个因素。我们需要结合PS5提供的一套API来设计和实现我们的文件加载系统。
因为开发量比较大,时间也紧,所以我们把文件加载系统也放在了比较高的优先级。而由于这个功能完全靠我们自己写,在比较细节的地方,实现起来的自由度也更大,代码把控性也更高。
葡萄君:记得有玩家对比过,PS5版的平均加载时间是不到3秒,比PS4版快很多。
弋振中:可以做个对比,在PS5上用兼容模式跑PS4版的《原神》,这个模式就会比PS4版自己跑快很多,而这更多是利用SSD硬件特性实现的。
- estarpro|estar零封TTG,诺言和alan包揽MVP,alan:我得给子阳点压力
- 端游|LOL手游又送出两款皮肤,金克丝和蔚免费拿,白嫖党又开心了
- xyg|TES.A和XYG提前一轮获卡位赛门票
- 服务器|千元机和GTA之间,只差一个超级游戏
- 亡语|炉石传说:打了把3技能菠萝12胜 分享一下卡组和心得
- 阿柏怪|《宝可梦》来源与生态阿柏怪和现实的眼镜蛇竟然还有不同
- 游戏|网易和腾讯都做游戏,为什么挨骂的是腾讯,而不是网易?
- 干员|明日方舟:虽然古米是一个奶盾,但是受天赋影响,她也有输出和控制
- 体力值|原神:以后每个月都花30,体力也需要玩家购买,感觉不是一般坑!
- 孟子坤|王者荣耀全明星公益赛,赵让联手和孟子坤,挑战KS主播