Grindstone

Grindstone is a game engine designed to be as flexible as possible while supporting ease of use of both programmers and artists, having high visual quality, and being performant across all supported systems.

View Source Code

Grindstone is for you.

Grindstone is made to be whatever you want it to be. It's free, and open-source. It's built from the ground-up with plugins in mind, so you can make the application you have, but bring in the functionality you need easily. We're planning on building our games on top of it, generalizing our tools and systems to be used by all as we build them.

Features

Renderer
Editing Tools
Architecture

Renderer

Material System

We have a rich collection of shaders you can use to use in your game without having to make your own, but, as every game is unique, there's a good chance you'll need to make your own. Write one shader, and deploy it to every platform using our shader pipeline. It will also easily allow you to add as many materials you want based on the parameters and textures you expose within your shaders in a simple editor.

Physically-Based Rendering

Physically-Based Rendering is a collection of lighting models that push your art workflow the extra mile. Get your model looking good in any lighting conditions.

Our default renderer uses specular mapping, albedo, normal, and roughness channels, and the renderer is easily modifiable to add additional parameters.

Image-Based Lighting

On top of our accurate lighting, we need accurate reflections. So we use image based lighting to capture your scene and make accurate-looking specular reflections and ambient lighting.

When lighting is baked, we capture the scene from many light probes throughout the scene to provide realistic reflections at a low performance cost.

Post-Process Pipeline

Our post-process pipeline lets you add life to your image, changing the image from right after lighting all the way to presenting it to the player. Every step is also completely flexible, and you can add your own steps.

This includes HDR bloom, tonemapping, automatic exposure, screen-space ambient occlusion, and color grading.

Editing Tools

Scene Editor

With our scene editor, you can efficiently and quickly prototype levels, setting up art, adding scripts to gameobjects, and every other edit you'll need to make to a scene, all within one convenient interface.

What You See Is What You Get

Our tools use the engine and plugins so that your development team always get to see exactly what the end product will look like. It's fully extensible, too, so if you need any visuals we haven't prepared for you, you can integrate that in as well.

Asset Browser

A full file browser will allow you to view all your assets from inside the editor, as well as drag any assets you need from the source folder into the scene directly, or into a component.

You also won't need to manually import anything: we automatically detect all your changes to your assets, and re-import them when we detect a change, directly updating all instances in your scene.

Asset Importers

A full asset pipeline will take all your assets and convert them to more compressed files that are easier to load, takes lower storage space, and improve runtime performance.

We also have importers for most commonly used asset types for audio, models, images, and more, so no matter what your favorite tool workflows, you can use Grindstone with ease.

Architecture

Cross-Platform

Grindstone works on Microsoft Windows and Linux, with more platforms planned for support. We also abstract all of our core APIs such as our graphics APIs, audio APIs, and physics engines. This means you can configure the engine to work exactly as you want it to.

Plugins

Almost all of the Grindstone Engine is built into plugins that can be toggled on and off. This allows Grindstone to be as lightweight as you want it to be, both on storage space and performance, while having a large variety of features to import.

Scripting

Grindstone is built to be developed your way. Although it defaults to using a C# scripting engine, you can integrate whatever language you see fit. You can also use the C++ core as your platform of choice.

Packed efficiently

When you build your game, scripts are compiled, and assets are packed into several asset archives. These provide quick loading in your runtime, and uses only the files necessary to your game.