OpenTTD and SDL 2.0

What do I like about the internet and free software? The idea that things can be sustainable and maintained, and be around for maybe even forever. I'm not excited about new developments in technology, business, etc. Rather, I just like finding software I like: Audacity, Mixxx, XMonad, MediaWiki, that's alive and always open to a deeper understanding for anyone who desires. Each program is its own world of knowledge. If you want to spend a weekend learning how video codecs are put together in VLC, you're free to do that. And I mean, who wouldn't want to be able to play OpenTTD 20 years from now?

Software is alive and constantly changes based on how it's being used. So if you like a project, you can help out by fixing things up and helping it along. I've found graphics kind of interesting lately, so I've been learning about various graphical systems on the web related to my job, as well as SDL, a cross-platform development library that handles graphics output. OpenTTD uses SDL 1.2: it's not a pressing concern, but this will be deprecated at some point in favor of the new SDL 2.0. So I went through the SDL 2 Migration Guide and did my best to apply these changes to OpenTTD. The pull request has been open for six months and has gone through lots of changes and feedback. I've learned about OpenTTD's pixel blitters and the process that graphics go through, from an idea in the code to animation on the screen.

I've done my best to understand the insides of OpenTTD. MaiZure made a nice overview of this program last August: Decoded: OpenTTD. What have I learned through all this? I already knew programming is complicated. But when you have a specific goal in mind, and you can visualize that goal and start piecing together the connections in your mind, it's within reach. And also, I can't imagine what the source code for Dwarf Fortress looks like.