Skip to content

Latest commit

 

History

144 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UtilityTemplates Logo

Gopher Wood Engine

Runneth Over Studio's in-house game engine. Written in C#.

Development generally follows Game Engine Architecture by Jason Gregory and the Vulkan Game Engine Series by Travis Vroman. However, this remains a bespoke solution. For established open-source C# game engines/frameworks, consider exploring Stride, FlatRedBall, and MonoGame.

Warning

This engine is in pre-alpha development and subject to significant change.

Why

  • Why make a game engine in C#?

The short answer is simple: if I’m going to commit to a long-term project of this scale, it has to be something I genuinely enjoy working in every day. C# is the ecosystem where I’m most productive and comfortable.

From a technical leadership perspective, C# offers excellent IDE and tooling support, a reduced day-to-day memory management burden, strong type safety, and a mature, feature-rich ecosystem. Modern .NET provides cross-platform support, competitive performance through JIT optimizations, and first-class asynchronous programming models. Just as importantly, C# not being limited to a strictly object-oriented style, supporting functional and data-oriented patterns (immutability, value types, expression-based APIs, and composition) aligns naturally with modern engine design. These traits allow me to focus more on engine architecture and gameplay systems rather than fighting the language or tooling.

  • Why make a game engine at all?

Years ago, I enjoyed learning Unity, but over time it became clear that relying on a proprietary platform means being subject to corporate licensing decisions and shifting business priorities. Often entirely outside a developer’s control. That dependency runs counter to my long-term goal of creative and technical independence.

I later explored Godot and MonoGame, both of which are excellent projects, but ultimately concluded that building my own technology stack best aligned with how I want to learn, experiment, and create. Gopher Wood Engine exists not as a replacement for existing engines, but as a personal, open-ended platform. One that prioritizes ownership, transparency, and deep understanding of the underlying systems.

Versioning

Gopher Wood Engine uses Semantic Versioning.

  • MAJOR version: Incompatible API changes
  • MINOR version: Backward-compatible functionality
  • PATCH version: Backward-compatible bug fixes

During initial development the version will be at 0.1.0. Once a usable API is released, the version will remain 0.y.z during rapid development. When the engine is ready for production use (building a real game), version 1.0.0 will be released.

Build Requirements

  • All projects target the LTS version of the .NET SDK, which also provides the dotnet command-line tool used in the build process.
  • The engine renderer requires the Vulkan SDK, which provides validation layers and command-line tools for shader compilation.
    • The 'VULKAN_SDK' environment variable is required to be set. On Windows this is typically done automatically during SDK installation. On Linux the setup-env.sh script included with the SDK download must be sourced. On most Ubuntu desktop systems, adding a line to your .profile file to source the setup-env.sh file sets up the environment variables for you for both shells and programs started from the graphical environment in a desktop session.
  • The Build project must be run at least once prior to launching other projects to ensure necessary shaders are compiled and embedded into the engine runtime.
    • The Build project uses Cake (C# Make) as the build orchestrator and can be launched from your IDE or via script.

      • On OSX/Linux run:
       ./build.sh
      • If you get a "Permission denied" error, you may need to make the script executable first:
       chmod +x build.sh
      • On Windows PowerShell run:
       ./build.ps1

About

Runneth Over Studio's in-house game engine.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages