Articles

Promo Capture ๐Ÿ‡บ๐Ÿ‡ธ

Standard of Iron's promotional video pipeline is split into two reproducible stages: deterministic gameplay capture in Arena and offline editorial assembly with FFmpeg...

Iron Sepulcher ๐Ÿ‡บ๐Ÿ‡ธ

The Iron Sepulcher is Standard of Iron's undead faction. It has no economy, recruitment loop, or player-selectable slot. Undead troops reach the battlefield through undead zones authored on the map: dormant sites that awaken, raise a garrison, and turn part of the terrain into a temporary strategic ...

Rpg Playability ๐Ÿ‡บ๐Ÿ‡ธ

This document is the permanent contract for direct commander control: what playable means, how the mode is validated, and which runtime rules make the result reliable. tools/arena/rpg_gate_manifest.json is the live record of scenario status...

Ai Architecture ๐Ÿ‡บ๐Ÿ‡ธ

Standard of Iron runs one strategic AI instance per computer-controlled owner. The AI is deliberately separated from the live ECS world: the world-owning thread builds an immutable snapshot, worker code reasons from that snapshot, the result is converted into typed AI commands, command conflicts are...

Difficulty ๐Ÿ‡บ๐Ÿ‡ธ

Single-player difficulty is one shared system across the campaign, standalone missions and skirmish. It gives the enemy more or fewer resources, starting troops and scripted reinforcements. It does not make the opponent think better, and it does not touch combat statistics...

Mission Framework ๐Ÿ‡บ๐Ÿ‡ธ

Missions add authored gameplay rules to an existing battlefield. A map defines terrain, structures, spawns, environment, camera data, regions, and other world geometry. A mission selects that map and adds player/AI setup, objectives, scripted waves, stages, events, commander messages, and campaign-f...

Victory System ๐Ÿ‡บ๐Ÿ‡ธ

Victory rules look simple to a player: eliminate an enemy, survive long enough, capture a position, or keep a commander alive. The implementation has to satisfy a harder set of requirements. Rules must be cheap enough to evaluate during simulation, expressive enough for both skirmishes and authored ...

Architecture ๐Ÿ‡บ๐Ÿ‡ธ

Standard of Iron is organized around one rule: gameplay state belongs to the simulation, while application code, UI, rendering, tools, persistence, and AI consume or transform that state through explicit boundaries...

Audio Licenses ๐Ÿ‡บ๐Ÿ‡ธ

Where every .ogg under assets/audio/ came from, and under what licence. For how the files are used, see AUDIO_SYSTEM.md...

Formation Architecture ๐Ÿ‡บ๐Ÿ‡ธ

Standard of Iron has two formation layers because they solve two different spatial problems...

Rendering Architecture ๐Ÿ‡บ๐Ÿ‡ธ

Standard of Iron renders from published simulation snapshots. Gameplay state belongs to the simulation; the renderer receives a detached view of that state, resolves visibility and presentation, records draw work, and submits the result through a backend boundary...

Economy Guidance ๐Ÿ‡บ๐Ÿ‡ธ

The economy guidance layer makes the gather-build-recruit loop visible to the player. Resource counters explain what each resource is for, the economy guide shows costs and prerequisites, and skirmish coaching gives the player a short sequence of economic goals...

Home Activity ๐Ÿ‡บ๐Ÿ‡ธ

Roman and Carthaginian houses look inhabited: a hearth vents smoke through an opening the model actually has, shutters stand open by day and close at dusk, washing hangs out, cloth stirs in the breeze, lamps come on at night, residents step outside, an...

Campaign Missions ๐Ÿ‡บ๐Ÿ‡ธ

This document explains the purpose of every campaign mission: what the player is asked to do, what the mission is designed to teach, and whether victory comes from attacking, defending, or managing the economy...

Siege Presentation ๐Ÿ‡บ๐Ÿ‡ธ

Roman and Carthaginian ballistas and catapults use reinforced timber carriages, open spoked wheels with iron tyres, bronze straps and hubs, and short moving standards. The presentation scale is 1.35x for ballistas and 1.20x for catapults, applied after...

Marketplace ๐Ÿ‡บ๐Ÿ‡ธ

Both nations' marketplaces are open courts on a stepped plinth, entered from the local โˆ’X side through a gateway, with a row of three shops along the back (+X) wall. The plinth stays 2.80 local units wide so the drawn body matches the collider (Buildin...

Accessibility ๐Ÿ‡บ๐Ÿ‡ธ

Standard of Iron exposes accessibility and input options from Settings in both the main menu and pause menu. Every option has a default that reproduces the shipped presentation and controls, so accessibility features can be enabled deliberately without changing the experience for a fresh installatio...

Camera Controls ๐Ÿ‡บ๐Ÿ‡ธ

The RTS camera supports nine ways to move or restore the view. The same control definitions feed the in-battle legend and field manual, while automated tests cover the underlying geometry and input rules. This page explains the complete control model and ends with the manual regression pass needed f...

Farm Activity ๐Ÿ‡บ๐Ÿ‡ธ

Roman and Carthaginian farms show presentation-only field workers. They are the nation's own civilian humanoids -- the same rig, proportions, equipment archetypes and palette the real civilian and builder units use, driven by the baked clip bank throug...

Backtracking ๐Ÿ‡บ๐Ÿ‡ธ

Backtracking is a method used to solve problems by building potential solutions step by step. If it becomes clear that a partial solution cannot lead to a valid final solution, the process "backtracks" by undoing the last step and trying a different path. This approach is commonly applied to constra...

Brain Teasers ๐Ÿ‡บ๐Ÿ‡ธ

Programming puzzles and brain teasers are a fun way to sharpen your coding and problem-solving skills. Youโ€™ll often see them in technical interviews, where theyโ€™re used to test how you think, analyze problems, and come up with efficient solutions. To do well, it helps to practice and build solid str...

Graphs ๐Ÿ‡บ๐Ÿ‡ธ

In many areas of life, we come across systems where elements are deeply interconnected, whether through physical routes, digital networks, or abstract relationships. Graphs offer a flexible way to represent and make sense of these connections...

Math Set Relationship ๐Ÿ‡บ๐Ÿ‡ธ

Starting from a finite set, we can construct pairs, sequences, subsets, and orderings. For each construction, these notes explain what counts as a distinct result, how many results exist, and the time and storage required to generate them...

Basic Concepts ๐Ÿ‡บ๐Ÿ‡ธ

Data structures and algorithms are fundamental tools for writing efficient software. They determine how a program organizes information and how much work it performs; implementation choices, I/O, and hardware also affect performance...

Searching ๐Ÿ‡บ๐Ÿ‡ธ

Searching is the task of finding whether a particular value exists in a collection and, if it does, where it lives (its index, pointer, node, or associated value). It shows up everywhere: checking if a username is taken, locating a record in a database, finding a file in an index, routing packets, o...

Greedy Algorithms ๐Ÿ‡บ๐Ÿ‡ธ

Greedy algorithms are the โ€œmake progress nowโ€ strategy: build a solution one step at a time, and at each step take the option that looks best right now according to a simple rule (highest value, earliest finish, smallest weight, smallest distance label, etc.). You keep the choice only if it doesnโ€™t ...

Dynamic Programming ๐Ÿ‡บ๐Ÿ‡ธ

Dynamic Programming (DP) is a way to solve complex problems by breaking them into smaller, easier problems. Instead of solving the same small problems again and again, DP stores their solutions in a structure like an array, table, or map. This avoids wasting time on repeated calculations and makes t...

Sorting ๐Ÿ‡บ๐Ÿ‡ธ

Sorting arranges a collection of items according to a defined ordering, such as ascending numeric value or a record's timestamp. The comparison rule must be consistent; contradictory comparisons make a sorted result ill-defined...

Matrices ๐Ÿ‡บ๐Ÿ‡ธ

Matrices represent images, game boards, and maps. Many classic problems reduce to transforming matrices, traversing them, or treating grids as graphs for search...

Data Structures ๐Ÿ‡บ๐Ÿ‡ธ

In computer science, a collection (often interchangeably referred to as a container) is a data structure that holds multiple values. These may be simple elements like numbers or text strings, or more complex objects like user-defined structures. Collections help you store, organize, and manipulate d...

Ci Policy ๐Ÿ‡บ๐Ÿ‡ธ

The CI pipeline is organized around feedback speed. Pull requests run the checks that are fast enough to support normal review, while expensive acceptance, performance, and whole-surface audits run weekly, on demand, or as part of release validation...

Pathfinding Architecture ๐Ÿ‡บ๐Ÿ‡ธ

Pathfinding in Standard of Iron is deliberately simple at the core: the game keeps one flat 2D navigation grid, and A* searches that grid. The grid is not a physics simulation, not a unit occupancy map, and not a navmesh. It is a compact answer to one question...

Map Object Placement ๐Ÿ‡บ๐Ÿ‡ธ

An object authored in map JSON has to become two things that agree with each other: a physical body on the ground and a model on the screen. This document explains the coordinate contract that keeps them aligned, how object footprints are validated, and how the placement audit detects geometry that ...

Combat System ๐Ÿ‡บ๐Ÿ‡ธ

Combat in Standard of Iron is coordinated by Game::Systems::CombatSystem. It owns the shared combat query context and advances normal attacks, combat state, formation contacts, siege behavior, elephant behavior, automatic engagement, target commitment, hit feedback, and threat alerts in a fixed orde...

Project Structure ๐Ÿ‡บ๐Ÿ‡ธ

A useful project structure lets a developer locate a feature, change it, test it, and deploy it without guessing which files own which behavior. Organize a project for its current requirements, then refactor when responsibilities become unclear. There is no universally correct folder tree, and renam...