Open source is democratizing video game development

Imatge
Àmbits Temàtics

The evolu­tion and future of open source games and game deve­lop­ment.

The goal of Candy Wrap­per is simple: stomp all the oppo­nents on the screen. Once you’ve clea­red the screen, you advance to a new level. It starts off easy, with just one oppo­nent and one plat­form. But each new level adds more oppo­nents and/or plat­forms. It gets challen­ging fast.

What’s really impres­sive about Candy Wrap­per isn’t its char­ming 8-bit grap­hics, thum­pin’ sound­track, or Bubble Bobble-inspi­red game­play. It’s how the game was made. It was origi­nally crea­ted in less than 24 hours and with fewer than 100 lines of Game­Ma­ker code as part of a game jam — essen­ti­ally a hackat­hon for making games. In 2020, crea­tor Harmony Honey open sour­ced an upda­ted version of the game they built using the open source game engine Godot.

“I lear­ned a lot from open source projects, ” Honey says. “I was really confu­sed about how to build certain things, and picking through other people’s code helped a lot, so I hope my code can help some­one else, too.”

Crea­ting video games used to mean one of two things: crea­ting all the grap­hics and program­ming prac­ti­cally every aspect of your game from scratch, or working for a profes­si­o­nal studio that could afford to hire a team to work on diffe­rent elements. It could be a labo­ri­ous under­ta­king for begin­ners or hobbyists, and the barrier to entry for anyt­hing other than a text-based game was high. But that’s chan­ged, as demons­tra­ted by the vast number of game jam entries and indie games avai­la­ble on plat­forms like Itch. “Game deve­lop­ment is demo­cra­ti­zing, ” says Johanna Pirker, an assis­tant profes­sor, soft­ware engi­neer, and rese­ar­cher at the Insti­tute of Inter­ac­tive Systems and Data Science at Graz Univer­sity of Tech­no­logy. “You don’t neces­sa­rily need advan­ced program­ming and grap­hics skills to make a polis­hed and profes­si­o­nal game anymore, ” Pirker says. 

Game engi­nes, point-and-click game-making tools, and grap­hics and sound asset packs make it possi­ble for just about anyone to get star­ted making games. And once they’ve crea­ted somet­hing, plat­forms like Itch and Steam give indie deve­lo­pers a place to publish their work. Game jams, meanw­hile, provide oppor­tu­ni­ties for crea­tors to meet and team up for projects—and that commu­nity can be the catalyst deve­lo­pers need to finish and share their games. “I’d been making games since middle school, but I didn’t actu­ally rele­ase anyt­hing until I disco­ve­red game jams, ” Honey says.

Open source soft­ware is acce­le­ra­ting this demo­cra­ti­za­tion. Open source tools like Godot, Phaser, Twine, GBStu­dio, Bitsy, Pygame, Ren’Py, and libGDX help both new and expe­ri­en­ced deve­lo­pers build games more effi­ci­ently. Meanw­hile, game jams like Ludum Dare and GitHub’s annual Game Off, which will open for 2022 entries in Novem­ber, encou­rage deve­lo­pers to share their code and learn to embrace open source deve­lop­ment.

Thanks to this wealth of open source tools and resour­ces, there’s never been a better time to get star­ted in game deve­lop­ment.

Game deve­lop­ment goes open source

Game deve­lop­ment went through an initial phase of demo­cra­ti­za­tion in the late 90s and early 00s thanks to Adobe Flash (origi­nally rele­a­sed by Futu­reS­plash, then Macro­me­dia). Flash took off in a way that previ­ous no-code or low-code tools hadn’t, due to its rich anima­tion capa­bi­li­ties, easy-to-learn inter­face, and, of course, the rise of the web. It wasn’t unhe­ard of for hobbyists or small game studios to distri­bute their work through early online servi­ces like AOL, Compu­Serve, and dial-up bulle­tin board servi­ces, but the poten­tial audi­ence for brow­ser-based games was expo­nen­ti­ally larger.

Flash certainly had its day, but after Steve Jobs announ­ced that Flash wouldn’t be suppor­ted on iOS devi­ces, deve­lo­pers began looking for new plat­forms. Adobe didn’t offi­ci­ally depre­cate Flash until 2020, but it was clear that HTML5, which added more support for multi­me­dia without the need for plugins like Flash Player, would be its even­tual succes­sor as far back as the early 2010s. “I reali­zed that if I wanted to carry on making brow­ser games, I would have to do it with HTML5,” says game deve­lo­per Richard Davey. The problem at the time was that a lack of tooling made it harder to build an HTML5 game than it was to create a Flash game. So he built his own HTML5 game engine, Phaser, which he rele­a­sed in 2013.

“I knew it needed to be open source because everyt­hing on the web is open source these days, ” Davey explains. “Within days I had pull requests coming in, and people were fixing stuff. I still rely massi­vely on the commu­nity to fund Phaser and improve it, which wouldn’t have happe­ned if it wasn’t open source.”

Since then, Phaser has been used to build a wide vari­ety of games, ranging from Micro­soft Mahjong to the Steam hit Vampire Survi­vor.

Of course, the demand for nati­vely-deve­lo­ped desk­top and mobile games never went away, and open source has made inro­ads there as well. Godot was open sour­ced just a year after Phaser. It star­ted out as a propri­e­tary tool for game deve­lo­pers Juan Lini­etsky and Ariel Manzur. “They used it in their consul­ting work, ” explains Godot project mana­ger Rémi Vers­chelde. “Studios would hire them to come in to build a foun­da­tion for other deve­lo­pers and desig­ners to work from. Godot was what they used as a base layer.”

By 2014, howe­ver, the game deve­lop­ment market had chan­ged. “The free versi­ons of Unity and Unreal were both more advan­ced than Godot, so they didn’t see much busi­ness value in selling it, ” Vers­chelde says. So they deci­ded to open source their engine.

A few months later, Vers­chelde noti­ced there were lots of pull requests on the project, but rela­ti­vely little acti­vity. “Juan was just doing this as a hobby, so the pull requests would really stack up. He just didn’t have time to deal with them, ” Vers­chelde says. “So I volun­te­e­red to help manage the commu­nity and grow a team of trus­ted contri­bu­tors.”

The Godot team hoped to set the engine apart from propri­e­tary game engi­nes by making their offe­ring appro­a­cha­ble to non-program­mers. Lini­etsky and Manzur had prio­ri­ti­zed usabi­lity during their consul­ting days, since they would typi­cally hand projects off to other teams, inclu­ding visual artists, sound desig­ners, and other non-program­mers. Anima­tor Arnaud Millot used Godot to build the puzzle game Monstrü­ous. It’s a small and straight­for­ward game, but it’s polis­hed and profes­si­o­nal with char­ming grap­hics that will appeal to Adven­ture Time fans. Millot says his expe­ri­ence with Flash was all he needed to prepare him to use Godot. “It was really friendly. I wasn’t scared or overw­hel­med, even though I’m not a program­mer, ” he says. “The way you connect ‘nodes’ toget­her in Godot is a little bit like working with layers in Photos­hop.”

Open source commu­ni­ties have also produ­ced a number of even easier-to-learn game engi­nes, such as Twine and Bitsy, that help begin­ners create their first games. Pirker cites Twine as being parti­cu­larly impor­tant in the demo­cra­ti­za­tion of game design. Twine, rebuilt in 2014 to focus on crea­ting brow­ser-based games, is desig­ned to make inter­ac­tive fiction, which can range from Choose Your Own Adven­ture style narra­ti­ves, to dating sim games, to Netflix’s inter­ac­tive film Black Mirror: Banders­natch. Although you can add custom JavaS­cript code, images, and other multi­me­dia, none of that is neces­sary. You can just jump right in and start making text-based games.

I still rely massi­vely on the commu­nity to fund Phaser and improve it, which wouldn’t have happe­ned if it wasn’t open source.”

New oppor­tu­ni­ties through open source

While ease-of-use may be the biggest driver in the growth of indie game deve­lop­ment, game desig­ners use open source tools for many of the same reasons that other deve­lo­pers use open source libra­ries and frame­works: the ability to modify the underlying code, the poten­tial for commu­ni­ties to keep tools alive if the compa­nies or origi­nal deve­lo­pers stop main­tai­ning them, and the ability to attract talent who are alre­ady fami­liar with a parti­cu­lar plat­form. For exam­ple, the open source evolu­tion simu­la­tion game Thrivewas origi­nally built using a custom game engine. But as the origi­nal deve­lo­pers migra­ted away, it became diffi­cult for new contri­bu­tors to main­tain the code­base. After trying a few diffe­rent solu­ti­ons, the Thrive team sett­led on rewri­ting the game using Godot.

“It was the best choice we could have made, ” says Thrive main­tai­ner Henri Hyyryläi­nen. “Moving to Godot had a massive impact in helping volun­teer deve­lo­pers contri­bute to Thrive.”

For other deve­lo­pers, open source provi­des the ability to create games for clas­sic systems like the Atari 2600, Commo­dore 64, origi­nal Nintendo Enter­tain­ment System, and ZX Spec­trum. Home­brew game scenes now thrive, thanks to the reverse engi­ne­e­ring efforts of open source commu­ni­ties. Though many people run both new and old console games on other hard­ware using emula­tors, some enthu­si­asts make their own cartrid­ges that can be used on actual conso­les.

“There is somet­hing magi­cal about being able to run your own soft­ware and make games on somet­hing that I used as a kid, ” says the game deve­lo­per known as bbbbbr, one of the main­tai­ners of GBDK-2020, an open source deve­lop­ment kit for Game Boy. “I didn’t think I would ever do that.”

The Game Boy has long been a favo­rite plat­form for home­brew deve­lo­pers thanks to the open source tools like GBDK, Small Device C Compi­ler, Rednex Game Boy Deve­lop­ment System, and WLA DX. Still, there’s been an explo­sion of inter­est in Game Boy deve­lop­ment over the past few years thanks to the open source point-and-click game maker GBStu­dio, which provi­ded game desig­ners with little to no program­ming expe­ri­ence the ability to make real Game Boy games.

“Origi­nally I just wanted to make a tiny little game, ” GBStu­dio crea­tor Chris Maltby says. “It was pretty diffi­cult, so I star­ted crea­ting tools that let me think less in terms of assembly code and more in terms of the on-screen actors I wanted to mani­pu­late.” Maltby finis­hed his game and submit­ted it to a game jam, and then rele­a­sed the tools he crea­ted as GBStu­dio, which in turn enabled a whole new wave of games. One of Maltby’s favo­ri­tes is the horror role-playing game Deadeus by IZMA, which was rele­a­sed as a digi­tal down­load in 2019 and publis­hed as a physi­cal cartridge in 2021. Even with the clas­sic Game Boy’s black-and-green 8-bit grap­hics and limi­ted sound chip, Deadeus packs plenty of creepy imagery and a haun­ting sound­track into what feels like a lost 1990s game. It’s the sort of thing that probably would never have been appro­ved by a major games studio during the Game Boy’s origi­nal era and would never have exis­ted without open source.

There is somet­hing magi­cal about being able to run your own soft­ware and make games on somet­hing that I used as a kid.

 

 

Inline1_Open source is democratizing game development

The next fron­tier: open source games

 

One place the open source ethos has lagged, howe­ver, is in the games them­sel­ves. Many open source games exist, but it’s still far more common for deve­lo­pers to use open source tools to build propri­e­tary games. “I often see people rele­a­sing little parts of games, like helper func­ti­ons, and the exam­ples from game deve­lop­ment tuto­ri­als are often avai­la­ble on GitHub, ” says Phaser crea­tor Davey. “But it’s still much less common to see people sharing complete game code.”

 

“I feel a little guilty about not open sour­cing Monstrü­ous,” Millot says. “It took me sweat and tears to make. I’m proud of it and I wouldn’t want some­one to use my art in some way that I wouldn’t like or to sell it or somet­hing like that.”

 

Even Honey, an advo­cate for open sour­cing game code, was initi­ally reluc­tant to share the code for their newest game, ROTA, fearing that opening the code might nega­ti­vely impact sales via Steam. They ulti­ma­tely deci­ded to rele­ase the code anyway, citing the success of open source game Mindustry. as an inspi­ra­tion. “Anyone who takes the time to pick through the code is probably a paying custo­mer anyway, ” they reason.

 

Thrive main­tai­ner Hyyryläi­nen says the game sells well on Steam, even though not just the source code, but a fully insta­lla­ble version of Thrive, is avai­la­ble for free. “It’s pretty hard to say what counts as decent sales, ” he says. “But from hanging out on game dev subred­dits, I’ve seen that the sales have been good in compa­ri­son to other teams’ first publis­hed games. Many people have repor­ted sales of only hundreds or at most a few thou­sand copies. It feels good to know that people still want to support us by buying a copy even though they can get the game for free.”

 

Game jams, meanw­hile, are driving the crea­tion of more open source games. Many deve­lo­pers feel more comfor­ta­ble open sour­cing the sorts of smaller projects they create for jams. Some game jams even promote the crea­tion of open source games. For exam­ple, the GBA Jam, for new Game Boy Advance games, encou­ra­ges open source entries by provi­ding addi­ti­o­nal prize money speci­fi­cally for open source games, while jams like Open Jam and GitHub’s Game Off require parti­ci­pants to share their code. The number of open source games conti­nues to grow as a result. Game Off had 223 entries in 2019. That number grew to 490 in 2020 and to 519 in 2021.

 

“It feels really good to help other deve­lo­pers, ” Honey says. “The more open source games there are, the more we can learn from each other and the better we can all be.”