Unnamed Train Game

This is a work in progress.

Please send any and all suggestions by email to traingame [at] narc.ro.

Git repo: https://github.com/narc0tiq/Unnamed-Train-Game

In-depth pages

 * Logic
 * Classes
 * Code Style
 * Achievements
 * Cargo Types
 * Industry Types
 * Wagon Types


 * Networking

Name suggestions
So far, we have:
 * All Aboard (too passenger-centric?)
 * The Iron Trail
 * Transit Authority
 * The Train Company (it's bland, but it works)
 * The Golden Spike
 * The Open Rail
 * Supply and Demand: The Transport Authority
 * Open Transport?

If you get any REALLY GOOD ideas, feel free to email them, but otherwise we're keeping to this list for now.

Payments/License

 * Currently thinking: open-source, charging money to buy the game. Idea being: you can buy the game for $5/10/15 (for alpha/beta/gold) and you can download the source code freely whether you've bought it or not.
 * Not sure about license. GPL is interesting, but also mildly problematic. BSD license? MPL?
 * Definitely no copy protection ever (unless built-in, as in Steam)

Appearance

 * tile-based, as openttd. https://github.com/narc0tiq/Unnamed-Train-Game/raw/master/test_tiles.png
 * hexagonal grid? http://img.narc.ro/traingame/hextiles.png -- not hextiles.

AI

 * There will be a great need for a clever train AI that decides where, for instance, a maintenance train needs to go. Or an emergency train that needs to pull away a stuck one.
 * Likewise, what about AI companies? At most, at this point, I would go with a pre-existing, scenario'ed AI company with static rails and schedules.

Behaviour

 * does not work as in openttd: stuff doesn't just get delivered to a station and you take it to another station that accepts it -- instead, you take contracts for periodic deliveries.
 * you will be buying engines (and potentially hiring drivers? could be kinda crap) and assigning them work orders along the lines of: take cars from iron ore mine alpha and coal mine beta and deliver cars to sorting yard gamma.
 * one game year per hour for normal speed.
 * time dilation/compression: paused, 0.5x, 1x, 2x, 4x, 8x.
 * Profiles implemented as companies (including all assorted data), which remain the same in every game you play.
 * New players get offered nice contracts when the map is fresh (first year or two). In multiplayer, this would be the first year or two of joining.
 * Class 1 railroads -- running from off-map, through to a pre-designated interchange, then to off-map again.
 * track sharing
 * warehousing (including pre-existing warehouses as industries)

Designations

 * designate tracks as being parts of a classification yard, or passing sidings or yard areas, etc.
 * sorting/classification yards need some clever logic. Come back to this later.
 * industry-based designations of loading/unloading areas, loaders/unloaders, etc.
 * train yards for storing idle engines and wagons, with repair/maintenance facilities.
 * fuel points

Fuel

 * contracting for fuel -- if fuel-producing industries are available, you can contract to buy some cheaper than the default imported rate.
 * electric? How far do we go with it, electric poles needed or just insta-transfer?

Trackside

 * signalling must be researched with great care: signalling methods, auxiliary systems.
 * speaking of aux systems, catenaries? Third rail?
 * track speed limits!

Maintenance

 * all company-owned tiles cost a certain amount of land maintenance (not a high cost, but higher near towns)
 * all rolling stock has ages and requires maintenance, which is time-consuming. Insufficient maintenance will lead to the rolling stock developing problems, e.g. hotboxes, engine failure, wheel warping. Damaged rolling stock, particularly engines, may need to be pulled away by another engine assigned to "emergency duty". (something like DF labor preferences?)
 * rail maintenance? Rails have an age, and when old, will have a small chance of derailment, as well as a severe speed restriction. Derailed trains need to be cleared by a maintenance train?
 * maintenance trains? Running down the rails to an accident site or keeping tracks maintained/replacing where needed.

Passengers

 * passenger services? Those obviously can't work the way cargo runs do. Make stations in towns and set schedules and fares? How do you find good routes (i.e. not already efficiently covered by other transport)? Is mail like pax? Do we even want to consider mail at all?

Rolling Stock

 * rolling stock is bought from a pool of available stock and can be modified for special purposes either in your own loco yards or when purchasing.
 * cars (wagons) are filled by producing industries and, when filled, have a "time to deliver", defined by the contract.
 * renting rolling stock from an off-map railroad

World

 * natural disasters, e.g. trees falling on track, tracks getting washed away.
 * Similarly, weather (snow-covered tracks need a plough to go through to make them usable, rain makes things slow and forces trains to use sand, etc).
 * The weather and disasters engine will be nicknamed FRED (Frequent Rail Editor and Destroyer) -- because that's what it's gonna be doing.

Fluff

 * CEO and staff changing once in a while

Code-wise
EzTarget_UK will be helping out with writing the pretty isometric landscape stuffs.

The plan at the moment is to have a base level for the code - Windows XP SP3 and DirectX 9.

The base game engine will be written in C++ for speed and prettiness (ha!). The engine, however, also features a LUA interpreter, which strongly suggests that most actual game features be written in Lua to allow for high moddability.