Patch Checklist

From OpenTTD
Jump to: navigation, search
HAL (Hardware Abstraction Layer)

Audio
Music
Graphic

Window System

Using the Window System
Colour codes that exist in OpenTTD
Adding a text box
Understanding the widget focus system

Settings

Add a setting
Add a squirrel function
Do a savegame BUMP

The Map / Scenario

Understanding the Dynamic Landscape Array
Understanding the SaveGame Handler
HOWTO - Create good Scenarios
HOWTO - Add New Town Name Generators

The actual simulation

Vehicles
Using Orders
Pathfinding
Ratings
Train Acceleration

Language and Strings

Format of langfiles
Using OpenTTD Strings
List of Special Strings

Multiplayer

The Core Interface

Starting a Server
Connecting to a Server
Using the list of LAN/Internet Games

The OpenTTD TCP Protocol
The OpenTTD UDP Protocol
HOWTO - Debug desyncs

Ingame Console

The Console Window
Using Console Scripting
HOWTO - Add Functions/Commands to the Console
HOWTO - Add Variables to the Console
HOWTO - Direct Variable Access using ICONSOLE_VAR_POINTER
OpenTTD Console Commands
OpenTTD Console Variables
Development History

Checklist for patches

  • Stability – keep it stable
    • No known bugs
    • No known network desyncs
    • Checked by other people
    • Checked in full length game
  • Complexity – keep it simple, straightforward, and easy to understand
    • Only one new feature per patch
    • Complex algorithms and tricks explained in comments
    • No unnecessary tricks
    • Adequately commented
    • Only change lang/english.txt, no other language files
  • Attitude – please be nice to the devs!
    • Remember, it was originally in ASM, changed to C, then changed to C++. There is a lot of work to be done with the language changes.
    • Remember this is 100% volunteer work. The devs do this in their free time.
  • Style – please stick with the coding style rules!
    • Strings only in english.txt
    • Functions
    • Variables
    • Enumerations / static consts
    • Control flow
    • Classes
    • Templates
    • Other rules
    • Documentation
    • Other tips

See also

Personal tools