Developer diary

Dev Diary #1: Numbers, Chance, and Time

How MKA Engine's numbers, chance, and game calendar help the same starting state and full command sequence produce consistent results.

Contents
Fine marks on a brass ruler and a small gear-shaped caliper, with a glowing strategy map made of squares behind them.

In short: The same starting state and the same complete sequence of game commands should produce the same world on every computer. MKA Engine applies shared rules to numbers and chance; on the content date of Diary #1, 10 October 2026, its game calendar counted 365 days per year. Diary #30, with the content date 2 November 2026, describes the Gregorian option added later.

Why do numbers, chance, and time need shared rules?

A strategy game calculates population, resources, borders, and events at the same time. A tiny difference in one calculation can shape new decisions each day, gradually separating two computers' worlds. Numbers, chance, and time therefore need shared rules.

A common rule for arithmetic, chance, and the calendar

Numbers: calculations on the same small steps

A fixed-point number represents a fractional value by counting units of a chosen size. This is a little like keeping money in cents, but not every value is an exact multiple of the chosen step. When a value falls between available steps, the nearest one is chosen, so the represented value is an approximation. MKA Engine defines that rounding rule explicitly, so the same operation follows the same rule on different machines.

An open vault, neatly arranged whole coins, and broken pieces set aside; the illustration explains representing fractions with fixed small steps.

This does not mean every decimal value is represented perfectly. What matters is that the move to the nearest available step follows a defined rule on every computer.

Chance: each outcome belongs to its game situation

Imagine drawing from one shared deck: an unrelated draw inserted earlier could shift every later result. MKA Engine instead ties each draw to the game situation that requested it. An unrelated event running earlier or somewhere else therefore does not change that draw's result.

Two hands reach into different dice drawers along a glowing path on a wall of small drawers.

Time: a calendar owned by the game

The diary's original content, dated 10 October 2026, described an engine calendar with a 365-day year and twelve months, with no leap day. It was a game calendar independent of the computer's real-world clock. Depending on the game's time step, a day could be split into shorter intervals or a step could span several calendar days.

Later option (content date: 2 November 2026): MKA Engine now offers each game a choice between the 365-day calendar and the Gregorian calendar. This followed the state described in the 10 October content; Developer Diary #30: Gregorian Leap Years in Game Time explains the later choice.

A mechanical calendar wheel with seasonal symbols; its central gear divides game time into smaller intervals.

What does consistent behavior make possible?

With the same starting state and the same complete sequence of game commands, calculations, chance and the calendar follow the same rules on every computer. That consistency is the foundation for continuing a saved game, replaying the same game, and keeping multiplayer worlds aligned. This article does not present a speed comparison.

Why tie arithmetic, chance, and time together?

Game rules need to produce the same result on different computers. Connecting arithmetic, chance, and time to one consistent model carries that expectation through each game step. Developer Diary #2 explains how multiplayer relies on that foundation.

The limits of fixed-step arithmetic and the calendar

With fixed-step arithmetic, not every fraction can be represented exactly; values are rounded to the chosen step. The calendar limit belongs to the scope of Diary #1's 10 October 2026 content; Diary #30 describes the later Gregorian option.

Keeping multiplayer worlds aligned

The next diary looks at how we keep one game world aligned across multiple computers.

What does fixed-point mean?

It represents fractional values in units of a fixed size. If a value is not an exact multiple of the chosen step, the nearest step approximates it; the engine's rounding rule determines that choice.

Why does the same chance event get the same result?

A draw is tied to the game situation that requested it. An unrelated event being calculated first does not shift its outcome.

Does the calendar follow real-world dates?

The 365-day calendar described in Diary #1, dated 10 October 2026, had no leap day. Diary #30 (content date 2 November 2026) describes a selectable Gregorian calendar alongside the 365-day option; a game chooses which one to use.

Sources and related docs

You may also like

  • How is a strategy game's world map made?

    For MKA Engine we built a 27,357-location world map of 1337 from real data: how terrain, rivers, straits, population and location borders were made.

  • The road to a game engine

    How we started MKA Engine: reading four games, treating determinism as law, moving phase by phase with measurements, and where we are now.