Index

1 Miscellaneous
1.1 Dependencies
1.2 UI
2 Preferences
2.1 Settings
2.2 Configurations
2.3 Setups
3 Networking
3.1 Client
3.2 Server
4 Game
4.1 Setup
4.2 Match

1 Miscellaneous

1.1 Dependencies

This list refers to the provided binaries, not strictly the source code.

Android

Emscripten

Linux

macOS

Windows

1.2 UI

Widgets that can be interacted with or have tooltips are highlighted when the user hovers the mouse cursor over them. The "Escape" and "Back" keys always perform a given menu's "exit" action. "Return" and "Enter" perform a popup's or selection's "confirm" action.

Checkbox

Can be toggled with either the left or the right mouse button.

Scroll area

Can be scrolled with either a scroll bar on the right, the mouse wheel or by left click holding and dragging inside the area.

Slider

Most sliders' changes will be fully applied only once the dragging is done.

2 Preferences

All preferences are stored in INI files.
If the game was built for Android or with the "EXTERNAL" define, it'll default to saving preferences outside of the game's directory.
These external locations are:

Android /storage/sdcard0/Android/data/org.duravia.thrones/files
Linux ~/.config/thrones
macOS ~/Library/Preferences/Thrones
Windows %AppData%/Thrones

If the game was built without the "EXTERNAL" define, it'll default to saving preferences in the game's assets directory:

Linux/Windows Thrones/data
macOS Thrones.app/Contents/Resources
Web Indexed DB /data

Either behavior can be explicitly set by running the game with the "-e 0|1" option:

0 don't save externally
1 save externally

2.1 Settings

Game client settings are stored in "setting.ini" and can be edited in the "Settings" menu.

Address

The server's address to connect to when clicking "Connect".

Port

The server's port to connect to when clicking "Connect".

Display

The index of what display to place the window on. Choosing a non-primary display can break the rendering on some systems.

Screen

window regular decorated window
borderless borderless window
fullscreen fullscreen with custom mode
desktop fullscreen with the standard screen mode

Size

Window size when "Screen" is set to "window" or "borderless".

Mode

The screen mode to use when "Screen" is set to "fullscreen".

Multisamples

Set to "0" to turn off. Doesn't work with OpenGL ES.

Shadow resolution

The width/height of the light's shadow cubemap texture. Shadows are disabled if set to 0 or under OpenGL ES.

Soft shadows

Blur the edges of shadows.

Texture scale

Scale of texture sizes.

VSync

immediate off
synchronized regular on
adaptive adaptive on (works on fewer systems)

Gamma

Aka. brightness. Doesn't work on some systems.

Volume

Volume of sound effects. Disabled by default because the sound effects are terrible and annoying.

Color ally

Color of own pieces.

Color enemy

Color of the opponent's pieces.

Scale tiles

When enabled, the amounts of home and middle tiles will be adjusted accordingly when changing the homeland size. "New_amount_of_each_tile = old_amount * new_area / old_area", the area values referring to either the homeland area for homeland tiles or the width of the board for middle row tiles.

Scale pieces

When enabled, the amounts of a player's pieces will be adjusted accordingly when changing the homeland size. "New_amount_of_each_piece = old_amount * new_area / old_area" floored, the area values referring to the homeland area.

Show tooltips

Display widgets' tooltips when hovering over them with the cursor.

Chat line limit

Maximum number of line breaks in a chat widget.

Deadzone

Deadzone of all controllers' axes.

Resolve family

any Use any family for resolving host addresses.
IPv4 Use only IPv4 for resolving host addresses.
IPv6 Use only IPv6 for resolving host addresses.

Regular font

The standard font is Romanesque and the alternative is Merriweather, which supports a larger character set.

Key bindings

A table of all key bindings. The first column lists keyboard bindings, the second lists joystick bindings and the third lists gamepad bindings. A binding can be edited by left clicking the field or deleted by right clicking it. The plus buttons on the right can be used to add new key bindings.

Up Move the selection/cursor up. When editing text, jump to the start.
Down Move the selection/cursor down. When editing text, it can be used in combination with Alt to jump to the next word end or with Ctrl to jump to the end.
Left Move the selection/cursor left. When editing text, jump to the end.
Right Move the selection/cursor right. When editing text, it can be used in combination with Alt to jump to the previous word start or with Ctrl to jump to the start.
Text backspace Delete the left character when editing text. It can be used in combination with Alt to delete to the left word start or with Ctrl to delete everything to the left.
Text delete Delete the right character when editing text. It can be used in combination with Alt to delete to the right word end or with Ctrl to delete everything to the right.
Text home Move the cursor to the start when editing text.
Text end Move the cursor to the end when editing text.
Text paste Paste text from the clipboard when editing text. Must be used in combination with Ctrl when using a keyboard.
Text copy Copy all to clipboard when editing text. Must be used in combination with Ctrl when using a keyboard.
Text cut Cut all to clipboard when editing text. Must be used in combination with Ctrl when using a keyboard.
Text revert Revert to the original when editing text. Must be used in combination with Ctrl when using a keyboard.
Confirm Perform the current confirm action.
Cancel Perform the current abort action.
Finish Use the finish button.
Hasten Toggle the hasten icon.
Assault Toggle the assault icon.
Conspire Toggle the conspire icon.
Deceive Toggle the deceive icon.
Move camera Toggle moving the camera with the mouse.
Reset camera Reset the camera position.
Engage Toggle the engage button.
Delete Delete a tile or piece.
Destroy hold Turn the destroy button on or off.
Destroy toggle Toggle the destroy button.
Surrender Use the surrender button.
Chat Toggle the chat overlay.
Frame counter Cycle through the frame counter overlay's modes. Those being frames per second, tick duration in ms and off.
Select next Select the next icon.
Select prev Select the previous icon.
Select 0 Select the first icon.
Select 1 Select the second icon.
Select 2 Select the third icon.
Select 3 Select the fourth icon.
Select 4 Select the fifth icon.
Select 5 Select the sixth icon.
Select 6 Select the seventh icon.
Select 7 Select the eighth icon.
Select 8 Select the ninth icon.
Select 9 Select the tenth icon.
Camera up Move the camera up.
Camera down Move the camera down.
Camera left Move the camera left.
Camera right Move the camera right.
Scroll up Scroll the current menu's main list up.
Scroll down Scroll the current menu's main list down.

2.2 Configurations

Game configurations are stored in "game.ini" and can be edited in the "Host" menu or when hosting a room on a server.

Victory Points

Use the victory points game variant. The input field determines how many points each player needs to collect to win. If the checkbox is set, middle row fortresses will be placed in the center. If it isn't checked, middle row fortresses will be placed in the remaining free spaces.

Ports

Use the ports game variant.

Row balancing

Use the row balancing game variant.

Homefront

Use the homefront game variant.

Set piece battle

Use the set piece Battle game variant. The input field determines how many pieces each player can use.

Homeland size

width Is equal to the number of tile columns of the board. The minimum is 5 and the maximum is 101.
height Is the number of tile rows of each player's homeland, which is "board_height / 2 - 1". The minimum is 2 because a fortress can't be placed in the bottom row and the maximum is 50, amounting to a maximum board height of 101.

Battle win chance

Probability of winning a battle.

Fate's favor maximum

Can be set to a value in the range of 0 to 16383. Its effect is described by "Fate's favor total".

Fate's favor total

If enabled, "Favor maximum" will be the limit of how many times each player can use each type of fate's favor in one match. If disabled, "Favor maximum" will be the limit of how many of each type of fate's favor each player can stock up.

First turn engage

Controls whether players can attack or fire during their first turn.

Terrain rules

Controls whether to use terrain related rules. This setting doesn't affect the breaching of tiles or rules inherent to the pieces' movement range.

Dragon place late

If enabled, dragons don't have to be placed during setup and can be placed later on homeland fortresses during the match.

Dragon move straight

If enabled, a dragon can only move in a straight line. Otherwise one move's steps will be treated separately and the dragon will use the shortest path to a destination.

Capturers

A list of pieces which will be able to capture a fortress. If the list is empty, it'll be filled with all piece types.

Homeland tiles

A list of the amounts of each player's homeland tiles. The minimum amount for each tile type other than a fortress is the homeland height and the maximum of each is the number of remaining free tiles. Sliders' ranges are set accordingly. The amount of fortresses is set to the amount of the remaining free tiles on a homeland. The number of fortresses is limited to "homeland_height * 2 + board_width - 2" and when exceeded, other tile amounts will be increased with the priority being the order of the listed tile types.

Fortresses captured

The number of enemy fortresses that need to be captured in order to win. This value is limited to the number of homeland fortresses.

Middle tiles

A list of the amounts of middle row tiles per player. The total amount is limited to the range of 0 to "board_width / 2" floored. The amount of fortresses is set to the amount of the remaining free tiles, that is "board_width - total_amount_of_tiles_per_player * 2". The sliders work like the homeland tile amount sliders.

Pieces

A list of the amounts of each piece type per player. The total amount of pieces is limited to the range of 1 to the homeland tile count. If there's 0 pieces, the amount of thrones will be set to 1. The sliders work like the tile amount sliders.

Thrones killed

The number of enemy thrones that need to be killed in order to win. This number is limited to the number of a player's thrones. If both winning conditions are set to 0, this one will be set to 1. If the amount of thrones is set to 0, it'll be incremented and if the piece limit has been reached, one other piece amount will be decremented in turn, the priority being the reverse order of the listed piece types.

2.3 Setups

Game setups are stored in "setup.ini" and can be edited, saved and loaded in the "Host -> Setup" menu or during the in-game setup phase. The offline editor works the same as setting up a game online, except any checks for proper tile and piece placement will be ignored.
When loading a setup, it only overwrites the current tiles/pieces of each stage when the loaded setup's corresponding stages' tile/piece data is present.
The same setup can be loaded for different configurations, but some tiles and pieces may not get placed due to exceeding limits.

3 Networking

3.1 Client

A game client can be used as a server by going into the "Host" menu, optionally setting an appropriate port and the configuration that'll be used for the game rules, and clicking "Open". Once another client successfully connects to the server, a game will start immediately.
A client can set an address and port of a server and connect by clicking the "Connect" button in the main menu. When connecting to a regular server program, a list of open rooms will be displayed. A room can be joined by left clicking its name or a new one can be created by clicking "Host". Only a room's host can edit the configuration and start the game.

3.2 Server

The server program can be used to host multiple players. The maximum number of rooms is the limit of players halved and rounded up.
If the program has been compiled without the "SERVICE" define, the following keys can be used when running it in the foreground:

P list players
R list rooms
Q quit program

Command line arguments:

-p <port> port to use (default is 39741)
-4 resolve host only with IPv4 family (default is unspec)
-6 resolve host only with IPv6 family (default is unspec)
-c <number> maximum number of connected players (default is 1024)
-v write output to console
-l <directory> write output to log files in the specified directory
-m <number> set the maximum number of kept log files (default is 8)

4 Game

Every game starts with the setup stage where players place their tiles and pieces. Once both players confirm their setups, the actual match starts.

4.1 Setup

The setup stage is a sequence of three phases of placing homeland tiles, middle row tiles and pieces.
Tiles/pieces can be placed by selecting an icon in the bottom panel and left click holding on a free tile and optionally dragging the cursor across other occupied tiles to replace them. A type can be selected by pressing the icon, using the mouse wheel or pressing a number key.
It's possible to drag a tile/piece with the left mouse button and place it somewhere else or switch places with another. Tiles/pieces can be removed by using the "Delete" button or right click holding on them and optionally dragging the cursor across other ones.
Fortress tiles will be placed automatically, where no tiles were placed.
After the setup the middle row tiles will be rearranged if necessary and the match starts.

Buttons

Exit Exit the game.
Config View the current game configuration.
Save Save current setup.
Load Load a setup.
Chat Toggle the chat overlay.
Delete When selected, the left mouse button will remove tiles/pieces instead of placing them.
Back Go to the previous phase.
Next Go to the next phase.
Finish Confirm setup and wait for the other player.

4.2 Match

Pieces can be moved by dragging them with the left mouse button.
Pieces can attack or fire by dragging them with the right mouse button or using the "Engage" button.
A turn ends by pressing the according button or when the limit of actions has been reached.

Buttons

Exit Exit the game.
Surrender Surrender to the opponent. If playing on a multi-room server, this button will just finish the match, rather than abort it and exit the room.
Config View the current game configuration.
Chat Toggle the chat overlay.
Engage When selected, the left mouse button will perform what the right mouse button would do.
Destroy When selected and moving a rangers piece off a forest tile, that tile will be turned into plains.
Finish End the turn. Disabled for the first action of a turn.
Establish Establish a farm or city.
Rebuild Rebuild a breached/destroyed fortress/farm.
Spawn Respawn a piece on the according tile.
Fate's favor icons An icon can be selected to start a fate's favor and deselected to abort or finish it.
Dragon icon If during the setup stage a dragon wasn't placed, this icon can be dragged onto a homeland fortress to place said piece.