Open Source Games You Could Contribute To
Update 2016-06-24 20:30: I edited this post to add the main programming languages for each open source game listed, a good suggestion from Reelix on Reddit. I also fixed an editing bug I made which made me forget to add the correct “possible contributions” section to NetHack. Finally I want to say I got many suggestions by people to add some other great open source games, many of which I didn’t even know about. I might make a followup post where I go through a number of those as well.
Open source games are a great phenomenon. It’s amazing how some of these games have been actively developed by hobbyists for over 20 years(Angband, NetHack), and some have their own beautiful graphics(Battle For Wesnoth, OpenTTD, 0 A.D.), good balance for competitive play(OpenRA) or an incredible amount of features (Cataclysm: DDA).
I made a list of some of these games that I found were interesting and/or could use help. This certainly isn’t a full list of open source games, try Wikipedia for that. I’ve added links to the development pages for each entry(its their blue title). Maybe if you’re looking for a cool project to program something for, make open game art for, or just study to see how they did it, you can find it here.
Remember to communicate with the developers before starting to make something large for a project, they might already be working on it or have reasons not to work on it.
0 A.D.
Description: 3d historic RTS game which takes place in the classical age based on Age of Empires II. Supports 12 diverse civilizations, with technologies, units, economy, heroes, ships, etc. Has its own game engine called Pyrogenesis with many graphics capabilities.
Completeness: 0 A.D. is still in alpha. It is playable in multiplayer and against AI, but some features are still missing.
Activity: Development is very active. It’s tracker shows 42 commits in the last 7 days by multiple people.
Possible Contributions: Many small things to start out on flagged as “simple” in its issue tracker
Languages: Engine in C++, gameplay in JavaScript
Angband
Description: A classic roguelike that’s still actively developed. Has a 100 dungeon levels with multiple dungeon level profiles, takes place in a Lord of the Rings universe, and has many enemy types. It has an interesting type of dungeon generation.
Completeness: The game is pretty much complete. There’s still stuff being added and fixed. A relatively recent overhaul was the dungeon generation system, which became a lot more flexible than before.
Activity: The development is slower than many of the other games on this list, but that’s mostly because it’s already mostly a full game.
Possible Contributions: You could use Angband as a starting point for your own roguelike, or experiment by adding different types of dungeons that can be generated. Many other roguelikes have been based on Angband, as Angband is a solid base without too much crazy stuff in itself.
Languages: C
Battle of Wesnoth
Description: A turn-based strategy game in a fantasy setting with a lot of original artwork. Has many single-player campaigns and a multiplayer mode.
Completeness: The game is basically complete, with art, sound, music, multiple campaigns and multiplayer.
Activity: Development is still active. Github pulse shows 37 commits in the last 7 days with 2993 additions and 1773 deletions. Most of the recent commits are more technical in nature, though. But there is also much user-created content like campaigns and art still being made and posted on the forum
Possible Contributions: The most obvious things to contibute would be user-created campaigns, art and the like. As a programmer it’s possible to experiment with gameplay changes and new features though they may not accept big changes. Of course it’s always possible to fork the project.
Languages: Engine in C++, data language is Wesnoth Markup Language(WML), Lua is usable for scripting in WML and creating AIs
Cataclysm: Dark Days Ahead
Description: An open world survival horror roguelike. It is highly detailed and has many features including: crafting, drivable vehicles, many types of zombies and other monsters, weather, NPCs that can become followers, morale, reading, bionics, a randomly generated world with many types of buildings and natural areas, food with varying degrees of healthiness, cooking, multiple types of drugs, a detailed weapon system, martial arts, and many more. It even has largely complete and good-looking (optional) graphics sets, as well as audio sets.
Completeness: Cataclysm is a complete game already with many features, but is still undergoing frequent changes. Tweaks and refactors, but also new features and added detail are coming in constantly.
Activity: Development is very active. Github Pulse shows 164 commits from 17 authors in the last 7 days, with 4552 additions and 4429 deletions.
Possible Contributions: Though already a very detailed game with a lot of features, it seems Cataclysm is still open for more features that would be relevant in a survival situation. If not in the core game, then as a mod in lua. Other things that can be worked on include making graphics and audio packs, or creating mods with alternative situations. Cataclysm seems like a good base for many survival-oriented roguelikes. As always check the issue tracker for what ideas have been discussed and are being worked on, and for bugs you could fix.
Languages: Game in C++, mods can be created in Lua
Freeciv
Description: A turn-based strategy game based on Civilization II. The player starts in 4000 BC and must develop his civilization and fight other civilizations.
Completeness: The game is pretty much completely playable, with hundreds of civilizations(though they don’t differ in gameplay), many technologies, units and as a relatively recent addition, a web version of the game.
Activity: Development is very active. Their SVN web interface shows 122 commits in the last 7 days. Things like tweaks, translations, AI changes, and other things.
Possible Contributions: It seems that Freeciv could use some help with making the interface more accessible and having a better tutorial for beginners. Many other things can probably be found in the issue tracker.
Languages: Game mostly in C, some gameplay code and scripting in Lua, web client in Javascript, Java, JSP, PHP, HTML and CSS
NetHack
Description: A classic roguelike with a rich amount of content and many references to modern culture. It has many classes, a large random dungeon of 50 standard levels and numerous special ones, and many types of items, monsters and traps.
Completeness: The game could have been considered complete many years ago, and in fact didn’t receive a major update for 12 years between 2003 and 2015.
Activity: Recently new development has started again, with a major update 3.6.0 in december 2015. It is one of the oldest games still actively developed. The recent update mostly contained infrastructure changes to prepare the game for future development. Development is still active. Github pulse shows 15 commits by 3 authors in the last 7 days with 299 additions and 77 deletions.
Possible Contributions: It’s hard to find an issue tracker or such for NetHack. Maybe adding other interesting monsters and new random environments could be done, but the question is whether it would be accepted considering the game is so complete. NetHack could be used as a base for a new roguelike. Other things that could be worked on are new graphics packs. Maybe sound would be a possiblity as well.
Languages: C
OpenRA
Description: Originally a remake for Red Alert that makes it work with modern hardware, the engine now also supports Command & Conquer and Dune 2K, with Tiberian Sun and Red Alert 2 in development. Rebalances the original games in such a way that OpenRA’s Red Alert and Command & Conquer mods have become new games in their own right which are a lot more interesting to play in multiplayer than the original.
Completeness: Original Red Alert and C&C mods are very playable for multiplayer and are basically just being rebalanced with some minor bugfixes now. Single player campaigns still miss many missions(every mission has to be reimplemented for OpenRA). Tiberian Sun is playable but still has many open issues, whereas Red Alert 2 is far from complete.
Activity: Development is very active. Github’s pulse shows 54 commits in the last 7 days, with over 7000 additions and 3000 deletions.
Possible Contributions: You can constribute by adding traits defininig behaviour that’s not implemented yet, especially for Tiberian Sun and Red Alert 2. Other possibilites include making it easier to create mods in OpenRA(making it more generally an RTS game engine), completing the single player campaigns, or improving the AI. As always check the issue lists to see which ideas have been discussed and partially worked on.
Languages: Engine and gameplay code in C#, data in YAML, scripting in Lua
OpenMW
Description: A reimplementation of the Morrowind game engine requiring the original game content. Its goal is to make Morrowind playable on other platforms and extremely moddable.
Completeness: It’s already playable, though not everything of the original game is implemented yet. There’s also a large editor program that allows people to create large mods easily without touching the codebase.
Activity: Development is active. Github’s pulse shows 11 commits in the last 7 weeks by 3 authors, with 263 additions and 278 deletions.
Possible Contributions: Contributions can center on adding the last missing functionality of the original Morrowind, experimenting with new mods or additional features that weren’t in the original engine, or improving the editor people use to create mods.
Languages: Engine and gameplay code in C++, modding via graphical editor called OpenCS also under development
OpenTTD
Description: An open source remake and expansion of the 1995 Transport Tycoon Deluxe game with many additions.
Completeness: It’s fully playable and has libre graphics packs that completely replace the original proprietary content of the 1995 game. It also has many custom AIs, map generation, many languages, an improved interface, and a lot of mods and a mod manager that add extra content to the game.
Activity: Development is still ongoing, though a bit slower in the main code than the other games on this list, probably because it is already very complete in its core code. Only 2 commits in the last week are shown in its SVN repository, and most recent commits are translation updates and small code fixes. However, there is also an active forum for development of game AIs, graphics, scripts, and its core development subforum shows active threads about multiple patches, new features and an android port.
Possible Contributions: Obvious contributions include adding new content in the shape of mods or trying to create new AIs that compete with others or do interesting things(learning AIs?). For work on the core, the Android port might need some help and some experimental other modes of play could be an idea. A crazy idea would be a post-apocalyptic OpenTTD where you have build to connect settlements through ruins and protect your infrastructure from attackers.
Languages: Engine and gameplay code in C++, scripting and AI programming in Squirrel
OpenRCT2
Description: An open source reimplementation of RollerCoaster Tycoon 2 made by reverse engineering the original game into platform independent C source code. It uses SDL for crossplatform support and has added a multiplayer mode where both players work on the same park. Still requires the content of the original game.
Completeness: The reimplementation is pretty much completely playable because of the way the project is set up. It still uses the original DLL for some functionality, though it seems to get close to being a standalone release. However there is still enough to do in terms of extending and improving the game.
Correction: A contributor told me I have this backwards. The project still depends on the original exe for some functionality, but it is modified to call the DLL they create. He also added the following. They are getting close to standalone release, code-wise, but it still depends on the original graphics and music content. There are also functional though unplayable Android and iOS ports. They’re unplayable mostly because controls and some drawing functions aren’t implemented yet.
Activity: Development in very active. Github pulse shows 44 commits by 9 authors in the last 7 days, with 1690 additions and 649 deletions.
Possible Contributions: Many of the things in OpenTTD might be fitting to add to OpenRCT2, like mods and extensions. The documentation requests people who want to add new features to contact the developers first to see if they’re already working on it or shot down the idea for some reason.
Languages: C
SuperTuxKart
Description: A 3D kart racing game like Mario Kart. Contains many of the mascots of open source projects as playable characters.
Completeness: Fully playable with a story and multiplayer mode, multiple characters, powerups/weapons and tracks.
Activity: Development is active, though not as active as most projects here. Github pulse shows 3 commits in the last 7 days on the main branch, though 8 on every branch put together. Though it should be said that the art assets are not in the Github repository, but separately hosted on SVN.
Possible Contributions: Their ToDO list has numerous things to do for SuperTuxKart. It seems like it could use an animator too for the characters in the karts.
Languages: C++