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.
Double-click games.sln in the root of the SDK. Visual Studio will open with the Engine and FPSTemplate projects already present.
Right-click FPSTemplate in Solution Explorer and open Properties → Debug, and go to the launch options menu. In the Command line arguments field, enter:
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.
Right-click FPSTemplate and choose Set as Startup Project.
Up at the top, change the dropdown from Debug to Release.
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.
Copy the FPSTemplate folder and rename the copy to your project name, e.g. MyGame.
Inside the new folder, rename FPSTemplate.csproj to match, e.g. MyGame.csproj.
Right-click the solution in Solution Explorer and choose Add → Existing Project, then select your new MyGame.csproj.
Edit the debug properties for the new project and add -compile to the command line arguments, same as before.
In GameEngine.cs, set GameSettings.GameName to something unique. This controls where save files and settings are stored on disk.
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/.
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.