Linux Format

Open source gaming

Like the Revenant in Doom II, Jonni Bidwell brings the corpses of lost video games back to life with a lil’ bit of FOSS magic

-

Games never die, their engines are turned over to open source and they live on for perpetuity! How the FOSS community is enhancing games long left for dead.

None of us at Linux Format are as young as we used to be. But our considerab­le collective age means we remember some fantastic games.

Some of these go way back: Exile, Elite, Repton, The Last Ninja on the BBC model B, Uridium and Maniac Mansion on the C64. Most of us spent most of our youth playing Amiga games, Monkey Island taught us how to swordfight, and who could forget those Bitmap Brothers classics: Xenon2, Speedball2 and The Chaos Engine? Just talking about them makes us want to fire up an emulator and relive those halcyon days.

But emulation can be clunky, and getting hold of ROMs and the like is tricky. Even playing early PC games through DOSBox can be troublesom­e. Thanks to the magic of open source though, we can do better. Many classic titles have had their game engines reverse engineered or revamped, so that the original game assets can be used seamlessly on a modern system. This can make for a completely authentic experience, or allow new features (better graphics, proper network play) to be added.

More importantl­y, it enables us oldies to show those young whippersna­ppers what gaming was like back in the day. Before the days of running around in a slick 3D environmen­t, chasing in-game purchases, and learning to swear in Russian by listening to in-game chatter.

The LucasArts adventure games have achieved legendary status. Its first graphical effort, 1987’s ManiacMans­ion, set a new standard for the genre. The game featured a bespoke scripting engine, imaginativ­ely titled Script Creation Utility for Maniac Mansion (SCUMM), which provided high-level routines for common game primitives: characters, locations, dialogues and inventory. This not only made coders’ lives easier, since they could work with humanreada­ble scripting commands rather than assembly, but also made the task of porting the games much easier, since this only required porting the engine to the new platform. The SCUMM scripts and game assets could more or less be used as is.

SCUMM came about because many of LucasArts’ programmer­s were originally mainframe1 programmer­s, and found it much easier (and faster) to compile code on those machines before porting it to the native platform. By writing clean and portable code for SCUMM, coders Ron Gilbert and Chip Morningsta­r afforded themselves the luxury of being able to write in a flexible scripting language that could be rapidly compiled for multiple platforms: the C64, Amiga, Atari, PC and Mac. SCUMM also made possible all kinds of things never before seen in adventure games: point ‘n’ click gameplay, multiple characters and background tasks/animations. It was arguably the first game engine, in the sense that it decoupled game assets and gameplay. Amazingly, with only modest modernisat­ions, SCUMM would go on to power a decade of adventure games. These included the MonkeyIsla­nd series, Loom, Day of the Tentacle, FullThrott­le, TheDig and more.

Now, picture yourself back in the early 2000s, and suddenly you want to relive those memories of playing Monkey Island 2: Le Chuck’ s Revenge, but without the wrist ache that came with swapping the 11 disks that housed the Amiga version. Well, that game had a DOS release so you could probably get it working in Windows XP, but no, even back then you were pretty militant about using Linux, so that won’t fly. DOSBox had just been released, but so had an ambitious piece of free software called ScummVM, which reimplemen­ted SCUMM natively, not just for one game, but for a whole bunch of them. Even in its infancy, this amazing software caused a stir amongst Linux gamers (all three of them), since it provided another avenue for Windows (and Mac) titles to be played on Linux.

ScummVM came about as a result of one Ludvig Strigeus’ desire to better understand adventure game engines, so that he could write his own. He started by reverse engineerin­g MonkeyIsla­nd2 and eventually came up with an interprete­r capable of playing the game. This would be the first version of ScummVM.

Meanwhile Vincent Hamm was independen­tly tackling SCUMM from a different angle, by investigat­ing the scant documentat­ion available online and investigat­ing the scripts inside ManiacMans­ion and Zak M cK rack en and the Alien Mind benders. The two combined their efforts and worked on ScummVM, somewhat haphazardl­y at first. However, interest in the project skyrockete­d when it was featured on Slashdot a popular thing of the time called a website, and a slew of developers wanted to join the party.

Initially, ScummVM was written in C and supported a handful of games: MonkeyIsla­nd2 (how the project began),Za kM cK rack en and the Alien Mind benders and Indiana Jones and the Last Crusade. The master source tree was stored on Strigeus’s machine and Hamm would contribute there. By 2002 the project had been rewritten in C++, which brought portabilit­y, and supported tens of SCUMM games, and even a nonSCUMM adventure: Simon the Sorcerer. This led to some naming controvers­y, but in the end the original name stuck.

Today, ScummVM supports hundreds of games and tens of engines: Sierra’s AGI and SCI interprete­rs, Coktel’s Gobliiins (sic) series, and Revolution Software’s Amiga classic Beneath a Steel Sky (which is available for

Lucasarts done good “SCUMM was arguably the first game engine, in the sense that it decoupled game assets and gameplay”

free on gog.com). New features (more bug fixes) are being added all the time, so check out the project’s GitHub at https://github.com/scummvm/scummvm.

In 2002 LucasArts sent a cease and desist letter to the ScummVM team, but in the end (the process took about four years) the two parties came to an agreement whereby the project could continue. After this, engine reimplemen­tation began to be recognised as a noninfring­ing activity, and further discussion­s with rights holders were largely positive. Revolution Software and Adventure Soft even provided source code to help support the engines used by their games. Two-thirds of the 25-year anniversar­y edition of the Myst trilogy are powered by ScummVM ( MystIII is powered by ResidualVM, which reimplemen­ts its Sprint engine, as well as GrimE, the successor to SCUMM used in The CurseofMon­keyIsland and GrimFandan­go). You can read more about ScummVM at www.pcgamer.com/ how-scummvm-is-keeping-adventure-games-aliveone-old-game-at-a-time.

As you might imagine, it’s generally illegal to redistribu­te assets from commercial titles. The box on page 47 goes into some more details, but suffice to say you’ll want to hold off downloadin­g anything from random websites. Back in July 2018 popular emulation sites LoveROMS and LoveRETRO found themselves on the receiving end of what’s likely to be a very expensive lawsuit from Nintendo. Prompted by these legal actions, the popular EmuParadis­e ( www.emuparadis­e.me) removed all download links from its site.

Many games are referred to as ‘abandonwar­e’, which refers to them no longer being sold or supported by their original manufactur­ers. This term doesn’t offer any legal protection­s, though: copyright holders may be pragmatic and choose to not worry about infringeme­nt, they may even offer titles for free if enough people ask nicely. Or they can be like Nintendo and have a whole page dedicated to how hard it will come down on you if you don’t respect its property ( www.nintendo.com/ corp/legal.jsp).

The spice must flow

For OpenRA, the re-implimenta­tion of the classic Commandand­Conquer (CnC) engine, the situation is more mellifluou­s. To celebrate the 12th anniversar­y of the original Commandand­Conquer (known in some circles as TiberianDa­wn) in 2007 EA released the original ISOs as freeware. To celebrate its next anniversar­y (and also the release of RedAlert3) in 2008 EA released the original RedAlert and TiberianSu­n ISOs as freeware. It no longer hosts these, but has stated that it’s happy for others to redistribu­te them. As a result, OpenRA can find and download all the required files (sans music and video cut scenes) to play these three titles if you don’t have the original install media.

In OpenRA parlance, the games the engine brings back to life are known as mods. The OpenRA project has embraced new packaging formats so you can download AppImages of the official mods straight from www.openra.net. These downloads come in two flavours: stable releases and playtests. The latter are previews featuring the latest engine developmen­ts, and so may not be as stable as the former.

Besides the official mods, a number of community offerings are available (see www.moddb.com/games/ openra/mods). Work is underway to decouple the OpenRA engine from the ‘official’ CnC mods that it powers, so that it can be used as a general-purpose real-time strategy engine. The project already provides utilities such as a map editor and a Source Developmen­t Kit (SDK) to help budding developers build the games of their war-like dreams. Readers may also remember the KrushKill‘n’Destroy games of the late 90s. Those readers may be thrilled to hear that work is underway to revive those post-nuclear war titles using the OpenRA engine.

Another related project is CnCNet, which has been around since 2009. They provide launchers that enable the CnC series (including all expansions and mods) to be played exactly as their fans remember, with the added bonus of internet play. Recently, it reimplemen­ted CnC’s DirectDraw renderer, in GDI (for newer versions of Windows) and OpenGL (for Wine players). CnCNet supports the titles released for free, as well as TiberianSu­n ( OpenRA is working on this one), RedAlert2 and Yuri’sRevenge. Linux packages (for Fedora, Debian, Ubuntu and even Arch and derivative­s) are available for the free CnC titles. These are just scripts that set up an appropriat­e Wine prefix and download the game files and the CnCNet launcher.

The other titles supported by CnCNet are only available through EA’s Origin platform as part of the Command&ConquerUlt­imateColle­ction (priced at £25), but getting Wine and Origin to play nice together can be tricky. You may be better off seeking out optical media for these, which the CnCNet launcher is more than happy to work with.

The original Westwood Online servers were transition­ed to the community-run, EA-sponsored, XWIS server in 2005, which is still alive today. The newer CnC titles ran on GameSpy servers that were shut down in 2014. This shutdown affected a huge number of titles, many of which moved to other networks. The CnC titles moved to the C&C:Online ( https://cnc-online.net), where they are alive and well today.

Till it be Morrow(ind)

Morrowind is the third installmen­t in Bethesda’s highly acclaimed ElderScrol­ls RPG series, launched in 2002. Its vast, open world was powered by the Gamebryo engine, which has been re-implemente­d by OpenMW.

Besides addressing long-standing bugs ( Morrowind received its last official patch in 2003), The engine adds new features and, of course, enables the game to be played natively in Linux. The original game assets are required, but that’s fine because you can get hold of a DRM-free copy of Morrowind (the full-priced Game of the Year edition) from gog.com for £13. It’s often on special offer too so add it to your wishlists if you’re short of coin.

OpenMW modernises the original game by being able to render distant terrain (increasing the draw distance on the original reduced performanc­e horribly), use TrueType fonts and works with all the multimedia formats supported by FFMPEG. Some third-party mods for the original Morrowind will work with OpenMW, but this isn’t a strict goal of the project at present. Many mods relied on bugs in the original engine or assumption­s about undocument­ed quirks.

OpenMW also comes with OpenMW-CS, which makes it possible for users to create their own assets: characters, maps, quests… the whole shebang. This enables ambitious users to form entire games based on OpenMW. Skilled 3D sculptors can use Blender to create models of dragons and dungeon-parapherna­lia, and use export them using the NIF (a proprietar­y format used by many other games) or OSG ( OpenMW’s own open format) plug-ins.

There’s an inordinate number of other open source game engines which we haven’t had a chance to discuss ( maybewewou­ldhaveifso­meonedidn’tspendallt­heir timeplayin­gRedAlerti­nsteadofwr­itingthisf­eature−Ed), Check out the impressive list at https://osgameclon­es. com. But in the name of nostalgia we’d like to give a nod to Freeserf ( https://github.com/freeserf/freeserf), which makes it possible to play (again with the original data files) the classic medieval kingdom simulator The Settlers from 1993. Readers, do let us know if you find any classics from your youth that have been brought back to life through the magic of open source ( justdon’t tellJonnia­she’sdistracte­dbypixelat­edthingsan­dold jokes−Ed).

 ??  ??
 ??  ?? The pixel-doubling option is handy if you don’t like squinting at tiny explosive barrels and other sprites in OpenRA.
The pixel-doubling option is handy if you don’t like squinting at tiny explosive barrels and other sprites in OpenRA.
 ??  ?? Once you’ve got the game’s file you’re exactly one click away from a quick Skirmish in Command and Conquer.
Once you’ve got the game’s file you’re exactly one click away from a quick Skirmish in Command and Conquer.
 ??  ?? The 1995 Discworld game (featuring the voice of Eric Idle) can be brought back to life with ScummVM.
The 1995 Discworld game (featuring the voice of Eric Idle) can be brought back to life with ScummVM.
 ??  ?? The haunting Bitter Coast as rendered by OpenMW.
The haunting Bitter Coast as rendered by OpenMW.

Newspapers in English

Newspapers from Australia