Scythe
SCYTHE is a lightweight, C#-based game engine focused on modifiability and rapid iteration using Raylib.
Install / Use
/learn @fkerimk/ScytheREADME
Scythe
Scythe is a lightweight, C#-based game engine focused on modifiability and rapid iteration using Raylib. <br/> It combines a modern rendering pipeline, a fully integrated editor, and a runtime into a single codebase.
[!NOTE]
Scythe is a hobby project. It is developed by me alone, for personal enjoyment. Do not expect official support, and relying on it for commercial projects is entirely your own responsibility and is not recommended.
[!CAUTION]
Scythe is still in an early stage of development and is not even in an Alpha or Beta phase. Existing features may be removed or changed at any time. It is not unexpected for sample projects to be incomplete, for some existing features to be temporarily unavailable, or for default settings to change with each commit.
https://github.com/user-attachments/assets/0c301833-79d5-4ac3-ab05-dfff61f48d2b
🎯 Who is this for?
- Indie developers who want full control over engine internals.
- Developers interested in moddable, scriptable game architectures.
- Learning-oriented projects (rendering, physics, and engine tooling).
- Developers who prefer code-first workflows over black-box engines.
🛠️ License
Scythe is licensed under the MIT license.
This project uses:
-
C# bindings of Raylib and C# bindings of rlImGui, all licensed under zlib/libpng.
-
ImGui, Newtonsoft.Json, LuaLS (lua-language-server), Jitter Physics 2 (Jitter2), NLayer and AssimpNet all licensed under MIT.
-
MoonSharp licensed under the BSD 3-Clause.
🧱 Architecture Overview
- Component-based object model (not ECS).
- Shared runtime between editor and game execution.
✨ Features
Core
- Modern .NET: High-performance architecture built on the latest .NET 10 runtime.
- Hybrid Runtime/Editor: Combines a scene editor with a fast game runtime in a single environment.
- Asset Management: Centralized asset manager with hot-reloading via filesystem watching.
- Models: .fbx, .obj, .gltf
- Textures: .png, .jpg, .jpeg, .tga, .bmp
- Shaders: .vs, .fs
Graphics
- PBR Rendering: Shader-based Physically Based Rendering (PBR) support for realistic material appearance.
- Advanced Lighting & Shadows: Dynamic light sources with real-time Shadow Mapping.
- Transparent Render Queue: Proper depth-sorted rendering of transparent objects.
- Skybox: Skybox rendering with cubemaps.
- Post-Processing:
- SSAO (Screen Space Ambient Occlusion)
- FXAA, SMAA, TAA (with jitter)
- Bloom, Blur, Pixellizer, Cross Hatching, Cross Stitching, Sobel edge detection, Scanlines, Fisheye, Dream Vision, Predator, Grayscale, Posterization
Animation
- Skeletal Animation: Mesh skinning and bone animation.
- Animation Blending: Smooth transitions between animations.
Physics
- Pure C# Physics: Jitter2 integration written entirely in C#.
- Support for dynamic and static objects.
Editor
- Docking UI: ImGui-based interface with freely dockable windows.
- Advanced Script Editor:
- Lua Language Server Protocol (LSP) support.
- Code completion (IntelliSense).
- Error diagnostics.
- Tabbed multi-file editing.
- Syntax highlighting.
- Level Browser: Hierarchical object management with a layered structure.
- Object Browser: Real-time panel for editing object properties.
- Undo / Redo System: Action history tracking across editor operations.
- A built-in music player! 😎
Scripting
- Lua Integration: Fast and easy modding/scripting via MoonSharp.
- Dynamic Input: Simple management of mouse and keyboard input for both the editor and scripting layers.
❌ What this is not
- Not a full-scale AA/AAA engine.
- Not an ECS-first architecture.
- Not focused on visual scripting.
👷 Building
[!NOTE]
Make sure you have the .NET SDK 10.0+ packages installed.
git clone https://github.com/fkerimk/scythe.git
cd scythe
dotnet build
🏹 Running
dotnet run -- editor
- Opens the editor
- Press F5 to run the play mode
🙏 Attributions
Many post-processing shaders and various other shaders were taken from, or based on, Raylib Examples. Thanks, Raylib!
Fonts
Font Awesome by Dave Gandy. <br/> Montserrat by Julieta Ulanovsky, Sol Matas, Juan Pablo del Peral, Jacques Le Bailly. <br/> Cascadia Code by Aaron Bell, Mohamad Dakak, Viktoriya Grabowska, Liron Lavi Turkenich.
Samples
Wooden Alphabet Blocks by Cherryvania, licensed under CC BY 4.0. <br/> The Green Wizard Gnome N64 Style by Drillimpact, licensed under CC BY 4.0. <br/> Animated FPS Pistol by Levraicoincoin, DJMaesen, licensed under CC BY 4.0.
Early Samples
Bear Man PSX by Bonvikt, licensed under CC BY 4.0.
Related Skills
qqbot-channel
348.0kQQ 频道管理技能。查询频道列表、子频道、成员、发帖、公告、日程等操作。使用 qqbot_channel_api 工具代理 QQ 开放平台 HTTP 接口,自动处理 Token 鉴权。当用户需要查看频道、管理子频道、查询成员、发布帖子/公告/日程时使用。
docs-writer
100.2k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
348.0kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
Design
Campus Second-Hand Trading Platform \- General Design Document (v5.0 \- React Architecture \- Complete Final Version)1\. System Overall Design 1.1. Project Overview This project aims t
