Unciv/docs/Guiding-Principles.md

35 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

2024-03-19 03:29:21 +07:00
# 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
2024-03-19 03:29:21 +07:00
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.