Obsidian is a high-performance 2D game engine designed specifically for CC: Tweaked. It features a robust Entity Component System (ECS), an optimized rendering pipeline with double-buffering, and a flexible particle system.
- High-Performance Rendering: Uses double-buffering and
term.blitoptimization to ensure smooth frame rates. - ECS Architecture: Decoupled logic and data for scalable game development.
- Asset Management: Automatic caching and pre-processing of sprites (
.osf), UI layouts (.oui), and emitters (.ope). - Particle System: Fully integrated ECS-based particles with support for gravity, drag, and color/character interpolation.
- Static/Dynamic Layering: Optimized handling of static backgrounds versus dynamic entities.
src/core/: The heart of the engine.loader.lua: Handles asset loading and optimization.particles.lua: ECS systems for particle effects.buffer.lua: Low-level rendering logic (Double-Buffering).
assets/: Suggested directory for your.osfand.opefiles.
The engine follows a strict 7-phase pipeline:
- Clear Phase
- Static Pass
- Query Pass (ECS)
- Sort Pass (Z-Indexing)
- Entity Pass
- UI Pass
- Present Phase (Sync to Hardware)
This project is licensed under the MIT License.