GAMES104实录 | 引擎架构分层(下) part2

本期为GAMES104《现代游戏引擎:从入门到实践》视频公开课文字实录第7期。本课程由GAMES(图形学与混合现实研讨会)发起,游戏引擎技术专家王希携手游戏引擎一线开发者共同研发。

课程共计22个课时,将介绍现代游戏引擎所涉及的系统架构,技术点,引擎系统相关的知识。为配合学习实践,课程组在 GitHub 上开源了小引擎Piccolo,上线1个月即获得了2900+star, 累计下载量已超过20000+。

以下内容为公开课视频转文字版本,为阅读通顺,有删减

01「平台层」

上节课简单介绍了游戏引擎的5+1个层次,以小明同学想做一个动起来的角色为挑战,介绍了资源层、核心层等具体内容。

这节课讲游戏引擎架构分层的最后一节 —— 平台层和工具层。

我们试想一下,小明同学已经把游戏从上到下全部写完了,他想去找小美同学得瑟一下,但发现小美用的是Mac,可用Windows开发的游戏怎么在Mac上跑起来呢?

我们发现在不同的平台上,甚至连文件路径的格式都不一样:一个是“/”,一个是“\”。这种情况下,我不可能把引擎的代码从头到尾重写一遍。所以平台层就会变得非常重要。

平台层的本质是在上面写核心代码/功能/逻辑,可以无视平台的差别。平台层也叫做平台无关,就是把平台的差异性全部掩盖掉,这一层是现代游戏引擎非常核心的东西。

刚才讲的文件路径其实是比较简单的,真正让大家头疼的是什么?举个例子:想做一款游戏,在PC上面对的可能是DirectX,DirectX有DirectX 11、DirectX 12;在Mac上面对的是Metal;在Android上面对的可能是OpenGL ES,那在Vulkan上写图形学feature的人碰到了是不是很崩溃?

在现代游戏引擎中,非常重要的一层叫做RHI——Render Hardware Interface。

它重新定义了一层Graphics API把这些硬件的SDK差别封装起来。

这是一小段RHI的代码,大家发现其实这些函数又被重新定义了一遍,而且全部是虚函数。虚函数是一个比较高能的概念,学过C++的同学都知道࿰

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值