4 ms·
ScummVM is an outstanding project. Originally an interpreter for the LucasArts SCUMM engine games, it has now seemingly become effectively a centralised home fo
by hlandau 5y ago
ScummVM is an outstanding project. Originally an interpreter for the LucasArts SCUMM engine games, it has now seemingly become effectively a centralised home for assorted open source game engine reimplementations.
I sometimes like to say that the Linux kernel is the world's largest collection of open source drivers, with a decent kernel attached; ScummVM is like that for old video game engines.
Really, this is an incredibly valuable thing not just in practical terms for enabling people to play these games on different systems and with open source code, but as I see it this is a significant culture and heritage preservation effort too. Having these open source reimplementations ensures these games remain available to future generations.
I also think it's pretty interesting to consider just how many of these engines had to be completely reverse engineered, and the time investment that implies. The effort to develop the engine in the first place probably took multiple people much effort when these games were first developed, and those programmers were paid; reverse engineering is harder and requires more effort and tenacity, and yet we still see a seeming overabundance of fully-functional complete reimplementations.
One of the things I find fascinating about this is how the original programmers effectively cause the creation of the subsequent project, and their design decisions determine how successful that project is. The reimplementation project is like a weird "echo" through history, echoing off the original engine, caused by it yet done by wholly separate people, who are reduced to piecing through the original binaries like some act of software archeology, yet are motivated to do so by the merits of the original game. In other words, suppose you wrote a random engine for a company many decades ago, complete with assorted warts, retrospectively questionable design decisions, and kludges that were ultimately put in just to ship on time. It must be pretty weird to find, decades later, that random hobbyists have rebuilt every piece of that architecture, painstakingly replicating every aspect of the original architecture, reproducing it as some verbatim gospel, even if it was something you barely put any thought into at the time.
- rolandog 5y agoBeautifully said! I liked your observation about future enthusiasts poring over code; it reminded me about Thom Holwerda's "WTF's/m" [0] metric for good code and bad code. I try to keep that in mind when writing code with documentation so that I don't end up outsmarting myself writing cryptic one-liners. [0]: https://www.osnews.com/story/19266/wtfsm/ https://www.osnews.com/story/19266/wtfsm/
- aasasd 5y ago> reproducing it as some verbatim gospel, even if it was something you barely put any thought into at the time ‘Bug compatibility’: https://en.wikipedia.org/wiki/Bug_compatibility https://en.wikipedia.org/wiki/Bug_compatibility
- sho_hn 5y agoI can only echo your enthusiasm and passion! I've been following and using ScummVM for nearly all of the two decades I've been involved in the open source community and it's been such a joy to see it grow and scale, and the quality of the conversations on IRC and in the forums. The territory it treads on is an amazing confluence of plain-neat hacking and the noble purpose of preserving these works for the future. What an outstanding pursuit in terms of what the engineering profession is all about - assembling the substrate culture and civilization transpire on. Cheers from the board of the KDE foundation. Incidentally we have a (25th) birthday coming up as well this month. :-)
- flatiron 5y ago> The effort to develop the engine in the first place probably took multiple people much effort when these games were first developed, and those programmers were paid; reverse engineering is harder and requires more effort and tenacity, and yet we still see a seeming overabundance of fully-functional complete reimplementations. The counter point to this is you are reimplementing the solution. The initial implementation was solving a problem. Which means it took a lot of tries before coming to the solution that you don’t have to deal with when reverse engineering
- mattlondon 5y agoI have found myself sometimes spending more time - and getting more enjoyment - out of reverse engineering a game.ornits data files than actually playing the game. It is enjoyable in its own right!