syrillian

Crates.iosyrillian
lib.rssyrillian
version
sourcesrc
created_at2024-12-08 15:19:34.07471
updated_at2024-12-08 15:24:41.112234
descriptionReal-time 3D game engine built on top of wgpu, focusing on flexibility, modularity, and a straightforward, entity-component-driven workflow
homepage
repositoryhttps://github.com/Kek5chen/syrillian
max_upload_size
id1476360
Cargo.toml error:TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
willow (Kek5chen)

documentation

README

Syrillian Engine

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.

Features

  • Entity-Component System (ECS): Syrillian Engine provides a flexible ECS structure, allowing you to attach components (such as transforms, cameras, 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.

Getting Started

Prerequisites

  • 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).

Building & Running

  1. Clone the repository:

    git clone https://github.com/yourusername/syrillian-engine.git
    cd syrillian-engine
    
  2. Build the engine:

    cargo build
    
  3. 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.

Project Structure

  • 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.

Customizing the Engine

  • Add New Shaders: Place new WGSL shaders in the shaders/ directory and register them in the ShaderManager.
  • 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.

Roadmap

  • 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.

Contributing

Contributions are welcome! If you find a bug or have a feature request:

  1. Open an issue describing the problem or feature.
  2. Discuss solutions or improvements.
  3. Submit a pull request with your changes.

Ensure your code follows Rust’s formatting and clippy checks:

cargo fmt
cargo clippy

License

Syrillian Engine is distributed under the MIT License. See LICENSE for details.


Syrillian Engine: Building the backbone of your next great 3D experience.

Commit count: 277

cargo fmt