57 lines
2.5 KiB
Plaintext
57 lines
2.5 KiB
Plaintext
# Juliet Engine: User Stories & Prioritisation
|
|
|
|
## Priority 1: Critical Stabilization & Core Features
|
|
|
|
### [US-01] High-Performance Memory Allocation
|
|
Story: As a developer, I want a MemoryArena and ScratchAllocator for transient engine allocations.
|
|
Rationale: HIGH PRIORITY. Fundamental for performance and upcoming multithreading.
|
|
Target: Core Memory Systems
|
|
|
|
### [US-02] Robust String Struct
|
|
Story: As a developer, I want a String utility based on buffer + size instead of null-termination.
|
|
Rationale: Essential for safety and performance; prevents common C-string bugs.
|
|
Target: String.cpp
|
|
|
|
### [US-03] Bindless Transformation Cleanup
|
|
Story: As a developer, I want to remove Vertex Buffer support and related state resets, transitioning the engine to a 100% bindless architecture.
|
|
Rationale: Simplifies the D3D12 backend and leverages our recent bindless implementation for all rendering tasks.
|
|
Target: D3D12RenderPass.cpp, D3D12CommandList.cpp
|
|
|
|
### [US-04] Internal Message Queue Framework
|
|
Story: As a developer, I want a custom-built internal message queue to handle engine and OS events.
|
|
Rationale: Decouples event handling from the OS and provides a clean framework for window resizing and input.
|
|
Target: Core Event System
|
|
|
|
---
|
|
|
|
## Priority 2: Performance & Usability
|
|
|
|
### [US-05] Custom Lightweight Asset Management
|
|
Story: As a developer, I want a custom-built lightweight system for asset discovery and loading.
|
|
Rationale: Minimizes external dependencies and fits the custom nature of the engine.
|
|
Target: JulietApp\main.cpp Refactoring
|
|
|
|
---
|
|
|
|
## Priority 3: Infrastructure & Parity
|
|
|
|
### [US-06] Centralized Asset Management
|
|
Story: As a developer, I want to load assets (textures, shaders) through a centralized system rather than hardcoded paths.
|
|
Rationale: Improves project organization and allows for easier deployment/packaging of the application.
|
|
Target: JulietApp\main.cpp Refactoring
|
|
|
|
### [US-07] UTF-8 String Support
|
|
Story: As a developer, I want the engine's string library to support UTF-8 encoding.
|
|
Rationale: Necessary for internationalization and handling file paths with non-ASCII characters.
|
|
Target: String.cpp
|
|
|
|
### [US-08] D3D12 Dynamic Loading (Deprioritized)
|
|
Story: As a user, I want the application to eventually check for D3D12 support via LoadLibrary.
|
|
Rationale: Stability feature for later stages of development.
|
|
Target: D3D12GraphicsDevice.cpp
|
|
|
|
---
|
|
|
|
## Decision Point: Phase 4 & Networking
|
|
*Tasks like SPIR-V toolchain transition and cross-platform networking are currently considered Low Priority compared to engine stability.*
|