Syrillian Engine is a Rust-based, real-time 3D game engine built on top of wgpu, focusing on flexibility, modularity, and a straightforward, entity-component-driven workflow. Designed to be easily extensible, Syrillian Engine aims to provide a robust foundation for building modern 3D applications, rendering pipelines, and post-processing effects.
- Object Oriented Components: Syrillian Engine provides a flexible OOP structure, allowing you to attach components (such as transforms, camera controllers, and custom logic) to game objects with minimal boilerplate.
- Renderer Powered by wgpu: Leverages the cross-platform wgpu API for graphics, giving you Vulkan/DX/Metal-level performance and portability.
- Different Code Design Approach: While other game engines focus on a very rust-based approach to their design, Syrillian focuses on ease of use and code simplicity.
- Rust & Cargo: Ensure you have the latest stable Rust toolchain installed. A nightly compiler toolchain might be necessary for some builds. Install Rust
- wgpu-compatible GPU: Syrillian Engine uses wgpu, which requires a modern graphics API (Vulkan, Metal, DX12, or WebGPU).
-
Clone the repository:
git clone https://github.com/Kek5chen/syrillian.git cd syrillian
-
Build the engine:
cargo build
-
Run a demo or test application included in the repository:
cargo run --example my-main
NixOS Development Flakes are provided with the project.
If successful, a window should appear displaying a rendered scene.
src/
: The core engine code.shaders/
: WGSL shader files for main 3D rendering and post-processing passes.examples/
: Example applications or scenes demonstrating usage of the engine.
- Add New Shaders: Place new WGSL shaders in the
shaders/
directory and register them in theShaderManager
. - Add Components & Systems: Extend
components/
with new component types, and integrate custom logic in ECS update steps. - Add Post-Processing Effects: Create off-screen passes and write new fragment shaders for effects. Then hook them into the
Renderer
’s second pass.
If you are planning the use the engine as a library and not to extend the engine itself, consider adopting a similar structure in your project.
- Additional Render Features: Shadows, PBR materials, Skyboxes, HDR and bloom are planned enhancements.
- Editor Tools: Add an editor UI for placing objects, tweaking materials, and viewing engine stats.
Contributions are welcome! If you find a bug or have a feature request:
- Open an issue describing the problem or feature.
- Discuss solutions or improvements.
- Submit a pull request with your changes.
Ensure your code follows Rust’s formatting and clippy checks:
cargo fmt
cargo clippy
Syrillian Engine is distributed under the MIT License. See LICENSE for details.
Syrillian Engine: Building the backbone of your next great 3D experience.