Getting Started

What’s in the SDK

The Chisel SDK is a single folder that contains everything you need to get started. The layout is:

Engine/

The engine source code project. You’ll reference this but rarely need to edit it directly.

FPSTemplate/

The starting template for any new game. Copy and rename this to begin a new project.

MapToolSrc/

The source code for all the editor tools, if you ever need to build or modify them yourself.

Tools/Rockwall2/

The prebuilt Rockwall 2 executable. Rockwall 2 is the single editor application that houses the map editor, model editor, particle editor, and material editor all under one roof.

Tools/Gum/

Gum is the UI editor/system for Chisel. The Gum application will allow you to edit your UI layout with an interactive editor.

games.sln

A Visual Studio solution with the Engine and FPSTemplate projects already added. Open this to get started immediately.

Running the FPS Template

You don’t need to create a new solution or add any projects, everything is already set up.

1
Open the solution

Double-click games.sln in the root of the SDK. Visual Studio will open with the Engine and FPSTemplate projects already present.

2
Set the compile flag

Right-click FPSTemplate in Solution Explorer and open Properties → Debug, and go to the launch options menu. In the Command line arguments field, enter:

-compile

This tells the engine to scan for entity classes and write a definition file that the map editor reads. You only need this during development, and the outputted binary on its own will run without this flag.

3
Set the startup project

Right-click FPSTemplate and choose Set as Startup Project.

4
Set mode to Release

Up at the top, change the dropdown from Debug to Release.

4
Run

Run the project, the template will launch and you’ll be in the main menu!

Starting Your Own Game

The FPS template is your starting point. Rather than building from scratch, you copy and rename it. Despite the name, the template can serve as a base for just about any kind of 3D game.

1
Duplicate FPSTemplate/

Copy the FPSTemplate folder and rename the copy to your project name, e.g. MyGame.

2
Rename the .csproj file

Inside the new folder, rename FPSTemplate.csproj to match, e.g. MyGame.csproj.

3
Add it to the solution

Right-click the solution in Solution Explorer and choose Add → Existing Project, then select your new MyGame.csproj.

4
Set the compile flag

Edit the debug properties for the new project and add -compile to the command line arguments, same as before.

5
Set your game name

In GameEngine.cs, set GameSettings.GameName to something unique. This controls where save files and settings are stored on disk.

GameSettings.GameName = “MyGame”;
6
Rename namespaces (optional)

Find and replace FPSTemplate throughout the codebase if you want the namespace to match your project name. This is purely cosmetic. (I’m pretty sure you can use the normalize namespaces thing to do this automatically)

The -compile Flag

When the engine starts with -compile, it scans all loaded assemblies for entity classes marked with [EntityDescriptor] and writes a definition file to Data/def.eds. This file is what you point Rockwall 2 at during editor setup, and what the map compiler reads to understand your entity types.

You need to run with -compile after adding a new entity class, renaming one, or changing its exposed properties, inputs, or outputs. In practice it’s easiest to just leave it in your debug launch profile permanently and never think about it.

The Working Folder

The FPS template uses a Working/ folder as its content root during development. Maps, materials, models, particles, and audio all live here while you’re iterating. The build process copies what the engine needs from Working/ into Content/, which is the folder the engine reads at runtime. You can safely keep source files like .blend files alongside your assets in Working/, and they wont be incorrectly copied over.

When the engine logs a missing file path, it will show the runtime Content/ path. Keep in mind the source file lives in Working/.

Note

In rare cases, the nopipeline config may have a hiccup and fail to copy new files over. If this ever happens, you can delete the Content/bin and Content/obj folders, this typically resolves the issue.

Rockwall 2

All content creation tools are bundled into a single application: Rockwall 2, at Tool/Rockwall2/Rockwall2.exe. It has three tabs across the top of the main window: Map Editor, Model Editor, and Particle Editor so you can move between editing a level and adjusting a model without switching programs.

See Editor Setup for how to configure Rockwall 2 for your project. The first time you run it you’ll need to create a project config before the editors are usable.