Skip to main content

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​

RequirementNotes
.NET 10 SDKBuilds the editor, compiles your scripts and publishes exported games.
GitTo clone the repository.
A Vulkan driverOptional. Without a Vulkan device, games render with Skia instead and look the same.
An audio deviceOptional. 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​

  1. Clone the repository and change into it:

    git clone https://github.com/CodeByDylan/Talesmith.git
    cd Talesmith
  2. Build the solution:

    dotnet build Talesmith.slnx

    The 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:

TemplateId
Emptyempty
Top-down hex adventurehex-adventure
Side-scrolling platformerplatformer

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
SampleWhat it showsControls
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:

OptionEffect
--renderer auto, vulkan or skiaOverrides the renderer from config/game.json.
--muteStarts without sound.
--captures <folder>Where F9 reports and F12 screenshots go. The default is ./captures.
--no-dev-toolsTurns off the F3, F4, F9 and F12 developer keys.
--log-level <level>trace, debug, information (the default), warning, error or critical.
--benchmarkRuns the game without a window for a number of frames and prints a performance report. See Performance.
--helpLists 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.

Next steps​