Harmonist: Dayoriah Clan Infiltration is a stealth roguelike game.
  • Go 96.8%
  • Tcl 0.9%
  • Roff 0.8%
  • HTML 0.8%
  • Perl 0.6%
  • Other 0.1%
Find a file
Yon 31ee02f007 update Version and CHANGES for patch release
Also update io.go to remove old incompatible save/config.
2026-02-10 08:05:22 +00:00
play-wasm update loading screen 2026-02-03 11:17:29 +00:00
scripts use bold for walls in terminal version, too 2026-01-27 07:51:09 +00:00
tiles use bold for walls in terminal version, too 2026-01-27 07:51:09 +00:00
.gitignore update instructions for using wasm 2025-04-14 16:43:21 +00:00
actions.go items help: clarify magara evocation 2026-02-01 10:26:52 +00:00
animation.go fix color of wave animation 2026-02-03 08:30:58 +00:00
autoexplore.go add comments 2026-01-24 15:23:16 +00:00
CHANGES.md update Version and CHANGES for patch release 2026-02-10 08:05:22 +00:00
colors.go use bold for walls in terminal version, too 2026-01-27 07:51:09 +00:00
combat.go fix small recent regression with wall-jumping 2026-02-03 18:00:19 +00:00
credits.txt add mention of narrative inspiration 2019-05-10 10:39:23 +00:00
draw.go fix incorrect color for a tile in loading screen 2026-02-03 18:02:11 +00:00
dump.go minor improvements in end-of-game short summary screen 2026-02-09 17:47:06 +00:00
encoding.go improve story sequence handling & various comments and cleanups 2026-01-20 11:45:52 +00:00
events.go new magic stone enthousiast achievement & tweaks 2026-02-02 12:12:11 +00:00
fov.go fix max cost of light 2026-01-29 16:38:21 +00:00
game.go update Version and CHANGES for patch release 2026-02-10 08:05:22 +00:00
game_test.go mapgen testing 2026-01-23 14:54:15 +00:00
go.mod update gruid-js with proper mouse wheel support 2026-02-09 16:53:59 +00:00
go.sum update gruid-js with proper mouse wheel support 2026-02-09 16:53:59 +00:00
harmonist.6 missing .Pp in man page 2026-01-25 10:51:00 +00:00
images.go use bold for walls in terminal version, too 2026-01-27 07:51:09 +00:00
io.go update Version and CHANGES for patch release 2026-02-10 08:05:22 +00:00
js.go cleanups & small updates in js.go 2026-01-19 16:03:50 +00:00
LICENSE update year 2019-05-08 13:43:56 +00:00
log.go various noise msg improvements & some animation tweaks 2026-01-29 16:22:40 +00:00
lore.go various lore text improvements by kaoseto 2026-02-03 08:26:35 +00:00
magaras.go remove a few obsolete comments 2026-02-03 08:34:31 +00:00
main.go update to latest gruid-sdl (like we did for Shamogu) 2026-01-02 16:48:38 +00:00
map.go make noise markers last for 2-3 turns 2026-01-30 11:21:57 +00:00
mapgen.go small tweak in number of barrels in open maps 2026-01-30 11:41:48 +00:00
mapgen_test.go mapgen testing 2026-01-23 14:54:15 +00:00
model.go add portal escape animation 2026-02-02 08:22:52 +00:00
mongen.go better handle some swapping edge-cases 2026-01-27 10:42:38 +00:00
monster.go spelling in nadre description 2026-01-30 13:17:27 +00:00
neighbors.go cleanups and improvements in neighbors.go 2026-01-22 11:49:48 +00:00
objects.go fix color of wave animation 2026-02-03 08:30:58 +00:00
path.go jumping improvements in edge-cases 2026-01-29 13:37:11 +00:00
player.go new magic stone enthousiast achievement & tweaks 2026-02-02 12:12:11 +00:00
pos.go more cleanups & comments 2026-01-21 14:57:28 +00:00
README.md README.md: simplify intro (same as in website) 2026-02-05 11:35:43 +00:00
sdl.go update to latest gruid-sdl (like we did for Shamogu) 2026-01-02 16:48:38 +00:00
stats.go remove a few obsolete comments 2026-02-03 08:34:31 +00:00
status.go add portal escape animation 2026-02-02 08:22:52 +00:00
target.go make noise markers last for 2-3 turns 2026-01-30 11:21:57 +00:00
tcell.go update to latest gruid-sdl (like we did for Shamogu) 2026-01-02 16:48:38 +00:00
terrain.go use cyan color for magaras and items 2026-01-28 10:38:23 +00:00
tiles.go update fog letter to better match the tile 2026-01-25 11:33:23 +00:00
utils.go update comment 2026-02-01 08:36:54 +00:00
vaults.go some minor improvements in vaults 2026-01-22 08:42:47 +00:00

Harmonist: Dayoriah Clan Infiltration

Harmonist is a light-hearted stealth coffee-break roguelike game with light and noise mechanisms, making use of various terrain types and cones of view for monsters.

Your friend Shaedra got captured by nasty people from the Dayoriah Clan while she was trying to retrieve a powerful magara artifact that was stolen from the great magara-specialist Marevor Helith.

As a gawalt monkey, you don't understand much why people complicate so much their lives caring about artifacts and the like, but one thing is clear: you have to rescue your friend, somewhere to be found in this Underground area controlled by the Dayoriah Clan. If what you heard the guards say is true, Shaedra's imprisoned on the eighth floor.

You are small and have good night vision, so you hope the infiltration will go smoothly...

Website

Harmonist introduction screen

You can visit the project's development website for more information and tips about the game. The game can be played on the browser on itch.io, too.

Install from Sources

First, you need to install the go compiler (Go 1.24 or later), so that the go command is available.

Harmonist uses the gruid library for grid-based user interfaces, which offers three different rendering drivers: terminal, graphical SDL2, and browser. You don't need to install it manually.

Terminal (ASCII)

You can build a native ASCII version from source by using the following command:

go build

You should now have a working harmonist executable in the current directory. Use the -help option for command-line usage.

This version uses the tcell terminal library. If your terminal supports true color, the -t option will provide the same selenized color palette as the tiles build. Otherwise, configuring your terminal to use the same colors is recommended, but other color schemes may look nice too. As a last resort, option -x may produce good enough colors as well.

SDL2 (Tiles or ASCII)

You can build a graphical version depending on SDL2 by using the following command:

go build -tags sdl

This will install the gruid-sdl Go bindings for SDL2. You need to install SDL2 first (notice you need SDL2, not SDL3).

You should now have a working harmonist executable in the current directory. Use the -help option for command-line usage. For example, -F launches the game in fullscreen.

Browser (Tiles or ASCII)

You can also build a WebAssembly version with:

GOOS=js GOARCH=wasm go build -o play-wasm/harmonist.wasm

You can then play by serving the play-wasm directory containing the wasm file via http. The directory should also contain the wasm_exec.js file from your Go distribution, as explained in Go Wiki: WebAssembly.

Documentation

See the man page harmonist(6) for more information on command line options and use of the replay file. For example:

harmonist -r _

launches an auto-replay of your last game.