Table of Contents
This guide provides some ground rules to write user-facing texts for 0 A.D.
Always check what you type!
- There is only one t in eighteen.
- While four and fourteen are written with ou, there is no u in forty, only an o.
- The verbs to an-, de-, and pronounce are always spelled with ou, as are the nouns an-, de-, and pronouncement, whereas the nouns an-, de-, and pronunciation are spelled with only u.
- Although the word full ends with double ll, adjectives ending in -ful (e.g. forgetful, resourceful, useful) have only one final l.
- Words such as developer and exceptional are written with one p or n, respectively (unlike in French).
- The verbs loose and lose have very different meanings.
Use American English spelling.
|license (noun and verb)||licence (noun)|
|licence (noun and verb)|
|practice (noun and verb)||practice (noun)|
|civilization *||civilization *||civilisation *|
|fertilizer *||fertilizer *||fertiliser *|
|itemize *||itemize *||itemise *|
set up (verb)
set up (verb)
set up (verb)
- Oxford spelling is used by many international organizations (e.g. ISO, NATO, UN, WTO, WWF) and some academic publications (notably Oxford University Press and Cambridge University Press, whereas the University of Oxford and the University of Cambridge use British spelling).
- The -ize/-ise, -izer/-iser, and -ization/-isation differences only apply to words where the ending is not part of the root.
- Some words always end in -ise in all varieties of English. These are: advertise, advise, apprise, arise, chastise, circumcise, comprise, compromise, demise, despise, devise, disguise, enterprise, excise, exercise, franchise, guise, improvise, incise, merchandise, mortise, premise, reprise, revise, supervise, surmise, surprise, televise, as well as all words ending in -wise.
- Likewise, there are a number of words that always end in -ize in all varieties of English. These include: assize, baize, capsize, downsize, maize, prize, resize, seize, size.
- If unsure about the correct spelling, consult a dictionary, e.g. https://www.lexico.com/
The name of the game is 0 A.D., which includes dots, for stylistic reasons. However, dots are not used when writing down years. E.g. Augustus was emperor of Rome from 27 BC until AD 14.
|BC||B.C., BCE, B.C.E.|
|AD||A.D., CE, C.E.|
Also check there is always a single space between the year and BC/AD.
|founder of dynasty||members of dynasty||belonging to dynasty|
Greek and Latin
Greek words and proper names are Latinized everywhere, except in the specific name.
|Seleucus I||Seleukos A'|
Also, use the English form if there is one.
|Alexander the Great||Alexander Magnus||Alexandros ho Megas|
|Mark Antony||Marcus Antonius|
In texts that the user needs to understand, such as menu entries, help tooltips, and similar, you must be consistent with the vocabulary that you use.
An object should always be referred to using the same word everywhere in the game, and an action should always be referred to using the same verb. For example, if there is a unit type called ‘Female Citizen’, always refer to it as such, do not also use alternative forms such as ‘females’, ‘women’, and so on. Even in the same paragraph or sentence, you should use the same term.
Always be precise. E.g. if a technology multiplies the melee attack damage of cavalry by 1.2, the tooltip should be “Cavalry +20% melee attack damage”, not “Melee Cavalry +20% attack damage”.
Furthermore, there should be a bijection between descriptions and classes. E.g. if a technology affects the
Citizen class, write “Citizens”; if it affects the
Soldier class, write “Soldiers”; if it affects only units that have both the
Citizen and the
Soldier class, write “Citizen Soldiers”.
For specific words that you should use or avoid in 0 A.D. gameplay texts, see the tables below.
|build (structures)||construct, make|
|construct (ships, siege weapons)||build, produce, train|
|gather (resources)||collect, get|
|train (human units)||build, construct, recruit, produce|
Cursor vs Mouse
Mind the difference between the cursor (virtual) and the mouse (physical).
|icon||image, picture, portrait, sprite, thumbnail|
|capture attack strength||capture rate, capture value|
|capture attack range||capture range|
|capture attack speed¹||capture rate, capture time|
|melee attack crush damage||crush, crush attack, crush strength|
|attack range||range, melee range|
|melee attack speed¹||melee attack repeat time|
|minimum attack range||min attack range, minimum range|
|ranged attack speed¹||ranged attack repeat time|
|build rate||builder rate, building rate|
|building time, production time, recruitment time|
|wood cost||timber cost|
|metal cost||iron cost|
|garrison heal rate|
|healing strength||HP, heal value|
|healing range||heal range|
|healing time||heal rate, healing speed|
|idle||health regeneration rate||regeneration, regen rate, regen speed|
|health||health points, hitpoints, HP|
|health regeneration rate||regeneration, regen rate, regen speed|
|gather speed||gather rate, work speed|
|food capacity||carry capacity, foot load|
|fish gather rate|
|fruit gather rate|
|grain gather rate|
|meat gather rate|
|metal gather rate|
|stone gather rate|
|wood gather rate|
|resource trickle time|
|food trickle rate|
|movement speed||speed, velocity, walk speed|
|vision range||line of sight, LOS, vision|
¹ The meaning in code is reserved from the display text. For example, if code says
RepeatTime value × 0.5 (subtract 50%) then the speed will be twice as fast, which should be displayed as +100% (value ÷ 0.5).
|Arsenal||Armoury, Foundry, Siege Workshop, Workshop|
|Civic Center||Civic Centre, Civil Center, Civil Centre|
|Dock||Harbour, Pier, Port, Quay, Shipyard, Wharf|
|Farmstead||Farmhouse, Granary, Mill|
|Fortress||Castle, Citadel, Fort, Stronghold|
|Forge||Armoury, Blacksmith, Smithy|
|House||Dwelling, Home, Hut, Shack|
|Storehouse||Drop Site, Mining Camp, Storage Pit|
|Cavalry||Cavalry Soldier, Horse, Horseman|
|Champion Cavalry||Cavalry Champion|
|Champion Cavalry Spearman||Cavalry Spearman Champion, Champion Spear Cavalry|
|Champion Infantry||Infantry Champion|
|Champion Infantry Archer||Infantry Archer Champion, Champion Archer Infantry|
|Champion Spearman (both cavalry and infantry)||Spearman Champion|
|Citizen (cavalry or infantry, female or male)||Worker, Villager, Subject, Slave, Servant, Serf, Peasant, Labourer, Gatherer, Builder|
|Citizen Cavalry||Cavalry Citizen-Soldier, Citizen-Cavalry, Citizen-Cavalry Unit|
|Citizen Infantry||Infantry Citizen, Infantry Citizen Soldier, Infantry Citizen-Soldier|
|Citizen Soldier (cavalry or infantry)||Citizen-Soldier, Soldier Citizen|
|Female Citizen||Female, Female Worker, Woman|
|Infantry||Infantry Soldier, Footman|
|Melee Cavalry||Cavalry Melee Soldier, Heavy Cavalry|
|Melee Infantry||Heavy Infantry|
|Ranged Cavalry||Cavalry Ranged Soldier, Cavalry Skirmisher, Skirmisher Cavalry|
|Ranged Infantry||Light Infantry, Infantry Skirmisher, Skirmisher Infantry, Skirmisher|
|Ship||Boat, Craft, Vessel|
|Siege Engine||Siege Weapon, Siege|
In general, start with a capital, end each statement with a full stop, and capitalize classes.
Auras are JSON files located inside
simulation/data/auras/. Auras are temporary, their effects disappear when the aura entity is lost.
The shared format for the
auraDescription is: "[player] [class] [change] [attributes] [requirements]":
- [player]: if and only if an
affectedPlayersentry is specified; by default auras affect only their own player. Other options are (Player.js):
Ally: player is our ally → Allied and Own
ExclusiveAlly: player is our ally excluding ourself → Allied
MutualAlly: player is our ally, and we are its ally → Allied and Own
ExclusiveMutualAlly: player is our ally, and we are its ally, excluding ourself → Allied
Enemy: player is our enemy → Enemy
- [class]: the affected class(es), e.g.:
"Citizen Infantry"→ Citizen Infantry
"Siege", "Structure"→ Structures and Siege Engines
- [change]: the actual modifications, e.g.:
"replace": 0→ have 0
"multiply": 1.1→ +10%
"multiply": 0.85→ −15%
"add": 1→ +1
"add": -25→ −25
- [attributes]: the modified stats; see above
- [requirements]: if and only if a
requiredTechnologyis set; specifies the
genericNameof the required technology; e.g.:
"pop_wonder"→ (requires the “Glorious Expansion” technology)
The exact format depends on the aura
type (see Auras.js):
|formation||[player] [class] in his formation [change] [attributes] [requirements]||Soldiers in his formation +3 armor and +15% movement speed. (ref)|
|garrison||[player] [class] he is garrisoned in [change] [attributes] [requirements]||Ship he is garrisoned in −30% batch training time and +50% movement speed. (ref)|
|garrisonedUnits||Garrisoned [player] [class] [change] [attributes] [requirements]||Garrisoned Siege Engines +3 health regeneration rate. (ref)|
Garrisoned Soldiers +3 armor and +20 vision range. (ref)
|global||[player] [class] [change] [attributes] [requirements]||Allied Structures −20% technology research time. (ref)|
Temples −25% stone cost and +2 garrison heal rate. (ref)
+40 maximum population limit (requires the “Glorious Expansion” technology). (ref)
|range||[player] [class] [change] [attributes] [requirements]||Workers +25% grain gather rate. (ref)|
Own and Allied Soldiers and Siege Engines +1 capture attack strength, +20% melee and ranged attack damage. (ref)
Champions +2 capture attack strength, +20% melee and ranged attack damage, +10% movement speed. (ref)
Technologies are JSON files located inside
simulation/data/technologies/. All technologies are global and irreversible. Please follow the "[player] [class] [change] [attributes]" format (see auras above, without [requirements]), e.g.:
"tooltip": "Siege Engines +2 hack armor.",(siege armor)
Entity templates are XML files located inside
simulation/templates/. They can have a <Tooltip> string inside the <Identity> node, to summarize what makes them unique. Be brief and precise. A few examples:
- Resource supplier:
<Tooltip>Catch fish for food.</Tooltip>(fish)
<Tooltip>Construct Siege Engines and research Siege Engine technologies.</Tooltip>(arsenal)
<Tooltip>Garrison units for transport and to increase firepower.</Tooltip>(siege tower)
Use title case for:
- button captions;
- entity classes;
- entity and technology names (generic and specific names);
- key names;
- proper names.
For everything else, don't capitalize:
- cardinal directions (north, east, south, west), unless part of a name;
- resource types (food, wood, stone, metal);
- damage types (crush, fire, hack, pierce, poison);
- other stats (e.g. attack time, territory influence radius, vision range);
- actions (e.g. attack, click, move, select, send).
And never use full capitalization (e.g. THIS).
|Click the Citizen Soldier icon||Click the CITIZEN SOLDIER icon|
|Hold Shift and click||Hold shift and click|
Punctuation and spacing
- A serial comma is used when listing three or more items. E.g. “Available to Britons, Gauls, and Iberians.” or “Capture, Melee, or Ranged.” and not “Britons, Gauls and Iberians.” or “Capture, Melee or Ranged.”
- Only use one space, not two, after a full stop to end a sentence.
- Do not use spaces before “large” characters (e.g. ?, !, :, %).
- There are three options for parenthetical remarks:
- parentheses (which have spaces on the outside, but not on the inside) are preferred;
- en-dashes – which have spaces both inside and outside – can also be used occasionally if it looks better;
- em-dashes—which have spaces neither inside nor outside—are better avoided.
- Use “English-style” quotation marks, not « French-style » or „German-style“ (nor the other »German-style«).
- Please read the articles listed at https://www.lexico.com/grammar/punctuation
We have a somewhat complete Unicode support, do not limit yourself to ASCII and learn how to use Unicode input in your system.
|… (U+2026, ellipsis)||... (three full stops)||intentional omission|
|• (U+2022, bullet)||- (hyphen)||itemization|
|– (U+2013, en-dash)||- (hyphen), -- (two hyphens)||range of values (500–1 BC), oppositions (Greco–Persian wars)|
|— (U+2014, em-dash)||- (hyphen), --- (three hyphens)||attribution of a quote source|
|− (U+2212, minus)||- (hyphen)||subtraction, negative values (−20% training time)|
|× (U+00D7, times)||x (X)||multiplication|
|“ (U+201C)||" (programmer's quote)||start of a quotation|
|” (U+201D)||" (programmer's quote)||end of a quotation|
|‘ (U+2018)||' (apostrophe)||start of a quotation inside a quotation|
|’ (U+2019)||' (apostrophe)||end of a quotation inside a quotation|
Use the ordinary hyphen or hyphen-minus (-) for:
- compounds (Greco-Bactrian kingdom);
- negations (non-starter);
- vowel separation (de-escalate);
- to distinguish between varied meanings.
For more examples, see https://www.lexico.com/grammar/hyphen