Skip to content

Releases: eraflo/KhoraEngine

Milestone 3: Scene Representation, Assets & Data Focus

03 Nov 21:32
79dd0cc

Choose a tag to compare

KhoraEngine v0.3.0 - Asset Pipeline & ECS Foundation

This release marks the completion of Milestone 3: Scene Representation, Assets & Data Focus, implementing a comprehensive structure to represent the 3D scene through the CRPECS (Component-Registry-Pooled ECS) architecture and establishing a complete system for loading resources (models, textures, audio), with intelligent data organization and asset-related metrics collection.


Key Features & Changes ✨

CRPECS (Component-Registry-Pooled ECS) Architecture

  • Defined core ECS architecture and designed the foundational CRPECS system (#39, #151)
  • Implemented core ECS data structures with semantic domain-based component grouping
  • Implemented basic entity lifecycle management (spawn/despawn) (#152)
  • Implemented native query system with filter support for efficient same-domain queries (#153)
  • Added component removal & basic garbage collection with asynchronous cleanup (#154)
  • Implemented component registry for semantic domains organization
  • Added transform hierarchy and propagation system for scene graph management (#40)
  • Relational entity-component architecture: Entity metadata separated from physical data storage
  • Structure of Arrays (SoA) layout within component pages for optimal cache locality
  • Performance through intelligent compromise: Fast iteration for same-domain queries, cheap structural changes via EntityMetadata

Asset System & Virtual File System (VFS)

  • Designed comprehensive asset system with VFS architecture (#41)
  • Implemented VFS packfile builder and runtime for efficient asset packaging (#174)
  • Implemented texture loading & management with dedicated texture lanes (#42)
  • Implemented mesh loading & management with GPU mesh preparation and render extraction systems (#43)
  • Added basic material structures with rendering pipeline integration (#44)
  • Refactored AssetLoader into AssetLoaderLane architecture for better async handling
  • Added asset loading metrics: load time histograms and asset count tracking

Scene Serialization & Persistence

  • Implemented basic scene serialization foundation (#45)
  • Three serialization strategies fully implemented:
    • Definition Strategy (RON format - stable, human-readable)
    • Recipe Strategy (command-based for editor features)
    • Archetype Strategy (binary - fastest loading)
  • Serialization infrastructure: SerializationStrategy trait and error handling
  • Component definition system with stable serialization formats
  • Foundation for SAA-Serialize architecture (agent-driven strategy selection coming in future phases)

Audio System

  • Implemented basic audio system with playback and management capabilities (#99)
  • Integrated cpal for cross-platform audio playback
  • Added audio lanes and agent for asynchronous audio processing
  • Implemented audio loading lanes for streaming audio assets
  • Basic audio structures and traits for extensible audio pipeline

Macro System & Developer Experience

  • Added Component derive macro for simplified component definition
  • Refactored AffineTransform into dedicated math library structure
  • Improved code generation for ECS component registration

Documentation

  • Complete documentation overhaul using mdBook
  • Added comprehensive ECS architecture documentation explaining CRPECS design philosophy
  • Added serialization architecture documentation (SAA-Serialize)
  • Updated asset system and VFS documentation
  • Set up automated documentation CI/CD workflow
  • Updated roadmap with completed and upcoming features

Dependency Updates

  • Upgraded wgpu from 26.0.1 to 27.0.1 with API compatibility fixes
  • Updated egui from 0.32.1 to 0.32.3
  • Updated sysinfo from 0.37.0 to 0.37.2
  • Updated tempfile, serde_json, thiserror, clap, log, ahash, and uuid

Bug Fixes & Improvements

  • Fixed wgpu API changes with on_uncaptured_error and PollType::Wait
  • Multiple clippy warnings and code quality improvements
  • Fixed missing library installation issues
  • Code formatting and consistency improvements across all crates

What's Next?

With the ECS foundation and asset pipeline in place, development continues with Phase 2: Scene, Assets & Basic Capabilities:

  • Transversal Queries (#158): Cross-domain query support for the CRPECS
  • Advanced Rendering Features:
    • SimpleUnlit RenderLane (#159)
    • Camera System & Uniforms (#46)
    • Material System (#47)
    • Lighting Models (#48)
    • Forward+ Lighting RenderLane (#160)
  • Physics System: Integration & collision detection (#100, #161)
  • Animation Foundation: Skeletal animation system (#101, #162)
  • Complete Metrics Integration: CPU/GPU timers with core metrics system (#73, #128)

Looking ahead to Phase 3: The adaptive core with DCC, ISAs, and GORNA implementation.


What's Changed

  • [Research & Design] Define Khora's ECS Architecture by @eraflo in #39
  • [Feature] Implement Scene Hierarchy & Transform System by @eraflo in #40
  • [Design] Design Asset System with VFS & Define Core Structs by @eraflo in #41
  • [Feature] Implement Texture Loading & Management by @eraflo in #42
  • [Feature] Implement Mesh Loading & Management by @eraflo in #43
  • [Task] Render Loaded Static Model with Basic Materials by @eraflo in #44
  • [Feature] Implement Basic Scene Serialization by @eraflo in #45
  • [Feature] Implement Basic Audio System by @eraflo in #99
  • [Task] Implement Core ECS Data Structures (CRPECS v1) by @eraflo in #151
  • [Task] Implement Basic Entity Lifecycle (CRPECS v1) by @eraflo in #152
  • [Task] Implement Native Queries (CRPECS v1) by @eraflo in #153
  • [Task] Implement Component Removal & Basic Garbage Collection (CRPECS v1) by @eraflo in #154
  • [Feature] Implement VFS Packfile Builder & Runtime by @eraflo in #174
  • chore(deps): bump wgpu from 26.0.1 to 27.0.1 by @dependabot[bot]
  • chore(deps): bump egui from 0.32.1 to 0.32.3 by @dependabot[bot]
  • chore(deps): bump sysinfo from 0.37.0 to 0.37.2 by @dependabot[bot]

Getting Started with v0.3.0

git clone https://github.com/eraflo/KhoraEngine.git
cd KhoraEngine
git checkout v0.3.0
cargo run --bin sandbox

Full Changelog: v0.2.0...v0.3.0

Contributors
@eraflo
@dependabot[bot]

Milestone 2 : Rendering Primitives & ISA Scaffolding

21 Aug 10:48
a88ae57

Choose a tag to compare

What's Changed

  • added wgpu for renderer part by @eraflo in #109
  • abstracting render system by @eraflo in #111
  • 33 feature implement graphics device abstraction by @eraflo in #112
  • Update README.md by @eraflo in #113
  • chore(deps): bump env_logger from 0.10.2 to 0.11.8 by @dependabot[bot] in #115
  • 34 feature implement swapchain management by @eraflo in #117
  • 35 feature implement basic shader system by @eraflo in #119
  • 118 feature implement basic render pipeline system by @eraflo in #120
  • added khora_bitflags macro + modify ColorWrite in enum bitflag by @eraflo in #122
  • 36 feature implement basic buffertexture management track vram usage by @eraflo in #130
  • chore(deps): bump winit from 0.30.10 to 0.30.11 by @dependabot[bot] in #131
  • chore(deps): bump wgpu from 25.0.0 to 25.0.2 by @dependabot[bot] in #132
  • chore(deps): bump winit from 0.30.11 to 0.30.12 by @dependabot[bot] in #134
  • chore(deps): bump wgpu from 25.0.2 to 26.0.1 by @dependabot[bot] in #133
  • implement GPU performance monitoring with backend-agnostic hooks by @eraflo in #136
  • Metric system + Complete GPU performance monitoring integration with … by @eraflo in #137
  • integrate VRAM tracking into unified resource monitoring system by @eraflo in #138
  • integrate system RAM tracking into core metrics system by @eraflo in #139
  • implement robust graphics backend selection with fallback architecture by @eraflo in #141
  • Refactor by @eraflo in #142
  • 38 task render a single trianglequad with performance timings by @eraflo in #143
  • fix warning resize + shutdown render system by @eraflo in #144
  • 140 feature implement basic command recording submission by @eraflo in #149
  • chore(deps): bump egui from 0.24.1 to 0.32.1 by @dependabot[bot] in #148
  • chore(deps): bump sysinfo from 0.32.1 to 0.35.2 by @dependabot[bot] in #146
  • chore(deps): bump anyhow from 1.0.98 to 1.0.99 by @dependabot[bot] in #145

New Contributors

Full Changelog: v0.1.0...v0.2.0

Milestone 1: Core Foundation & Context Hooks

03 May 14:01

Choose a tag to compare

KhoraEngine v0.1.0 - Foundational Core & Context Hooks

This is the first tagged release of KhoraEngine, marking the completion of Milestone 1: Core Foundation & Context Hooks. This version establishes the essential groundwork for the engine, focusing on core architecture, basic platform integration, and the initial mechanisms for context awareness required by the long-term Symbiotic Adaptive Architecture (SAA) vision.

Key Features & Changes ✨

  • Project Structure & Infrastructure:
    • Established the core project structure using a Cargo workspace (khora_engine_core, sandbox). (#97)
    • Set up basic CI/CD workflows via GitHub Actions. (#97)
    • Added initial project documentation (Architecture Design, README). (#105)
  • Core Engine Architecture:
    • Implemented the main Engine struct and application loop structure using winit's ApplicationHandler. (#105, #108)
    • Introduced a thread-safe MPMC EventBus for internal communication, along with core EngineEvent types. (#106)
    • Defined initial subsystem traits (e.g., Renderer placeholder). (#105)
  • Mathematics Library:
    • Implemented foundational 3D math primitives (Vec2, Vec3, Vec4, Quaternion, Mat3, Mat4, LinearRgba, AABB) within khora_engine_core::math. (#98)
  • Platform Integration:
    • Integrated winit (v0.30) for cross-platform window creation and management, wrapped in a KhoraWindow abstraction. (#108)
    • Implemented basic input handling, translating winit keyboard and mouse events into internal EngineEvent::Input types (InputEvent, MouseButton). (#108)
  • Context Awareness & Monitoring (SAA Foundations):
    • Integrated basic logging using the log facade and env_logger. (#106)
    • Added a Stopwatch utility for basic CPU performance timing. (#107)
    • Implemented heap allocation tracking via a custom global allocator (SaaTrackingAllocator) to monitor memory usage. (#108)

What's Next?

With this foundation in place, development now moves to Milestone 2: Rendering Primitives & ISA Scaffolding, which will focus on integrating a graphics API (wgpu/ash), setting up the rendering pipeline, and adding GPU monitoring capabilities.

Getting Started with v0.1.0

git clone https://github.com/eraflo/KhoraEngine.git
cd KhoraEngine
git checkout v0.1.0
cargo run --bin sandbox

Full Changelog: https://github.com/eraflo/KhoraEngine/commits/v0.1.0