Getting Started

Setting Up Your Solution

Open Visual Studio and create a new blank solution anywhere you’d like. Once created, you’ll add references to the Chisel projects from your download folder.

1
Create a blank solution

In Visual Studio, go to File → New → Project, search for Blank Solution, and save it wherever you’d like.

2
Add the Engine project

Right-click the solution and choose Add → Existing Project. Navigate to your Chisel download and select:

Chisel/Engine/Engine.csproj
3
Add the FPS Template project

Repeat and add:

Chisel/FPSTemplate/FPSTemplate.csproj
4
Set the compile flag

Right-click your game project and open Properties → Debug. In the Command line arguments field, enter:

-compile

This tells the engine to compile all entity data on launch. You don’t need this flag for final builds, but it’s good practice to always have it set in Visual Studio during development.

5
Run the template

Set FPSTemplate as the startup project, then hit Run.

Starting Your Own Game

The FPS template is your starting point for any new project. Rather than starting from scratch, you copy and rename it. Even though it’s an FPS template, it’s written in a way that you could adapt it to just about any type of project.

1
Copy the FPSTemplate folder

Duplicate Chisel/FPSTemplate and rename the copy to your project name, e.g. Chisel/MyGame.

2
Rename the .csproj file

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

3
Add it to your solution

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

4
Set the compile flag

Open Properties → Debug for your new project and add -compile to the command line arguments.

5
Set your game name

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

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

Find and replace FPSTemplate with your project name throughout the codebase if you want the namespace to match. This is entirely optional.

The -compile Flag

The -compile flag tells the engine to scan all loaded assemblies for entity classes marked with [EntityDescriptor] and write out a definition file (Data/def.eds) that the map editor and compiler read. Without it, the editor won’t know about any of your entities.

You only need to run with -compile when you add, rename, or change the properties or inputs/outputs of an entity class. In practice it’s simplest to just always have it set in your Visual Studio debug profile.

The compiled definition file is what you point Rockwall 2 at during editor setup. See Editor Setup for that step.

Note

You do not need -compile in release builds shipped to players. It is a development-only flag.

The Working Folder

The FPS template uses a Working/ folder as its content root during development. This is where maps, materials, models, particles, and audio live while you’re iterating. The build system copies contents from this folder into Content/ as part of the build process, but it will only copy files it needs (so you can safely store things like blend files and whatnot in here).

When you look at file paths in code you’ll see Content/ prefixed paths. These map to the same files you edit in Working/. Keep that in mind when the engine logs a missing file: the path it prints is the runtime path, not the source path.