Hexes Med is a two-player turn-based wargame played on a hexagonal grid. Each player commands an army of infantry, cavalry, and ranged units recreating historical medieval battles. The game is asynchronous: each player takes their full turn while their opponent watches a replay before responding.
A full turn consists of two half-turns, one per player. Each half-turn has two phases in order: Movement, then Combat. You cannot go back to movement once combat has started. Clicking End Phase moves from movement to combat; clicking End Turn commits your half-turn and sends it to your opponent.
Each unit is represented by a token. When disorganised, a visual indicator appears on the token. The stats on a token are: F (Force Value, top-left), ranged strength with range in hexes (middle, orange — ranged units only), and movement points (bottom).
F (Force Value) = combat strength and resilience, one value, from 1 to 4. Ranged is the ranged strength (1–3, same scale). Movement is in movement points per turn.
| Type | F (initial) | Ranged | Range | Movement | Category |
|---|---|---|---|---|---|
| Elite Cavalry | 4 | Ø | Ø | 5 | Cavalry ⚡ |
| Heavy Cavalry | 3 | Ø | Ø | 5 | Cavalry ⚡ |
| Light Cavalry | 2 | Ø | Ø | 6 | Cavalry ⚡ |
| Elite Infantry | 4 | Ø | Ø | 2 | Infantry |
| Heavy Infantry | 3 | Ø | Ø | 2 | Infantry |
| Light Infantry | 2 | Ø | Ø | 3 | Infantry |
| Militia | 1 | Ø | Ø | 2 | Infantry |
| Archer | 2 | 2 | 2 hex | 2 | Ranged |
| Heavy Archer | 2 | 3 | 3 hex | 2 | Ranged |
| Crossbowman | 2 | 2 | 2 hex | 2 | Ranged |
| Mounted Archer | 2 | 2 | 2 hex | 5 | Cavalry / Ranged |
| Horse Archer | 2 | 3 | 3 hex | 4 | Cavalry / Ranged |
⚡ = can charge (see Cavalry Charge section)
During the movement phase, each unit may move up to its movement points (MP). Moving to an adjacent hex costs MPs equal to the terrain cost of the destination hex. A unit may not enter a hex occupied by an enemy unit. It may pass through a friendly hex but cannot end its move there (see Regrouping for an exception).
| Terrain | Movement cost | Defense bonus |
|---|---|---|
| Clear | 1 MP | None |
| Village | 1 MP | +1 (to defender) |
| Prepared terrain (palisade) | 1 MP | +1 ; +2 vs cavalry |
| Forest | 2 MP | +1 (to defender) |
| Hill | 2 MP | +1 (to defender) |
| Swamp | 3 MP | -1 (penalty to defender) |
| River, impassable obstacles... | Impassable | None |
Every unit exerts a Zone of Control over the six hexes adjacent to it. This represents the immediate threat an armed force projects around itself — the range of spears, arrows, and charging horses that no enemy can simply walk past. Enemy ZOC has two key effects on movement:
Two friendly units of the same type whose F is below their maximum can regroup into a single unit during the movement phase. The token appearance must be identical (unless one unit includes a leader). Survivors from one battered company fall back to reinforce another, pooling their strength and closing gaps in the line.
During the combat phase, each unit may attack once per turn. After attacking, the unit is exhausted for the rest of the combat phase. Units recover fully at the start of the next turn and may move and attack normally.
A unit may attack any enemy unit in an adjacent hex. Only one attacker may target a given defender per combat action. However, the same defender may be attacked multiple times during the combat phase, by different units, one at a time.
Ranged units (archers, crossbowmen, horse archers…) can attack enemies within their range (in hexes) without being adjacent.
A ranged unit that fires cannot lose F, suffer a retreat, or become disorganised from an exchange against a melee unit: a melee unit cannot counter-attack a ranged shot. This protection does not apply to fire duels (ranged vs ranged): in that case both sides can lose F, retreat, or become disorganised, representing casualties from a sustained exchange of volleys.
Resolution is based on the F difference between the two sides. A d10 roll (ten-sided die, result 1–10) is made for each side and translates that difference into concrete losses using a fixed table.
Diff = attacker F − defender F + leader bonus + charge bonus − terrain bonus
One d10 is rolled for the defender, a second for the attacker (with reversed diff). Both resolutions are simultaneous.
| diff | No loss: d10 rolls | -1F: d10 rolls | -2F: d10 rolls | -3F: d10 rolls |
|---|---|---|---|---|
| ≤ −5 | 1–9 | 10 | Ø | Ø |
| −4 | 1–9 | 10 | Ø | Ø |
| −3 | 1–8 | 9 | 10 | Ø |
| −2 | 1–7 | 8–9 | 10 | Ø |
| −1 | 1–6 | 7–9 | 10 | Ø |
| 0 (equal) | 1–5 | 6–8 | 9 | 10 |
| +1 | 1–4 | 5–7 | 8–9 | 10 |
| +2 | 1–3 | 4–6 | 7–8 | 9–10 |
| +3 | 1–2 | 3–4 | 5–7 | 8–10 |
| +4 | 1 | 2–3 | 4–6 | 7–10 |
| ≥ +5 | Ø | 1 | 2–6 | 7–10 |
The attacker takes a simultaneous counter-attack from the defender (at reversed diff). In ranged combat, the attacker takes no riposte, unless the defender is also a ranged unit in range (a fire duel, representing sustained exchanges of volleys).
Any unit that suffers F losses makes a Retreat/Disorganisation (R/D) roll. This roll determines whether the unit retreats, becomes disorganised, or both.
R/D roll = 1d10 + F lost in this combat + modifiers
| R/D total | Result |
|---|---|
| ≤ 5 | No effect |
| 6 to 8 | Retreat (R) |
| 9 to 11 | Disorganisation (D) |
| ≥ 12 | Retreat + Disorganisation (R+D) |
R/D modifiers: leader (same hex) -2 ; adjacent leader -1 ; already disorganised +1.
A retreat represents a broken unit: pushed back by overwhelming force, seized by panic, routing under pressure, or simply unable to hold its ground. Retreating troops are disorganised, exposed, and vulnerable. The retreating unit must move one hex away from the attacker, in the opposite direction or one of the two flanking rear hexes.
Retreat is resolved automatically by the game, with no input required from either player. This keeps gameplay flowing by eliminating back-and-forth between players after each combat result. It also reflects battlefield reality: soldiers in rout do not calmly choose their direction of flight — panic takes hold instantly, and the game captures that immediacy. The destination is determined in this priority order:
Disorganisation is determined by the R/D roll (see Retreat and disorganisation): a result of D or R+D disorganises the unit. Disorganisation represents the loss of formation cohesion, the breakdown of ranks, and disrupted command. A disorganised unit cannot attack. If attacked, it defends with −1 F effective.
Cavalry that charges successfully (having inflicted losses) may also become disorganised: 25% chance. This is one of the best-documented facts of medieval battles — after a victorious charge, knights scattered in pursuit, lost formation, and became vulnerable to counter-attack. At Hattin (1187) and many other battles, locally victorious cavalry could not reform in time.
A disorganised unit cannot attack and cannot voluntarily enter enemy zone of control (it may be forced into one by a retreat result).
Disorganised units attempt to reorganise at the start of the next turn. A unit disorganised during the current turn cannot attempt recovery until the following turn — disorganisation therefore lasts a minimum of one full turn.
The reorganisation roll uses 1d10 plus modifiers: success if roll + modifiers ≥ 4. A high result is always an advantage.
Staying immobile without fighting: unmodified roll ≥ 4 = 7 chances in 10, a deliberate tactical choice that may be worth one turn of inactivity.
When the attacker repels or destroys the defender, the attacking unit must advance into the vacated hex. This represents the natural impulse of victorious troops: pressing the advantage, pursuing a fleeing enemy, and occupying the ground just won. In medieval warfare, commanders rarely held their men back after a successful charge — the advance was both a reward and a tactical necessity to exploit the breach. Ranged attacks never trigger an advance: archers who suppress an enemy from distance do not need to move forward.
Pure melee cavalry (elite cavalry, heavy cavalry, and light cavalry) have a charge ability shown by a ⚡ (bolt) indicator in the bottom-right corner of their token.
When a cavalry unit moves during the movement phase, its indicator turns red. If it then attacks in melee and both units are on clear terrain or road, it gains +1 attack strength. The bonus only applies to the attacker: a cavalry unit that is attacked does not benefit from this bonus.
The charge bonus applies only if both units are on a clear terrain hex (plain) or road. The indicator resets to grey (⚡) at the end of the active player's attack phase, even if the cavalry did not fight.
Mounted archers and horse archers do not charge: their role is fire on the move, not mass impact.
Exception: the charge bonus does not apply if the target is itself a charge-capable cavalry unit. Such a unit can react with a counter-charge, negating the speed advantage.
Each unit has a Force Value (F) ranging from 1 to 4. This value represents both its combat strength and its capacity to absorb losses. When F reaches 0, the unit is eliminated.
Victory conditions are defined per scenario and checked at the end of each full turn (after both players have played their half-turn). Some existing conditions:
| Condition | Description |
|---|---|
| Elimination | A side wins when a set number of enemy units or leaders have been eliminated. |
| Destruction | Win by destroying enough total enemy combat strength (sum of melee values of eliminated units). |
| Leader killed | Win by eliminating a specific named enemy leader. |
| Territorial control | Checked at the end of the last turn only. Win by having friendly units on a required number of key hexes. |
If no decisive condition is met by the last turn, the scenario default result applies (usually a victory for the historically dominant side, or a draw).