Installation
Talesmith runs on Windows, Linux and macOS and is built from source. This page covers what you need installed, building the solution, the ways to start the editor, opening the samples and running a game without the editor.
Requirements
| Requirement | Notes |
|---|---|
| .NET 10 SDK | Builds the editor, compiles your scripts and publishes exported games. |
| Git | To clone the repository. |
| A Vulkan driver | Optional. Without a Vulkan device, games render with Skia instead and look the same. |
| An audio device | Optional. Sound plays through OpenAL Soft, which ships with Talesmith. Without a device, games run silently. |
Check the SDK from a terminal:
dotnet --version
The version must start with 10..
Build from source
-
Clone the repository and change into it:
git clone https://github.com/CodeByDylan/Talesmith.gitcd Talesmith -
Build the solution:
dotnet build Talesmith.slnxThe first build restores NuGet packages and takes a few minutes. Later builds only compile what changed.
Building the solution also builds the sample games' plugins into their assets/plugins folders and Lantern Grove's scripts into assets/scripts/bin, so the samples run straight away.
Start the editor
dotnet run --project src/Talesmith.App
The editor opens on the project hub, where you open a recent project or create a new one. The editor's executable is called talesmith, so the examples below write it that way; from a source checkout, put dotnet run --project src/Talesmith.App -- in front of the arguments instead.
Open a project directly
Pass a project to skip the hub. Any of these work:
talesmith path/to/MyGame # the project folder
talesmith path/to/MyGame/assets # its assets folder
talesmith path/to/MyGame/assets/config/game.json # its game settings
A folder without assets/config/game.json is not a project: the editor opens the hub and shows Not a Talesmith project.
Create a project from the command line
talesmith --new platformer ~/Games "Coin Run"
--new takes a template, the folder to create the project in, and the project's name. It creates the project and opens it. The templates are:
| Template | Id |
|---|---|
| Empty | empty |
| Top-down hex adventure | hex-adventure |
| Side-scrolling platformer | platformer |
An unknown template opens the hub with a message that lists the valid ids.
Open a sample
The repository has three sample games in samples/. Open one in the editor and press CtrlP to play it:
dotnet run --project src/Talesmith.App -- samples/LanternGrove
| Sample | What it shows | Controls |
|---|---|---|
Lantern Grove (samples/LanternGrove) | A night platformer made only of a map, a scene, a prefab, particle presets, sounds and C# scripts, without a plugin. Collect the paper lanterns and light the shrine. | Arrows or A and D run, Space jumps, Shift dashes, R starts over |
Isle Hopper (samples/IsleHopper) | A platformer on a rectangular map with a second map scrolling behind it as a parallax backdrop, written as a plugin. | Arrows or A and D run, Space jumps, R restarts, Escape opens the pause menu |
Hex Quest (samples/HexQuest) | A hex adventure written as two plugins, one for gameplay and one for cutscenes and dialogue. | WASD or a click on a hex walks, the wheel zooms, Escape opens the pause menu |
Lantern Grove is the closest to how you make a game in the editor: open its scene and scripts to see how the pieces connect. When you run the editor from a source checkout, the hub also lists the samples on its Projects page.
Run a game without the editor
The player runs any game folder, whether a project or an exported game:
dotnet run --project src/Talesmith.Player -- samples/IsleHopper
The player runs scripts from their compiled assembly, assets/scripts/bin/Game.Scripts.dll. Exported games contain it, and so does Lantern Grove after a build of the solution. To run your own project with scripts in the player, export it first, or play it in the editor, which compiles scripts itself.
Useful player options:
| Option | Effect |
|---|---|
--renderer auto, vulkan or skia | Overrides the renderer from config/game.json. |
--mute | Starts without sound. |
--captures <folder> | Where F9 reports and F12 screenshots go. The default is ./captures. |
--no-dev-tools | Turns off the F3, F4, F9 and F12 developer keys. |
--log-level <level> | trace, debug, information (the default), warning, error or critical. |
--benchmark | Runs the game without a window for a number of frames and prints a performance report. See Performance. |
--help | Lists every option. |
Troubleshooting
No Vulkan device. Nothing to do: the editor and games fall back to Skia, and the log says why. To force a renderer, set renderer in Project Settings › Game or pass --renderer skia to the player.
No sound. Talesmith plays through OpenAL Soft. When no audio device is available, the game keeps running without sound. Check that your system has an output device and that it is not muted.
Choppy frames on Linux. Run the player with --log-level debug to see how fast the window's compositor runs. When it runs faster than the display, try --opengl-compositor.
Where captures go. F9 profiler reports and F12 screenshots taken in the editor's Game panel go to .talesmith/captures in the project folder. The player saves them to a captures folder in the current directory, and exported games to the user's local data folder, under the game's title.