Skip to content

Getting Started

Shmellyorc edited this page Aug 27, 2026 · 1 revision

Getting Started

This guide will walk you through getting Void running on your machine. By the end, you'll have a working game window.

Prerequisites

  • .NET 10 SDK

That's it. Void handles everything else.

Before You Start

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.

Content Folder

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".

Clone the Repository (Optional)

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.

Your First Program

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.

What's Next?

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.


Back to Home

Clone this wiki locally