Feature description
Currently, an Atta project defined in a .atta file stores all its entities and components within that single file. This makes it difficult to reuse common configurations of entities and components (like a complete robot model, a specific environment setup, or a piece of furniture) across multiple projects without copy-pasting, which is error-prone and hard to maintain.
Game engines often solve this with a "prefab" system. This feature proposes implementing a similar system in Atta, allowing users to define reusable sets of entities and components in separate files (e.g., .apfb) and then include or instantiate them within a main .atta project file.
When Atta's file module loads a .atta file containing a reference to such an external file, it should load the contents of the included file as if they were defined directly within the main file, effectively instantiating the prefab/scene part.
This would enable:
- Reusability: Easily reuse complex objects or setups across different projects.
- Organization: Break down large scenes into smaller, manageable, modular files.
- Collaboration: Allow team members to work on different parts of a scene independently.
- Future Potential:
- Create libraries of standard prefabs (robots, sensors, environments).
- Build converters from standard formats like URDF or USD into this reusable Atta format (
.apfb).
Tasks
Feature description
Currently, an Atta project defined in a
.attafile stores all its entities and components within that single file. This makes it difficult to reuse common configurations of entities and components (like a complete robot model, a specific environment setup, or a piece of furniture) across multiple projects without copy-pasting, which is error-prone and hard to maintain.Game engines often solve this with a "prefab" system. This feature proposes implementing a similar system in Atta, allowing users to define reusable sets of entities and components in separate files (e.g.,
.apfb) and then include or instantiate them within a main.attaproject file.When Atta's file module loads a
.attafile containing a reference to such an external file, it should load the contents of the included file as if they were defined directly within the main file, effectively instantiating the prefab/scene part.This would enable:
.apfb).Tasks
.attafile format to specify the inclusion of an external prefab/scene file (e.g., specifying a file path)..apfb)..attafile loading logic (likely involving thefilemodule and serialization systems) to detect and process these inclusion directives..apfb).