Version 76 (modified by Nescio, 4 years ago) ( diff )

eu style guide

For <SpecificName> strings, see wiki:SpecificNames.

This guide provides some ground rules to write user-facing texts for 0 A.D.

Orthography

English spelling

Use American English spelling.

American British
analyze analyse
archeology archaeology
armor armour
artifact artefact
center centre
civilization * civilisation *
counterclockwise anticlockwise
defense defence
dialog dialogue
fertilizer * fertiliser *
gray grey
itemize * itemise *
maneuver manoeuvre
plow plough
traveler traveller
  • 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.
  • Check what you type: e.g. the verb to pronounce is always spelled with ou, but the noun pronunciation is spelled with only u.
  • If unsure about the correct spelling, consult a dictionary, e.g. https://www.lexico.com/

Calender years

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.

good bad
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.

Dynastic factions

singular: plural: adjective:
founder of dynastymembers of dynastybelonging to dynasty
Achaemenes Achaemenids Achaemenid
Maurya Mauryas Mauryan
Ptolemy Ptolemies Ptolemaic
Seleucus Seleucids Seleucid

Greek and Latin

Greek words and proper names are Latinized everywhere, except in the specific name.

good bad
Aeschylus Aiskhulos
Darius Dareios
Seleucus I Seleukos A'
Thucydides Thoukudidēs

Also, use the English form if there is one.

good bad
Alexander the Great Alexander Magnus, Alexandros ho Megas
Athens Athenae, Athenai
Homer Homerus, Homēros
Livy Livius
Mark Antony Marcus Antonius
Ovid Ovidius
Ptolemy Ptolemaeus, Ptolemaios
Virgil Vergilius
Cataphract Kataphraktos
Hoplite Hoplitēs
Penteconter Pentercontor, Pentēkontoros
Theatre Theatrum, Theatron
Trireme Triremis, Triērēs

Terminology

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.

Actions

good bad
build (structures) construct, make
collect (treasures) gather
construct (ships, siege weapons) build, produce, train
gather (resources) collect, get
research (technologies)
train (human units) build, construct, recruit, produce

Cursor vs Mouse

Mind the difference between the cursor (virtual) and the mouse (physical).

GUI

good bad
icon image, picture, portrait, sprite, thumbnail
window dialog(ue)

Stats

code good bad
Armour/Hack hack armor hack armour
Attack/Capture/Capture capture attack strength capture rate, capture vale
Attack/Capture/MaxRange capture attack range capture range
Attack/Capture/RepeatTime capture attack speed¹ capture rate, capture time
Attack/Melee/Damage/Crush melee attack crush damage crush, crush attack, crush strength
Attack/Melee/MaxRange attack range range, melee range
Attack/Melee/RepeatTime melee attack speed¹ melee attack repeat time
Attack/Ranged/ElevationBonus elevation bonus
Attack/Ranged/MinRange minimum attack range min attack range, minimum range
Attack/Ranged/RepeatTime ranged attack speed¹ ranged attack repeat time
Builder/Rate build rate builder rate, building rate
Capturable/CapturePoints capture points
Cost/BuildTime structures
ships, siege
animals
other units
build time
construction time
breeding time
training time
building time, production time, recruitment time
Cost/Population population cost
Cost/PopulationBonus population bonus
Cost/Resources/food food cost
Cost/Resources/wood wood cost timber cost
Cost/Resources/stone stone cost
Cost/Resources/metal metal cost iron cost
GarrisonHolder/Max garrison capacity
Heal/HP healing strength HP, heal value
Heal/Range healing range heal range
Heal/Rate healing time heal rate, healing speed
Health/Max health health points, hitpoints, HP
Health/RegenRate health regeneration rate regeneration, regen rate, regen speed
Loot/xp grantexperience loot
Looter/xp gainexperience loot
ProductionQueue/TechCostMultiplier/foodtechnologies requirefood
Promotion/RequiredXp promotion experience
ResourceGatherer/BaseSpeed gather speed gather rate, work speed
ResourceGatherer/Capacities/food food capacity carry capacity, foot load
ResourceGatherer/MaxDistance gather distance
ResourceGatherer/Rates/food.fish fish gather rate
ResourceGatherer/Rates/food.fruit fruit gather rate
ResourceGatherer/Rates/food.grain grain gather rate
ResourceGatherer/Rates/food.meat meat gather rate
ResourceGatherer/Rates/metal.ore metal gather rate
ResourceGatherer/Rates/metal.ruins
ResourceGatherer/Rates/stone.rock stone gather rate
ResourceGatherer/Rates/stone.ruins
ResourceGatherer/Rates/treasure
ResourceGatherer/Rates/wood.rock wood gather rate
ResourceGatherer/Rates/wood.ruins
ResourceTrickle/Interval resource trickle time
ResourceTrickle/Rates/food food trickle rate
UnitMotion/WalkSpeed walk speed movement speed, velocity
Vision/Range vision range line of sight, LOS, vision

Notes:
¹ 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).

Structures

good bad
Structure Building
Blacksmith Armoury, Arsenal, Forge, Smithy
Civic Center Civic Centre, Civil Center, Civil Centre
Dock Harbour, Pier, Port, Quay, Shipyard, Wharf
Farmstead Farmhouse, Granary, Mill
Fortress Castle, Citadel, Fort, Stronghold
House Dwelling, Home, Shack
Storehouse Drop Site, Mining Camp, Storage Pit

Units

good bad
Cavalry Cavalry Soldier, Horse, Horseman
Champion
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

Tooltips

In general, start with a capital, end each statement with a full stop, and capitalize classes.

Auras

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 affectedPlayers entry 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 requiredTechnology is set; specifies the genericName of the required technology; e.g.:
    • "pop_wonder" → (requires the “Glorious Expansion” technology)

The exact format depends on the aura type (see Auras.js):

type format examples
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

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.:

Templates

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)
  • Structures: <Tooltip>Construct Siege Engines and research Siege Engine technologies.</Tooltip> (workshop)
  • Units: <Tooltip>Garrison units for transport and to increase firepower.</Tooltip> (siege tower)

Typography

Capitalization

Use title case for:

  • button captions
  • entity classes
  • entity and technology names (generic and specific names)
  • key names
  • proper names

Never use full capitalization.

good bad
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 occassionally 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/en/grammar/punctuation

Unicode

We have a somewhat complete Unicode support, do not limit yourself to ASCII and learn how to use Unicode input in your system.

good bad usage
… (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 hyphenation, compounds (Greco-Bactrian kingdom), negations (non-starter), vowel separation (de-escalate), and to distinguish between varied meanings.

Note: See TracWiki for help on using the wiki.