A Minimalist Modular Game Engine written in Odin, heavily inspired in the deceived Our Machinery engine. This specific version is dedicated to create a Minecraft-esque game for mods to build on.
optionally you can use the quick setup script to download the Odin compiler using curl
./build.bat ./build.sh./slate.bin on Linux or ./slate.exe on Windows
The slate executable will search for a config.txt file and a mods/ directory wherever it's executed
The Slate game engine is subdivided into Modules, which are each loaded by the Core. The Core is the main executable, and provides basic functionality to build on:
- Multithreaded task system
- Module management
- Module code injection (TBD)
- Module hot reload (TBD)
- Config system
- Logging
Creating a new module is made as simple as possible, to create one yourself follow these steps:
- Create an Odin file with the following code:
package mymod
MODULE :: #config(MOD, "MyModule")
import "slate"
@export
load :: proc(core: ^slate.core_interface) -> slate.version{
core.log(.INFO, "Hello Module!")
return {1, 0, 0}
}- Copy the
slate.odinfile into the same directory as the file you just created - Compile the file with
odin build myfile.odin -file -build-mode:shared - Move the resulting file inside the
modsdirectory, inside another directory with the same name as your binary (e.g.mods/mymod/mymod.dll) - Execute Slate