Thriveopedia

From Thrive Developer Wiki
Jump to navigation Jump to search


The Thriveopedia is our in-game information store. It contains details about game concepts and, if opened from within a game in progress, the player's world and its organisms. Much of the information in the Thriveopedia is scraped directly from this wiki.

The pages from this wiki currently duplicated in the Thriveopedia are:

* - IMPORTANT! Pages can be excluded from appearing in the Thriveopedia by adding them to the Only Online Category

Style Guide

We should aim for a consistent style across our Thriveopedia pages. Please follow the guidelines below when writing or editing them. Items marked with IMPORTANT! are mandatory, otherwise the wiki update script will fail (see #Updating In-Game Thriveopedia).

General

If you want to use any invalid formatting, e.g. for info boxes that should not be scraped for the Thriveopedia, you can safely wrap the content which uses it in a <div> tag and the script will ignore it.

  • Strive for clarity and simplicity in sentence structure and vocabulary. The aim of the Thriveopedia is not to throw everything at the reader and hope they know their biochemistry, but to help them understand in-game concepts they may be struggling with and link them to the real world.
  • IMPORTANT! Avoid subheadings and images, as these won't be picked up by the Thriveopedia update script.
  • IMPORTANT! Avoid writing out equations in paragraph text. We hope to have a system for prettified equations in future, but for now, they don't look good and the wiki parsing script is likely to run into trouble with them.
  • In general, pages should start with a simple, single-clause, declarative sentence.
  • Check all spellings (using en-US). MediaWiki doesn't do this by default, so you may need to write pages in a word processor and copy-paste here.
  • Bullet points in lists should be terminated with a full stop.
  • Use hyphens (-) for hyphenated words, use en-dashes surrounded by spaces ( – ) for clause breaks in sentences.
  • Stage names should be capitalised, e.g. 'Microbe Stage'.
  • Prefer 'mutation point(s)' over 'Mutation Point(s)' or 'MP', except in info boxes which should only use 'MP'.
  • Numeric stats should be in bold and should signed, e.g. +0.5% or -10. For zero, use +0.
  • Prefer 'cell' to 'microbe'.
  • IMPORTANT! If bold text comes before any specific bold text that's parsed in the updating script, such as compound names, the two instances of bold text must be separated. For instance, the markdown for +2 ATP atp should be the following.
'''+2''' '''ATP''' {{CompoundIcon|image=ATPIcon.png|internalName=atp}}
  • IMPORTANT! Outside of info boxes, organelle names should always be bold, in title case, and should link to the page for that organelle, e.g. Mitochondrion. They can be puralised, e.g. Mitochondria.
  • Outside of info boxes, process names should always be bold, in title case, and use the full name for the process, e.g. Cytoplasm Glycolysis and Glycolysis are distinct processes.
  • IMPORTANT! Outside of info boxes, compound names should always be bold, in title case, and should always be followed by that compound's icon, e.g. Glucose glucose. Use the following markdown to create the icon.
{{CompoundIcon|image=GlucoseIcon.png|internalName=glucose}}
  • Outside of info boxes, enzyme and membrane names should always be bold and in title case, e.g. Chitin or Double Membrane. Membranes can be pluralised, e.g. Double Membranes.
  • When creating process equations, compound names should be in bold with an icon, but symbols should not be bold. Use → to symbolise conversion and + for combinations, including environmental factors. For example, Glucose glucose + Oxygen oxygenATP atp.
  • IMPORTANT! Links to external sites must be in the whitelist in the wiki updating script to be copied to the in-game Thriveopedia, otherwise they’ll be ignored. Currently the only valid external links are Wikipedia links and anything in the Revolutionary Games domain. If you want to add a different link, ask a programmer to add its root domain to the whitelist.

Organelle Pages

  • Always have these sections only: Requirements, Processes, Modifications, Effects, Upgrades, Strategy, Scientific Background.
  • In Processes, each process should a "subheading" consisting of a bold name, colon and equation on one line, followed by paragraph(s) of description below.
  • In Strategy, use second person (e.g. 'you', 'your') and use 'we' when speaking from the point of view of Revolutionary Games, e.g. when making suggestions for strategic options.
  • In Scientific Background, keep descriptions general and avoid descriptions which require previous knowledge of biochemistry outside of that you can find elsewhere in the game. Use 'we' when describing why game design decisions were made that might differ from real life.
  • Prefer imperative mood when describing instructions, e.g. 'do this'.
  • To get the organelle model for the info box, do the following: view the model in the in-game art gallery from above at max zoom, screenshot at 1920x1080 resolution, crop to a 756x756 centred square at 96 dpi.

Updating In-Game Thriveopedia

The game does not fetch page content at runtime, but instead requires a developer to periodically run the wiki updating script to add recent changes to the game files. To do so, run the following command from the root of the Thrive repo:

dotnet run --project Scripts wiki

This performs the following actions:

  1. Fetches HTML from the pages in the above list.
  2. Converts the main article content from each page into Godot-compatible BBCode.
  3. Generates a JSON file defining the structure of each page, including translation keys for heading and body text.
  4. Runs the localisation update script to add these keys to translation files.
  5. Inserts the original page content for each key into the English translation file.

The script assumes some aspects of the HTML page structure and will ignore content that doesn't conform to the points marked with an asterisk in the #Style Guide, perhaps even failing or producing nonsense output in the process.