Category Archives: OpenTTD

The new year is a great big fish!

Happy 2020 everyone!

This post is going to be long, and a bit of everything: I want to talk about some recent releases, what I’ll be working on over the next year, and talk a bit about the design philosophy behind the NewGRFs and other content I’m producing at the moment.

First, though, I’d really like to thank everyone who has supported me on Patreon over the last 18 months. It’s been a bit of a rough year and I haven’t done as much with Patreon as I’d have liked, but the support has paid a few bills, and otherwise been a guilt-free hobby fund which has been an enormous help with staying motivated and creative. If you like my work and want to support development this year, please do consider becoming a patron – just a few dollars a month really means a lot! Patreon will also be a good way to keep in touch with where I’m up to with my projects – I’m committing now to making at least one post a week this year.

There are five major projects I’m planning to complete or make major progress on in 2020.
Continue reading

Hello (again), World!

Hi! Welcome back to the blog! A lot has changed, but a lot has come ’round again.

The last couple of years I haven’t done much with OpenTTD. I’ve been busy with university, dabbling in local politics, and generally making a nuisance of myself. But a few weeks ago, I was in my university’s architecture department, and found myself looking at drawings of isometric cubes. “This feels familiar”, I thought…

The fact is, Transport Tycoon and OpenTTD are very special games. For those of us who grew up playing them, the satisfaction and nostalgia of the gameplay is undeniable. For those who enjoy creating and customisation, the scope of possibilities in NewGRF, NoAI, and gamescripts is massive. And for new players, it’s a game that’s mature, cross-platform, lightweight, and free.

I’m hooked. I’m back.
Continue reading

Pineapple Trains v1.3

1.3 is now available on Bananas, the OpenTTD in-game content service.

This update is mostly about EMUs; additions and adjustments.

New vehicles:
muupdate– The Corvine Interurban has been added as a very early electric locomotive with passenger capacity.
– The Unity Thunder has been introduced in 2008 with similar stats to the old VFT.

Vehicle adjustments:
– The Manley Express had an incorrect top speed due to a typo, so it’s been bumped up by 8km/h.
– The VFT is now faster and more powerful (and more expensive).
– The VFT, Turbo, and Thunder now have the “tilt” flag set (this was supposed to be set before but wasn’t); these trains should reach top speed more easily now.
– The Millenium X2001 has had a capacity increase, but now has a malus to cargo payment decay so it won’t pay as well on long-distance routes. This will make it more useful
for its intended use – short-distance people-mover (eg between a city and an airport).

Other changes:
– A parameter to disable the variable running costs has been added.
– The default setting for the passenger car model parameter has been changed to “single vehicle with random special vehicles”.

Because of these parameter changes, this release is marked as incompatible with earlier versions – you’ll have to start a new game.

Welcome to my dome-shaped… dome…

In the forbidden zone… a zone which is – yes! – forbidden to you!

compare_the_domeIt’s interesting to compare this new dome car to the 8bpp original 10cc sprite I drew a couple of years ago. Stylistically, it’s still very similar. I don’t think it’s lost that “TTD feeling” at all.

In slightly more ridiculous wagon news:

Yeti DudesThis is a “YETI dude” from the so-called industry set by V453000. Both the dome cars and the YETI cargo, along with one new loco and a few fixes / new features, will be in the next update of Pineapple Trains.


Many strategy-game players (and designers) seem to believe that maximum efficiency is the default state; if you don’t have 100% ratings for everything, all the time, it means your strategy – or the game mechanic – is defective. This is certainly the case in OpenTTD, and is something I try to subvert when I can. The Pineapple Trains, for example, are fast but underpowered, meaning a heavy train might take half its route to reach its nominal top speed (if it reaches it at all), rather than hitting top speed before it’s out of the station as more “realistic” train sets do.

With that said, I am hesitantly adding a little more power to the roster in the next update to Pineapple Trains. The update will include five new locomotives, bringing the total count up to 20. Included are a third “Stanley” steamer – a large-boilered 2-8-0; two low-speed, high-power electrics; and the return of a TT classic:
turbosThis latest incarnation of the Turbo is a DMU, with passenger capacity, but you can still use it to haul coal if you really want to. 🙂

Look out for the Pineapple Trains “Power!” update, coming to the in-game content system, Bananananas, in the next couple of weeks! In the meantime, you can find the forum thread for the set here. I should think about resurrecting the wiki, too…

A Matter of Perspective

Transport Tycoon’s vehicle sprites are, as I’m sure we all know, not strictly dimensionally accurate.  In order to make his life easier, with a 2:1 dimetric projection and a movement system based on whole pixels and powers of 2, Chris Sawyer decided vehicles displayed in diagonal directions should have sides 0.5x the length of vehicles displayed in the horizontal direction, instead of the mathematically correct ≈0.72x.


This is unfortunate for us latter-day artists who want to draw something “realistic” (or, worse yet, use 3d rendering), but there is nothing we can do about it (at least for trains and road vehicles, which need to be chainable) *cough cough*, and it is at least somewhat understandable from a technical point of view.  However, there’s another TTD vehicle graphic anomaly which is avoidable, nonsensical, and ugly, and which we persist in recreating:

Chart of bad diagonal heights

On the left are TTD original sprites and OpenGFX; on the right are sprites from various 3rd party train sets – I hope no artists feel I’m singling them out, because my point is to illustrate that we all do it.  And what we all do is make our diagonal sprites smaller in height, by one or two pixels, than our horizontal sprites.

There is no geometric reason for this.  It’s a pain in the backside to draw, because you have to convert 8px of vertical information into 7px.  It makes the diagonal sprites look even smaller compared the horizontals, in addition to the excessive shortening in length.  The only reason we do it is because we’ve always done it.

Therefore, among the many TTD graphic conventions I’m abandoning for 10CC and other future work, I am no longer reducing the height of my diagonal vehicle sprites.  The resultant “full height” diagonals are, in my opinion, much nicer to look at.  They’re also a lot easier and more pleasant to draw. 🙂

F-Units with lightweight carriages

Planes and Ranges

OpenTTD 1.2.0 and the most recent version of av8 have introduced a new property for aircraft in Transport Tycoon; range. Range is implemented in a relatively simple way: it limits the maximum distance between airports in an aircraft’s orders. An “out of range” order will result in the plane refusing to move from its hangar or loading pad.


OpenTTD 1.2.0 also introduces monthly infrastructure maintenance costs, including very high (default) costs for owning airports. Both of these new features are attempts at addressing the perceived imbalance of aircraft in OpenTTD. Aircraft carry large numbers of passengers, very fast, across very long distances with no need for rails or roads to be built in between, and are seen as “money printing machines”. Many multiplayer games ban them altogether.

High infrastructure maintenance costs are not a very good solution, in my opinion, and av8 includes a parameter to reduce them. The specific problem with the air game is that building two airports a long way apart and spamming large aircraft between them invariably earns a lot of money, but infrastructure maintenance costs penalises all aircraft use equally; airports a long way apart cost the same to operate as airports close together, and airports used by one aircraft cost the same as airports used by fifty. The net effect is that previously marginally profitable small aircraft on short routes are no longer viable, while the “money printing” long distance routes are only trivially affected. The air game becomes even less balanced and interesting than it was before.

Range, on the other hand, is a worthwhile addition to the air game, although – if implemented “realistically” – it does nothing to address the problem of spamming large aircraft over long distances, as the largest aircraft tend to also have the longest range. What range does add is a more realistic simulation of the early period of aviation, where aircraft are usable in short hops only. It means as aircraft develop and ranges increase, players will put some thought into redesigning their networks to make use of the greater range, whereas previously the only differentiation between aircraft was capacity and speed, and slow planes were simply replaced with faster and larger ones.

I’ve had a few requests on the forum for a parameter to disable the range property, but on consideration I’ve decided not to do that. The range property is interesting and adds at least a little depth to the gameplay. Allowing players to disable the range of planes makes no more sense to me than allowing them to disable the horsepower of trains or the speed of ships. You’ll all just have to get used to it.

I’ll leave you with one last thought about aircraft balancing. If you, the players and developers of OpenTTD, don’t like how a particular mechanic plays, stop playing with it. We should not be putting our efforts into balancing super-jumbos flying from corner to corner of a 2048* map, because that gameplay isn’t interesting. Instead, we should try and make smaller aircraft, shorter routes and smaller maps more interesting to players.