Skip to content

Guiding Principles

The AI plays to win

In a perfect world, the AI would pass the "Turing test" of gameplay - you would't be able to tell if you're playing against a human or AI.

Examples:

  • No "what would you offer me for this"
  • AI will choose to attack you if your military is weak (WILL kick you when you're down)

There is a fine line here between "exploitable" and "no fun" regarding trade - regular players may refuse any trade you offer them on principle. We don't want that from the AI, which leaves us slightly open to exploits, but that's a trade-off we make knowingly.

Modding philosophy - minimal objects, maximum interactions

As a new modder it's easy to get lost in the sheer number of uniques.

Our aim is to minimize the number of uniques as much as possible, but enable "emergent modding" by allowing combinations.

Examples:

  • Parameters in uniques > multiple uniques
  • Conditions should be Conditionals, so they can be applied to all uniques
  • Triggered uniques and unique triggers - all combinations
  • Unit Action modifiers, rather than special attributes for specific unit actions

Crash early, crash often

A crash stacktrace is halfway to a solution - a game save which reliably produces it is 90% there.

Whenever an unexpected situation occurs - the game has reached an incorrect state - we should crash, to allow the problem to be fixed as soon as possible.

Persisting with an incorrect state makes the eventual resulting problems further from the cause, and complicates debugging.