Added workflows to automatically compile / recompile shaders with antigravity.

Added user story to work on some todos
This commit is contained in:
2026-01-13 21:28:08 -05:00
parent bfd042abbf
commit 98783b7e8f
3 changed files with 82 additions and 0 deletions

17
.agent/workflows/build.md Normal file
View File

@@ -0,0 +1,17 @@
---
description: Build the Juliet project using FastBuild
---
This workflow sets up the Juliet build environment and runs `fbuild`.
1. To build a specific configuration (e.g., msvc-Debug):
// turbo
`cmd /c "misc\shell.bat & fbuild msvc-Debug"`
2. To build the default (msvc):
// turbo
`cmd /c "misc\shell.bat & fbuild msvc"`
3. To see all available targets:
// turbo
`cmd /c "misc\shell.bat & fbuild -targets"`

View File

@@ -0,0 +1,9 @@
---
description: Recompile shaders for the Juliet project
---
This workflow recompiles all shaders using the `recompile_shaders.bat` script.
1. Recompile all shaders:
// turbo
`cmd /c "misc\shell.bat & misc\recompile_shaders.bat"`

56
USER_STORY.txt Normal file
View File

@@ -0,0 +1,56 @@
# 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.*