An area list is a collection of related areas that are defined as a group so they are loaded as one unit in memory.
An area list is the largest contiguous environment you can travel through without seeing a loading screen. For performance reasons an area list should only have one exterior area (bounded by a skybox volume), but can have multiple interior areas within it. Transitions between areas within an area list are done with a quick fade-to-black, teleport, and fade-back-in.
There can only be one area list active at a time in the game, but the player can transition between them.
Area lists are the equivalent of the master areas and subareas in the Baldur's Gate series of games. It allows party members to wander through a city, and all of the interiors, without having to be tethered to one another.
A seamless world can be implemented as a game with one area list. Area list transitions may potentially go to the World Map (but don't necessarily have to; for example, entering a large castle from the village outside of the castle will be a load bar that doesn't necessarily require the World Map and area selection to appear).
The area list resource is very simple, consisting of just a text description and the name of the resource itself.
An area is assigned to an area lists by setting the appropriate property of the area resource itself:
Referencing objects by tag
Note that the contents of all of the areas within the active area list are 'active', so scripts that affect objects by tag will be able to affect all of these. For example, if you've got two copies of an NPC in different areas within the same area list and wish to set one of them inactive, GetObjectByTag could potentially return either of them. There are two approaches to resolve this:
- Ensure that any object you need to refer to has a unique tag across the entire area list it is in
UT_GetNearestObjectByTaginstead. This is a more robust solution since it still works if an object with an identical tag is later added to some other area in the area list.
|English • русский