The goal of Candy Wrapper is simple: stomp all the opponents on the screen. Once you’ve cleared the screen, you advance to a new level. It starts off easy, with just one opponent and one platform. But each new level adds more opponents and/or platforms. It gets challenging fast.
What’s really impressive about Candy Wrapper isn’t its charming 8-bit graphics, thumpin’ soundtrack, or Bubble Bobble-inspired gameplay. It’s how the game was made. It was originally created in less than 24 hours and with fewer than 100 lines of GameMaker code as part of a game jam — essentially a hackathon for making games. In 2020, creator Harmony Honey open sourced an updated version of the game they built using the open source game engine Godot.
“I learned a lot from open source projects,” Honey says. “I was really confused about how to build certain things, and picking through other people’s code helped a lot, so I hope my code can help someone else, too.”
Creating video games used to mean one of two things: creating all the graphics and programming practically every aspect of your game from scratch, or working for a professional studio that could afford to hire a team to work on different elements. It could be a laborious undertaking for beginners or hobbyists, and the barrier to entry for anything other than a text-based game was high. But that’s changed, as demonstrated by the vast number of game jam entries and indie games available on platforms like Itch. “Game development is democratizing,” says Johanna Pirker, an assistant professor, software engineer, and researcher at the Institute of Interactive Systems and Data Science at Graz University of Technology. “You don’t necessarily need advanced programming and graphics skills to make a polished and professional game anymore,” Pirker says.
Game engines, point-and-click game-making tools, and graphics and sound asset packs make it possible for just about anyone to get started making games. And once they’ve created something, platforms like Itch and Steam give indie developers a place to publish their work. Game jams, meanwhile, provide opportunities for creators to meet and team up for projects—and that community can be the catalyst developers need to finish and share their games. “I’d been making games since middle school, but I didn’t actually release anything until I discovered game jams,” Honey says.
Open source software is accelerating this democratization. Open source tools like Godot, Phaser, Twine, GBStudio, Bitsy, Pygame, Ren'Py, and libGDX help both new and experienced developers build games more efficiently. Meanwhile, game jams like Ludum Dare and GitHub’s annual Game Off, which will open for 2022 entries in November, encourage developers to share their code and learn to embrace open source development.
Thanks to this wealth of open source tools and resources, there’s never been a better time to get started in game development.
Game development goes open source
Game development went through an initial phase of democratization in the late 90s and early 00s thanks to Adobe Flash (originally released by FutureSplash, then Macromedia). Flash took off in a way that previous no-code or low-code tools hadn’t, due to its rich animation capabilities, easy-to-learn interface, and, of course, the rise of the web. It wasn’t unheard of for hobbyists or small game studios to distribute their work through early online services like AOL, CompuServe, and dial-up bulletin board services, but the potential audience for browser-based games was exponentially larger.
Flash certainly had its day, but after Steve Jobs announced that Flash wouldn’t be supported on iOS devices, developers began looking for new platforms. Adobe didn’t officially deprecate Flash until 2020, but it was clear that HTML5, which added more support for multimedia without the need for plugins like Flash Player, would be its eventual successor as far back as the early 2010s. “I realized that if I wanted to carry on making browser games, I would have to do it with HTML5,” says game developer 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 released in 2013.
“I knew it needed to be open source because everything 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 massively on the community to fund Phaser and improve it, which wouldn’t have happened if it wasn’t open source.”
Of course, the demand for natively-developed desktop and mobile games never went away, and open source has made inroads there as well. Godot was open sourced just a year after Phaser. It started out as a proprietary tool for game developers Juan Linietsky and Ariel Manzur. “They used it in their consulting work,” explains Godot project manager Rémi Verschelde. “Studios would hire them to come in to build a foundation for other developers and designers to work from. Godot was what they used as a base layer.”
By 2014, however, the game development market had changed. “The free versions of Unity and Unreal were both more advanced than Godot, so they didn’t see much business value in selling it,” Verschelde says. So they decided to open source their engine.
A few months later, Verschelde noticed there were lots of pull requests on the project, but relatively little activity. “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,” Verschelde says. “So I volunteered to help manage the community and grow a team of trusted contributors.”
The Godot team hoped to set the engine apart from proprietary game engines by making their offering approachable to non-programmers. Linietsky and Manzur had prioritized usability during their consulting days, since they would typically hand projects off to other teams, including visual artists, sound designers, and other non-programmers. Animator Arnaud Millot used Godot to build the puzzle game Monstrüous. It’s a small and straightforward game, but it’s polished and professional with charming graphics that will appeal to Adventure Time fans. Millot says his experience with Flash was all he needed to prepare him to use Godot. “It was really friendly. I wasn’t scared or overwhelmed, even though I’m not a programmer,” he says. “The way you connect ‘nodes’ together in Godot is a little bit like working with layers in Photoshop.”
New opportunities through open source
While ease-of-use may be the biggest driver in the growth of indie game development, game designers use open source tools for many of the same reasons that other developers use open source libraries and frameworks: the ability to modify the underlying code, the potential for communities to keep tools alive if the companies or original developers stop maintaining them, and the ability to attract talent who are already familiar with a particular platform. For example, the open source evolution simulation game Thrivewas originally built using a custom game engine. But as the original developers migrated away, it became difficult for new contributors to maintain the codebase. After trying a few different solutions, the Thrive team settled on rewriting the game using Godot.
“It was the best choice we could have made,” says Thrive maintainer Henri Hyyryläinen. “Moving to Godot had a massive impact in helping volunteer developers contribute to Thrive.”
For other developers, open source provides the ability to create games for classic systems like the Atari 2600, Commodore 64, original Nintendo Entertainment System, and ZX Spectrum. Homebrew game scenes now thrive, thanks to the reverse engineering efforts of open source communities. Though many people run both new and old console games on other hardware using emulators, some enthusiasts make their own cartridges that can be used on actual consoles.
“There is something magical about being able to run your own software and make games on something that I used as a kid,” says the game developer known as bbbbbr, one of the maintainers of GBDK-2020, an open source development kit for Game Boy. “I didn’t think I would ever do that.”
The Game Boy has long been a favorite platform for homebrew developers thanks to the open source tools like GBDK, Small Device C Compiler, Rednex Game Boy Development System, and WLA DX. Still, there’s been an explosion of interest in Game Boy development over the past few years thanks to the open source point-and-click game maker GBStudio, which provided game designers with little to no programming experience the ability to make real Game Boy games.
“Originally I just wanted to make a tiny little game,” GBStudio creator Chris Maltby says. “It was pretty difficult, so I started creating tools that let me think less in terms of assembly code and more in terms of the on-screen actors I wanted to manipulate.” Maltby finished his game and submitted it to a game jam, and then released the tools he created as GBStudio, which in turn enabled a whole new wave of games. One of Maltby’s favorites is the horror role-playing game Deadeus by IZMA, which was released as a digital download in 2019 and published as a physical cartridge in 2021. Even with the classic Game Boy’s black-and-green 8-bit graphics and limited sound chip, Deadeus packs plenty of creepy imagery and a haunting soundtrack into what feels like a lost 1990s game. It’s the sort of thing that probably would never have been approved by a major games studio during the Game Boy’s original era and would never have existed without open source.
The next frontier: open source games
One place the open source ethos has lagged, however, is in the games themselves. Many open source games exist, but it’s still far more common for developers to use open source tools to build proprietary games. “I often see people releasing little parts of games, like helper functions, and the examples from game development tutorials are often available on GitHub,” says Phaser creator Davey. “But it’s still much less common to see people sharing complete game code.”
“I feel a little guilty about not open sourcing Monstrüous,” Millot says. “It took me sweat and tears to make. I’m proud of it and I wouldn’t want someone to use my art in some way that I wouldn’t like or to sell it or something like that.”
Even Honey, an advocate for open sourcing game code, was initially reluctant to share the code for their newest game, ROTA, fearing that opening the code might negatively impact sales via Steam. They ultimately decided to release the code anyway, citing the success of open source game Mindustry. as an inspiration. “Anyone who takes the time to pick through the code is probably a paying customer anyway,” they reason.
Thrive maintainer Hyyryläinen says the game sells well on Steam, even though not just the source code, but a fully installable version of Thrive, is available for free. “It's pretty hard to say what counts as decent sales,” he says. “But from hanging out on game dev subreddits, I've seen that the sales have been good in comparison to other teams’ first published games. Many people have reported sales of only hundreds or at most a few thousand 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, meanwhile, are driving the creation of more open source games. Many developers feel more comfortable open sourcing the sorts of smaller projects they create for jams. Some game jams even promote the creation of open source games. For example, the GBA Jam, for new Game Boy Advance games, encourages open source entries by providing additional prize money specifically for open source games, while jams like Open Jam and GitHub’s Game Off require participants to share their code. The number of open source games continues 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 developers,” Honey says. “The more open source games there are, the more we can learn from each other and the better we can all be.”