房间和入口的介绍

房间(Room)和入口(Portal)系统是 Godot 的可选组件,它允许您将 3D 游戏关卡划分为一系列 Room即单间)和 Portal。入口是房间之间的开口,相机(和灯光)可以通过这个开口看到另一个房间。

可以用来实现许多功能:

  • 入口遮挡剔除,可以减少绘制对象的数量来提高性能,包括相机和阴影贴图。

  • 游戏回调,允许关闭游戏区域以外的活动——AI、物理、动画、过程等。

这些功能的代价是,必须手动将关卡划分为房间,并在房间之间添加入口。

备注

Godot 的入口(Portal)不应与同名游戏混淆。它们不会扭曲空间,只是表示相机(或灯光)可以透过的窗口。

尽量减少手动操作

尽管为大关卡创建房间所涉及的工作似乎令人生畏,但有几项因素可以使这变得更容易些:

  • 如果您使用的是现成素材库,已经在重复使用房间或区域,这是节省精力的理想方式。您可以把关卡图块用作房间,并且已经放置了入口。

  • 如果你正在创建程序式关卡,你可以创建房间和入口,作为你正在编写的程序式生成算法的一部分。

  • 那么,如果您手动创建自由形式的关卡,请记住,对于入口的使用没有任何规定。即使你将一个大型游戏关卡分成两个房间,它们之间只有一个入口,这仍然可以带来相对较大的性能提升。

性能优势遵循 L 型曲线(特别是在遮挡方面),当你仅创建几个房间后,大部分优势就能体现。因此,不要害怕偷懒——*工作让人聪明*

一般来说,当涉及到中型和大型关卡时,做一点入口总比不做要好。

一些注意事项

备注

入口系统应被视为 Godot 的高级功能。在熟悉 Godot 编辑器并成功制作出几个测试游戏之前,你不应该尝试使用房间和入口。

作为游戏设计师,它给了你很大的权力,但代价是,它需要具有非常好的关卡设计技巧。它的目标是产生专业级的结果,并假定用户准备为此付出努力。它并不打算用于所有的 3D 游戏。并非所有的游戏都能从中明显受益,而且,它所需要的时间可能比短期游戏竞赛要多。