Overview: Difference between revisions
Architecture/ROM
imported>ShadowMarth-JTW (Updated MAP UNIT description in OVERVIEW) |
imported>Leoetlino (Architecture/ROM) |
||
Line 23: | Line 23: | ||
=== ROM === | === ROM === | ||
Resources are organised by type into a [[Content|directory tree]] with nested directories. | |||
Each resource type often has its own distinct file extension even when the file format is exactly the same. For example, [[Bgparamlist|Bgparamlist (GeneralParamList)]] and [[Blifecondition|Blifecondition (LifeCondition)]] are both [[AAMP]] files, but they have different file extensions because their types and purposes are different. | |||
==== Archives ==== | |||
Because the game tends to load several resources at the same time, related files are grouped and packed into archives to improve performance. Resources are packed [[Actor pack|at the actor level]], or [[Beventpack|at the event level]], or based on the moment they are loaded by the game, which is the case for [[Dungeon pack|dungeon pack]]<nowiki/>s and top-level [[pack]]<nowiki/>s for instance. | |||
This archive system does result in content duplication, but it is a fair space-time tradeoff. | |||
==== Resource auto-generation ==== | |||
Many resources in the ROM are automatically generated during the build process from source files that are not shipped with the game. Examples include Havok source collision data, UI map tiles or terrain statistics files. Some assets are generated by combining information from parameter files; this is done for performance issues as it allows the game to query information without loading any additional file. For example, [[ActorInfo.product.sbyml]] exists to avoid having to load entire actors or multiple [[ActorParam]] files at the very least. | |||
There is ample evidence implying that resources are packed into archives in a completely automated way. | |||
== Concepts == | == Concepts == |