TIGS: TI4 Game Setup Tool
Introduction
The TIGS (Twilight Imperium Game Setup) tool serves two main purposes in preparing for a TI4 game with a
balanced map:
- Generating a "fair" map with balanced resources using an SAT constraint solver.
- General game pre-game setup.
The map generation can be performed as part of general game setup, or independently without using the
game set-up options.
Game Setup
The game set-up tool is used to guide players through all the steps performed pre-game including:
- Assigning slots for players
- Randomly drawing a set of factions for each player to choose from
- Proposing and voting on a map
- Locking in faction selections
- Randomly drawing for player positions
- Selecting colors
Most of the game set-up operations are performed on the "Game" tab of the interface. When no
game is currently in progress, the new game creation interface will be shown. When game
set-up is in progress, the set-up page for that game will be shown. Local storage on your
device or brower is used to keep track of which games you are a part of, and which player
you are in those games.
Game Creation
To create a game, enter the following data in the create game form:
- Game Type - Choose the board with the desired player count and configuration.
- Game Name - Enter a name for the game (or leave blank to use an auto-generated name).
- Game Organizer - Enter your own name as the game organizer.
- Expnsions - Choose which expansions to use. These include:
- Prophesy of Kings (PoK) - Includes the PoK factions and tiles.
- Codex - Includes the Keleres faction.
- Discordant Stars (DS) - Includes the discordant stars factions.
- Uncharted Space Tiles (US) - Includes the Uncharted Space tiles.
After you have entered this information, press the "Create Game" button to progress
through the game set-up steps. You can also choose from among the stored games to open
it again.
Active Game Set-Up
When game set-up is active, a game card showing the game UUID, game name, options and
set-up creation date are shown on the Game tab. Below this is a checklist of steps to
go through in the game set-up. This is followed by a list of slots for players, in which
the player that created the game is marked as the organizer. The set-up steps are as
follows:
- Assign Players - The organizer shares link to the game with the other players. Other
players open the link, click one of the available slots and enter their name. Once
all players have been assigned, random faction selections will be drawn for each player,
and set-up will progress to the next step. Players may lock in their faction choice
at this point, but are not required to until after a map has been approved.
- Approve Map - Players use the "Map" tab to generate and fine tune a map. Once
happy with a map, the map designer can press the "Propose" button on this step
to propose a map. This will lock the "Map" tab to the proposed map, and enable
the thumbs-up and thumbs-down button on the Approve Map step. Once all players
have pressed thumbs-up for a map, the set-up progresses to the next step. If any
player pressed thumbs-down, it unlocks the "Withdraw" button enabling the map
to be withdrawn and a new one proposed.
- Choose Factions - Faction selections are private until all players have locked
in a faction choice. Once all players have locked in their factions, the faction
choices will be revealed to all players, and set up will progress the the
assign positions step.
- Assign Positions - This step finalizes player positions around the map. Press
the button to assign positions. The player numbers shown on the left of each
player card will switch from temporary (with parantheses) to finalized (without).
-
Choose Colors - Press the left edge of your player card to choose a color. Only
colors that have not yet been selected will be available. While color selection
is available once all players have joined the game, all players must choose a color
to complete the set-up process.
TIGS Map Generator
The goal in the design of the map generator is to allow a very high degree of customization in the generation process.
Users can specify a set of constraints ranging from local constaints like "I want the systems next to each player's
homeworld to have between 6 and 8 resources, and 6 and 8 influence" to global constraints like "no wormholes of the
same type in adjacent systems." You are free to use the default constraints, or tweak them for your needs.
Individual constraints are found on the "Constraints" tab grouped by which parts of the map they cover. Each constraint
can be enabled or disabled, and the min/max values for each constraint canbe set.
The map generator is based on an SMT (Satisfiability Modulo Theories) theorem prover. The theorem prover takes all the
specified constraints and finds one of:
- an arrangment of system tiles that satisfies all constraints,
- a proof that there is no arrangement of tiles that can satisfy all constraints, or
- a timeout out after 30 seconds without a solution.
In most cases, the theorem prover will end in either a generated map, or the warning that no solution is possible, typically
within 2-7 seconds. A timeout usually occurs only when the constraints are right at the edge of between solvable and not. Once a map
is generated, you can hand edit it, download it as a PNG image, copy the map string as a TTS
strting, or copy the map as a URL to share with others.
Map Selection
You can select a basic map type in the upper left corner. Four map types are currently supported:
- Standard 4-Player - Three ring hex map with the player start positions shifted one hex from 4 of the corner.
- Standard 6-Player - Three ring hex map with the player start positions at the corners of the outer hex.
- Spiral 6-Player - Three ring hex map with the player start positions shifted one hex from the corner.
- Standard 8-Player - Four ring hex map with two players at opposite verticies, and three players between them on each edge.
Note that if game plan is open, the map selection will be locked to the current game type and "Game Options Locked" will
be displayed over the map type selector.
Map Tile Options
Next to the map type selector is the map tile option selector. Press this to open a popup that lets you choose which
tiles to include in addition to the base tiles. You can include the Prophesy of Kings tiles and/or the Uncharted
Space tiles.
Constraints
Generation of a map is controlled by the active constraints. These can be found on the "Constraints" tab
of the interface. The constraints are grouped into blocks of related constraints, each covering different
portions of the map. Each constraint block, and a diagram or explaination of which tiles they related to.
Each constraint in a block has a checkmark to indicate if that constraint is active. When a
constraint is active, the property for that constaint is restricted to being between the
specificed minimum and maximum value. When a map is shown with the block, the constraints
apply to each colored area on the map.
In the example here, each set of three tiles around
a home systems must have between 5 and 8 resources (R), between 5 and 8 influence (I),
exactly 9 "value" (max of R and I for each planet, +1 for skips), no wormholes, exactly
one skip, no legendaries, and exactly one anomaly. The R+I (sum of resource and influence),
and the number of empty space tiles constraints are not enforced since those constraints
are not checked.
Be careful not to overconstrain the map. If you request constraints that cannot be met (e.g.,
everyone gets 20 resource next to their home planet!) then there may be no arrangement of tiles
that can satisfy those constraints. In this case, the solver will either tell you there is
no solution, or it will timeout. When this happens, relax the constraints and try again.
Constraint Types
For each constraint set, min and max values for each of these quantities can be set:
Sym. | Description |
R | Resource |
I | Influence |
R+I | Combined Resource and Influence |
Value | "Value" of tile as defined by the max of resource and influence, plus 2 if legendary and plus 1 if a skip |
Worm | Number of wormholes |
A-Worm | Number of A-wormhole tiles |
B-Worm | Number of B-wormhole planet tiles |
Skips | Number of tech skips |
Empty | Number of non-planet tiles |
Legend | Number of legendary planet tiles |
Anom | Number of anomaly tiles |
Constraint Blocks
This section describes the different types of constraint blocks. They varry slightly depending
on the map type (player count, standard vs spiral), and not all block types apply to all map types.
1-Hop Uncontested |
 4-Player |
 6-Player |
 Spiral 6-Player |
 8-Player |
1-Hop Uncontested constraints are those that apply to systems that are one hop away
from a players home systems and are (normally) not contested by other players. The goal
for the constraints in this block is to give each player a balanced amount of resources.
|
2-Hop Uncontested |
 4-Player |
 6-Player |
 Spiral 6-Player |
 8-Player |
2-Hop Uncontested constraints apply to the set of tiles that are 2-hops from a players
system, and 3 or more hops from any other player (on the 6-player spiral board, they are
technically contested if players do not agree to cooperate). They are considered "uncontested"
because the normal expectation is that they would go to the closest player. The goal
for the constraints in this block is to give each player a balanced amount of resources
in thier "bonus" system.
|
2-Hop Contested |
 4-Player |
 6-Player |
Spiral 6-Player |
 8-Player |
2-Hop Constraints constraints apply to the systems that are 2-hops from two different
players. These are systems that those players would normally fight or negotiate over.
The goal for the constraints in this block is to give each pair of players contesting
for tiles a balanced amount of resources.
|
Contested Triples |
 4-Player |
6-Player |
Spiral 6-Player |
8-Player |
The Contested Triples containt is applicable only to 4-player maps and covers the
groups of 3 tiles that are 2-hop equidistant between two pairs of players.
These are systems that those players would normally fight or negotiate over.
The goal for the constraints in this block is to give each pair of players contesting
for tiles a balanced amount of resources.
|
Inner Ring |
4-Player |
6-Player |
Spiral 6-Player |
 8-Player |
The inner ring on an 8-player map is treated as a shared pool for all players to
fight over. The main use of this contraint block is to control what is placed
in that ring.
|
Within 2-Hops |
 4-Player |
 6-Player |
 Spiral 6-Player |
 8-Player |
The Within 2-Hops contraint applies to each group of tiles that are within 2-hops of a
home system. On some boards, this can include tiles that are normally within a
neighboring players slice. The main use of this contraint block is to set a bound
on the wormhole count to ensure that each player has access to a wormhole.
|
Adjacents |
The adjacents block describe constraints that must apply to each pair of adjacent tiles (excluding
home systems and Mecatol). Ths block is normally used to prevent things like adjacent worm holes of the same
type from being adjacent (e.g., a bound of 0 to 1 for alpha wormholes on adjacent tiles guarantees there
will be no adjacent wormholes of that type).
|
Global |
These constraints apply to the entire map besides home systems and Mecatol. You can use these constraints
to set an overall tone for the game in terms of empty space, wormhole and anomaly density.
|
Over-Constrained Maps
If the map is over-constrained, the generator will fail to find a solution. This can result in one of
two outcomes:
- No solution exists - The solver was able to determine that no map meeting the specified constraints exists.
- Solver timed out - The constraints were too complicated to determine if there was a solution or not before
running out of time.
In either of these cases, you can try to reduce the number of constraints, or increase the min/max ranges for some of the constraints.
© by Jeff Hansen.