Skip to content

SSSxCCC/steel

Repository files navigation

The Steel Game Engine

Steel is an open source cross-platform Rust game engine with built-in editor. Steel uses real-time ray tracing rendering, also known as path tracing, to provide a perfect 3D lighting system. Traditional rasterization rendering still exists for use in 2D games and can be used to preview 3D scenes. You can switch between ray tracing rendering and rasterization rendering at any time.

Design Goals

  • Open source: The Steel game engine is completely open source, and the engine layer code can be easily modified if necessary.
  • Simple: Game engines are very complex. In order to write a game engine in the simplest way, Steel only implements the necessary core game modules. In addition, Steel uses the widely used open source libraries, such as shipyard, glam, egui, vulkano, rapier, etc. So Steel can focus on implementing editor functions and rendering effects.
  • Modularity: General game modules, such as physics engines, can be added as plugins. You can easily add any plugin written by others, or you can write a plugin for others to use.
  • Fast: Steel is fast on both the CPU and GPU sides. Steel uses Rust and ECS architecture, which can easily write high-performance and high-concurrency code, thereby achieving high performance on the CPU side. Steel uses Vulkan, an advanced graphics API, to achieve high performance on the GPU side.
  • Cross-platform: Rust itself is cross-platform, and Vulkan is also a cross-platform API, so code written in Rust and Vulkan can easily run on almost all platforms. Steel can currently be compiled and run on Windows and Android systems with one click, and will support more platforms in the future.
  • Easy to use: The Steel game engine has an editor from the beginning, and the editor and the core game module are developed and upgraded together, which brings great convenience to game development.

Run Steel Editor

Environment Setup

  1. Install Visual Studio 2022 with "Desktop development with C++" in Windows, keep the default check.
  2. Install Rust, Git, Python, CMake and Ninja for shaderc-rs.
  3. Install VSCode with "C/C++" and "rust-analyzer" extensions.

The Steel Editor can be run by compiling the source code, or by running it directly using the compiled executable file. Currently, it is recommended to open the Steel source code in VSCode to run the Steel Editor, because it is convenient for debugging.

Run from Source

  1. Download the code of the Steel:
git clone https://github.com/SSSxCCC/steel
  1. Use VSCode to open the root directory "steel" and press F5 to compile and run in debug mode. Or you can run it using the command:
cargo run -p steel-editor -F desktop

Run from Executable

  1. Download "steel-editor.zip" from the Releases page and unzip it.
  2. Open Windows PowerShell and execute:
cd steel-editor
.\steel-editor.exe

Tutorial

You can learn about the Steel engine through this tutorial.

Editor demo

image

image

image

image

Development Roadmap

  • Game core module
  • Visual editor
  • Vulkan render pipeline
  • 2D rendering basic
  • 2D texture
  • 3D rendering basic
  • 3D model
  • Ray traced rendering
  • 2D physics
  • 3D physics
  • Asset manager
  • Audio
  • Animation
  • Particle system
  • Network synchronization
  • AI
  • Build Windows program
  • Build Android application
  • Customize build
  • Write a tutorial
  • Tests

Contributing

Steel is still in the early stages of development, and the core API is subject to change. Any contributions are welcome.

If you find any problems, feel free to open an issue.

If you find a fix for a minor bug, or any code that can be optimized, you can directly file a pull request.

If you have a major code change idea, please open an issue first to discuss it with us.