-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
This guide will walk you through getting Void running on your machine. By the end, you'll have a working game window.
- .NET 10 SDK
That's it. Void handles everything else.
SetAppCompany and SetAppName are required
Void uses these to create the folder structure for your game. Your saves, logs, and configuration files live in:
- Windows:
%APPDATA%/Company/Game/ - macOS:
~/Library/Application Support/Company/Game/ - Linux:
~/.config/Company/Game/
If you're not using application data, Void will create a folder inside your bin folder (root directory) to keep your game's data organized.
Void requires a Content folder in your project root. This is where your assets live: images, sounds, fonts, levels, and shaders. The engine enforces this to keep your project clean and organized.
If the folder doesn't exist, Void will throw an error. Create it manually:
mkdir Content
If you prefer a different folder name, use SetContentRoot:
.SetContentRoot("MyAssets")
Important: Always use a folder name, not a path. The content root should be relative to your application's root directory. Do not use absolute paths or traversal like "../MyAssets".
Only needed if you want to explore the examples or build Void locally:
git clone https://github.com/shmellyorc/Void.git
cd Void
Otherwise, just reference Void.Engine in your own project.
Create a new console project. Add a reference to Void.Engine, then create a game class:
using Void.Engine;
public class MyGame : Game
{
public MyGame(GameSettings settings) : base(settings) { }
protected override void OnEnter()
{
// Called when the game starts
}
protected override void OnUpdate(FrameTime frameTime)
{
// Called every frame
}
protected override void OnDraw(FrameTime frameTime)
{
// Called every frame after OnUpdate
}
protected override void OnExit()
{
// Called when the game exits
}
}
In your Program.cs:
using Void.Engine;
var settings = GameSettings.Instance
.SetAppCompany("MyStudio")
.SetAppName("MyFirstGame")
.SetWindow(1280, 720)
.Build();
using var game = new MyGame(settings);
game.Run();
Run the project. A window will appear. That's it.
Explore the Examples folder:
- MiniPac: A primitive example to understand the basics
- FlappyBirb: A full game using asset packing
- Scavengers: A complete roguelite survival game that uses almost every feature of Void
Browse the Wiki for deeper dives into each system.