ah great, yet another reason to make me feel old today! :) But seriously, 30 years old game and it still holds up really well. OpenTTD is one of those that I always have installed
Thanks for this. Generic links posted without context to HN with no other explanations (especially those which are likely to be quite well known to this audience) are often quite confusing.
What made OpenTTD a great success that it's playable out of the box. Most open source game remakes [0] are engine-only and you still need the graphics, arts, sound, and music assets to make it a 100%, and actual playable experience. OpenTTD started like that too but from the very beginning it was a goal to "detach" the game from the original as quickly as possible. It was released in 2004, the actual graphics replacement project started in 2007 and by 2009 100% of the sprites were finished so the original game files were not needed anymore [1]
And actually there are now 5 different basesets on top of the original TTD one [2]
It also made possible things like releasing the game on Steam and GOG.
That’s genuinely the first time I’ve heard it. Unfortunately I could never get TT midi working with my sound card. Sound effects played just fine, but I just couldn’t get midi audio working on TT.
I really don’t miss those days of trying dozens of different autoexec.bat / config.sys configurations for each and every game just to get the basics working.
My mother's favorite game was Sim City 3000, and that soundtrack is still one of the best and my favorites. Such a groovy Jazz with variety. I'd love to find other artists like Jerry Martin did that soundtrack, most smooth jazz is too cheesy for me.
I grew up on AdLibs and Soundblasters and I love FM synthesis. For a while I thought that I had just imprinted on the sound signature of the OPL3 chip. Now after crises and tragedies I see the core truth at the inside of reality: FM synthesis is just so good.
The OPL3 modulates frequencies really well!
Here’s the Transport Tycoon soundtrack as performed by an OPL3 chip. This is objectively the original-original soundtrack. Because this is what I grew up on.
(It’s cool how it was captured through the S/PDIF port of a SoundBlaster AWE32. It’s a nice little turn of commodity entertainment device market events that gave us that possibility, isn’t it?)
There are open-source libraries like AdPlug (https://adplug.github.io/) that offer really good OPL3 emulation. If you have the MIDI assets from the original game, it might be possible to get the original AdLib soundtrack working with OpenTTD!
I was about to ask if the proceeds of the Steam version go to the OS project, but I see it's free-to-play. I should get it that way, it's convenient and auto-updates and the like, and they will get good statistics from Steam that way.
But also I have a backlog of games I still need to finish, including ones that scratch a similar itch like Satisfactory and Factorio.
OpenRA – which is open source reimplementation of Red Alert, Dune 2000 and C&C Tiberian Dawn - has solved this by offering to fetch the shareware game and extracting the assets from there. Fully libre distributable assets would offer even better experience, but this is one pretty neat way to handle the seamless start.
(It's not a reimplementation, it's a different thing that is asset-compatible with the originals. The gameplay, the balance, the engine are different, and the name of OpenRA is not fairly claimed IMO.)
I would imagine OpenTTD also has a number of similar "rule tweaks". The OpenTTD engine AFAIK started as a direct reimplementation, but I think that too has evolved quite a bit.
IIRC there never was any kind of shareware version of TTD much less at any kind of stable URL that OpenTTD could automaticaly download. Also OpenTTD needed assets from particular version of TTD (different one than what I have as a boxed copy).
Ah, I actually meant in the more vague sense of «to use the open source version with the original graphics/sounds, you have to get those media files from the disk of the game you bought».
This is similar with how Debian handles Microsoft "core fonts" installation [1]. I.e. they don't redistribute, but automate the download from a publicly available source.
Most Linux distros do that. The AUR, for example, has packages for MS fonts, Apple fonts, and many others, all of which extract the fonts from public redistributable packages.
I think you're right - it encouraged sharing, but usually limited functionality (use) unless you knew the secret code "TIASP1814" - sorry scorched earth 1.2, you didn't give me a free upgrade 20 years ago, and I've been holding that grudge forever.
It was released as freeware back when by EA originally, which is what openRA relies on. Later the source was released under GPL[1] during the CNC remastered collection from EA.
I was curious how this worked without violating the copyright of the originals. I was imagining something akin to tracing over the original game assets and calling it a libre replacement, but it seems like they actually did it in a reasonable way:
>New art is being drawn in the style of the original game, using the original 8bpp palette. The graphics should be a similar but distinct version of the object in question - no graphics may be copied at all from the original. The new sprites do not have to be the same size as the original, but need to be similar so as to fit into the game as expected.
In the original Transport Tycoon (but not OpenTTD), if you would build a tunnel from one end of the map to the other, the amout of money to pay gets so large that it triggers a (signed) integer overflow. So you can start your campaign with billions of dollars!
The original TTD was super stable though. I remember once I was able to crash it by building a very tight loop for a train, that it crashed with its own tail. This was the only time I saw the red font with debugging info.
I don't think that was sarcasm, Chris Sawyer wrote most (all?) of his games in pure assembly since the 80ies. The outworldly quality of this feat is legendary. TTD, and also RCT and RCT 2 were incredibly stable games. I played them for months and months as a kid, and never encountered a crash.
This is meant as a compliment. The lower level the language, the easier is to make a mistake in it, leading to instability. The stability of the product, then, is a testament to the ability of its creator.
Chris have indeed written the game in Assembly, however, this is just one aspect of the truth. He actually used a kind of higher level generator or macro system for the game. But, still assembly, at the end of the day. Just not written by hand in Notepad, like how CS students do in class. Or was that just me?
Frankly, if two different people had written two similar games, and one had chosen assembler and the other python, I would assume the assembler game to have fewer bugs simply because the much higher skill level.
Most assemblers have higher-level features like macros built in to make it easier to write. Once you start building abstractions (as Chris surely would've done) it becomes more manageable, but of course, still more work than writing C.
Instead of talking about that, spare a thought for the awful x86 memory segmentation mode[1] --- now that sucked.
Ah! Now i remember. This was on the flooded tracks! So: tight train loop, and then flood tracks and then the game borked. Probably flooding came before train movement and it caused bad deref.
Windows Solitaire had this two. If you kept dealing without playing, once you'd spent over $32,768, you'd instantly be in the positive nearly that much.
Leisure Suit Larry in the Land of the Lounge Lizards on the Apple ][ let you bet negative amounts of money in the casino and make money by losing on purpose!
For those looking for something similar in the new version, in OpenTTD sandbox options are supported: https://wiki.openttd.org/en/Manual/Sandbox%20options . Not as fun as the easter egg but still practical. And to be fair, the original had cheats too.
I remember discovering something like this in the first (?) Sim City. I must have been like 10 years old at the time. For some reason I had built so many police stations that the upkeep (was it 100 per station) was so high my monthly losses overflowed to profits.
It is only in hindsight that I now understand what happened there.
In my headcanon it’s not a bug but a feature. Once you have that many police officers most of them have nothing to do but terrorize the civilian population with civil forfeiture to the benefit of the budget.
It's quite nice to see how technology has developed since then. A few years ago I wrote a wrapper around the openttd server to allow easier hosting (as well as putting it in a chroot) - now with docker/podman/... something like this is way more accessible. I've just created a mirror of the old repository on github, in case anybody is interested in that for historical reasons: https://github.com/bwachter/ttd_addons
https://github.com/bwachter/ttd_addons/blob/master/ttdconsol... is another example of progress - if I remember correctly at the time I did this inotify was in development outside the kernel tree. Nowadays solving this would be trivial with inotify on Linux - and other UNIX variants also mostly gained some form of file monitoring API.
It triggered my entrepreneurial journey as a kid, and one of the first "open world" experiences I had from games. I would spend weeks trying to figure out what the right strategy was for a specific map.
In many ways, an entrepreneur and VC today, I am still playing that same game, and as the technological landscapes changes, so do the strategies I get to dream up.
I have posted this before, but I’ve been working on a wrapper for OpenTTD to turn it from a game to a (slightly!) more serious system for research/experimentation, especially using its AI system:
If you have 4 real cores, with 2 hyperthreads, the system reports 8 CPUs. But that's fake. Hyperthreads share most of their compute and register resources, so they only work well if a core is spending most of its time waiting. 2 hyperthreads both doing full compute will basically work at half speed each, which is close to what your graph is showing.
BTW, you can check on Linux with this command
LANG=C lscpu
and checking the Thread(s) per core value
I wish you would have given some concrete examples as I was curious what experiments are possible with your code in OpenTTD.
There was only one I could find: "exploring the performance of trAIns". I looked at the "trAIns" link and cannot understand what it does, other than being GPL licensed.
It's all very cryptic, without any explanations. To me that stands for "if you don't know already, you need not apply". Too bad.
I had access to a full copy of the original Transport Tycoon Deluxe on PC, and I remember finding myself to be the most creative player in that game, and I recall spending hours and hours and days and nights on it. I left it at one point when I started going to college, and after a long time again, I discovered OpenTTD.
I was very thrilled to find that this game has been ported to an open source project and also has an online system and community of players. I immediately signed up on a popular forum of players and played it competitively, discovered a lot of optimizations and had my fun again all the way. It was absolutely a refresh to see this game. I will end up teaching it to my kids when they come up to the right age again.
I bought TT after school and can clearly remember reading the manual on the bus home, top deck, at the front, on the alteincham to flixton bus. It’s funny how 30 years on, some memories stick in your head.
Beautiful game. I played the TT and TTD demo for so many hours because it had the best feature of the game: trains. OpenTTD was great fun and I thoroughly enjoyed myself for hours with it and the original sprites (many years had passed and I had money). They’ve since replaced all the graphics. Evergreen game and the modifications they’ve made to it have really done well gameplay wise.
I love this game and I also spent quite some time playing original TTD as kid.
However I do wonder if there are any good modern contenders to it. My kids play games on an Android tablet. Even though OpenTTD runs there it doesn't feel native to the touch UI and overall looses the appeal to modern games (which are regrettably 99% crap but there are real gems too).
Long story short, anyone can recommend a high-quality pleasant-to-play economic strategy game for Android? There are tons of games roughly speaking "cats-n-soup alike" which look nice but lack the essence: it's just "use money to upgrade your economy and get more money", a one-dimensional loop without a need for strategy.
Factorio with elevated rails doesn't really match the "pleasant-to-play economic strategy game" thing but has been scratching my making-train-networks itch. I think OpenTTD is still overall the top of this field though.
The original (not even Deluxe version) was one of my all time favourite DOS games.
For a several years (before I had kids), it used to be a Christmas tradition that I replay Transport Tycoon, albeit on modern hardware via this OpenTTD project.
As someone who isn’t personally the biggest fan of this time of year, it did make the Christmas period much more bearable.
Back when (about ~15 years ago now?), OpenTTD added a custom AI player API. I found out about that right about when we had an "AI" class, and since it was pretty freeform I suggested that the teams build competing bots for OpenTTD. It was great, I don't think any of the players were particularly successful and some of them "cheated" by not deferring their heavy processes, locking up the server when it started up to pre-calculate routes and strategies. But it was an interesting endeavour in LUA, optimizing, path calculations, that kinda thing.
I believe at the time they had like a competition or open entry program to select a few community-created bots to include into the base game. I don't believe I ever mentioned our school thing in their community forums, I probably should have.
So many relaxed hours of my life since I was a kid went into RCT, RCT II, OpenRCT, TTD and especially OpenTTD. Thank you, Chris Sawyer and the OpenRCT and OpenTTD teams.
Fun fact - the OpenTTD project supports building for the web browser via Emscripten. I couldn't find an officially hosted version of it, so I've been using my own at https://openttd.pranay.codes. Pretty usable out of the box, but there are some issues with audio. I've been meaning to add features like cloud saves as well, because right now your games are dependent on the whims of browser storage.
I used to play this a lot with a friend. We made a map called “German Reunification” which simulates the separation until 1989 and subsequent reunification. The map is made from real elevation data and city geocoordinates. https://wiki.openttd.org/en/Community/Scenarios/Real%20World...
There's a thin row of tiles on the edge where water will come flowing in, and roundabout 1989-1990 it will flood (=remove) the lighthouses that form the border.
I've been playing OpenTTD on and off for about... oh, about 15 years.
Still an amazing way of preserving Chris Sawyer's genius and naturally expanding on it in a way that isn't insulting to the original, but also keeping it relevant.
114 comments
[ 4.3 ms ] story [ 194 ms ] threadand they even added multiplayer, different AI competitors etc.
i still play it every now and again
And actually there are now 5 different basesets on top of the original TTD one [2]
It also made possible things like releasing the game on Steam and GOG.
0, https://github.com/radek-sprta/awesome-game-remakes
1, https://wiki.openttd.org/en/Archive/Community/Graphics%20Rep...
2, https://bananas.openttd.org/package/base-graphics
https://youtu.be/l_bTTUihfx0?t=20
Dumbass comment lmao
Original soundtrack recorded with live instruments. Grooviest thing I've heard in years.
I really don’t miss those days of trying dozens of different autoexec.bat / config.sys configurations for each and every game just to get the basics working.
Like I vividly remember Sim City 3000 music as well, but that game was more chill, like a sunny winter day.
TTD was like a spring day where you plan you call the pinkertons to bust some unions while smoking a cigar.
You can get more of his music on his web site Boom Bam Boom:
https://boombamboom.com/
The OPL3 modulates frequencies really well!
Here’s the Transport Tycoon soundtrack as performed by an OPL3 chip. This is objectively the original-original soundtrack. Because this is what I grew up on.
https://www.tt-forums.net/viewtopic.php?t=56778
(It’s cool how it was captured through the S/PDIF port of a SoundBlaster AWE32. It’s a nice little turn of commodity entertainment device market events that gave us that possibility, isn’t it?)
But also I have a backlog of games I still need to finish, including ones that scratch a similar itch like Satisfactory and Factorio.
[1] https://tracker.debian.org/pkg/msttcorefonts
[1]https://github.com/electronicarts/CnC_Remastered_Collection/...
https://www.openra.net/download/
https://www.ea.com/games/command-and-conquer/command-and-con...
>New art is being drawn in the style of the original game, using the original 8bpp palette. The graphics should be a similar but distinct version of the object in question - no graphics may be copied at all from the original. The new sprites do not have to be the same size as the original, but need to be similar so as to fit into the game as expected.
https://wiki.openttd.org/en/Archive/Community/Graphics%20Rep...
Chris have indeed written the game in Assembly, however, this is just one aspect of the truth. He actually used a kind of higher level generator or macro system for the game. But, still assembly, at the end of the day. Just not written by hand in Notepad, like how CS students do in class. Or was that just me?
I program in Python.
Not that you'd want to, given that OpenTTD has networked features and you'd want something that makes it easy to validate/isolate remote payloads.
Instead of talking about that, spare a thought for the awful x86 memory segmentation mode[1] --- now that sucked.
[1] https://en.wikipedia.org/wiki/X86_memory_segmentation
It is only in hindsight that I now understand what happened there.
https://github.com/bwachter/ttd_addons/blob/master/ttdconsol... is another example of progress - if I remember correctly at the time I did this inotify was in development outside the kernel tree. Nowadays solving this would be trivial with inotify on Linux - and other UNIX variants also mostly gained some form of file monitoring API.
It triggered my entrepreneurial journey as a kid, and one of the first "open world" experiences I had from games. I would spend weeks trying to figure out what the right strategy was for a specific map.
In many ways, an entrepreneur and VC today, I am still playing that same game, and as the technological landscapes changes, so do the strategies I get to dream up.
https://github.com/michalc/OpenTTDLab
(Feels a bit soon to repost somehow…)
If you have 4 real cores, with 2 hyperthreads, the system reports 8 CPUs. But that's fake. Hyperthreads share most of their compute and register resources, so they only work well if a core is spending most of its time waiting. 2 hyperthreads both doing full compute will basically work at half speed each, which is close to what your graph is showing.
BTW, you can check on Linux with this command LANG=C lscpu and checking the Thread(s) per core value
But I since found that 4 are “efficiency” cores, so that could be the reason for the poor scaling(?)
Some of the addons, like the FIRS industrial economy are quite complex and it can be tricky to assess or estimate optimal routes/investment.
There was only one I could find: "exploring the performance of trAIns". I looked at the "trAIns" link and cannot understand what it does, other than being GPL licensed.
It's all very cryptic, without any explanations. To me that stands for "if you don't know already, you need not apply". Too bad.
When I discovered OpenTTD as an adult, I was absolutely thrilled.
I sunk god knows how many hours into it. And it even builds and runs on ppc64le!
I was very thrilled to find that this game has been ported to an open source project and also has an online system and community of players. I immediately signed up on a popular forum of players and played it competitively, discovered a lot of optimizations and had my fun again all the way. It was absolutely a refresh to see this game. I will end up teaching it to my kids when they come up to the right age again.
A timeless legend of a game, this is.
However I do wonder if there are any good modern contenders to it. My kids play games on an Android tablet. Even though OpenTTD runs there it doesn't feel native to the touch UI and overall looses the appeal to modern games (which are regrettably 99% crap but there are real gems too).
Long story short, anyone can recommend a high-quality pleasant-to-play economic strategy game for Android? There are tons of games roughly speaking "cats-n-soup alike" which look nice but lack the essence: it's just "use money to upgrade your economy and get more money", a one-dimensional loop without a need for strategy.
For a several years (before I had kids), it used to be a Christmas tradition that I replay Transport Tycoon, albeit on modern hardware via this OpenTTD project.
As someone who isn’t personally the biggest fan of this time of year, it did make the Christmas period much more bearable.
(Also, has anyone tried to add some kind of multiplayer to it yet ?)
I believe at the time they had like a competition or open entry program to select a few community-created bots to include into the base game. I don't believe I ever mentioned our school thing in their community forums, I probably should have.
TL;DR OpenTTD for education purposes!
Still an amazing way of preserving Chris Sawyer's genius and naturally expanding on it in a way that isn't insulting to the original, but also keeping it relevant.