-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Break down the initial Asset System implementation into actionable tasks:
- Define AssetID (GUID/UUID) and AssetHandle types for all assets (meshes, materials, textures, shaders, etc).
- Refactor MaterialSystem and other subsystems to use AssetID for identity (replace string-based lookups).
- Implement AssetRegistry (mapping AssetID <-> source path <-> asset type) as a persistent database (JSON/YAML).
- Design and implement .tmeta sidecar files for import metadata, hash, and dependencies.
- Implement a basic import/cook pipeline for assets (Mesh, Texture, Material, Shader) to produce cooked binaries (.tmesh, .ttex, .tmat, .tshd) and store in a cache directory by GUID.
- Create AssetManager: supports load/unload by GUID, reference counting, and fallback resources (default mesh, material, texture).
- Add async asset loading: IO thread parses/cooks, render thread creates GPU resources, swap handles atomically.
- Implement hot-reload: file watcher invalidates cache and reloads assets, with atomic swap of handles.
Each task should be completed and tested individually before moving to the next.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request