I have a limited experience in game development and would like to get involved with open source game project. Where should I look and how should I begin?
Without referring to any of my previous projects, I can say that I've been involved with a great deal of open source activities, game-related and otherwise, and by and large I have thoroughly enjoyed the ride. Right now I'm a manager with the jMonkeyEngine project. I'll be glad to type up somewhat of an 'introduction to open source games', but bear in mind this will by no means be an exhaustive list of resources.
I highly recommend checking out similar pages for all of the links I provide.
Free, open source etc. - The subtle differences
It's worth merely noting that there are some differences to terms like 'free' (vs 'gratis'), 'open source', and 'free software'. The GNU project has a good but somewhat one-sided take on it, titled Open Source Misses The Point. Simply put though, I'd say the most damaging misconception about open source is that you're not supposed to make any money off of it.
Point is, even if you're giving away your code as well as your art assets (though copyrighted art assets could be a good way to make an essential part of your game proprietary, without really damaging its technical 'openness') for free, that doesn't mean you can't commercialize other parts of your project.
There's another gamedev thread here that'll hopefully bring in many good ideas on how to commercialize a free game.
If you want to sharpen your talents before getting involved with a group of fellow developers, 'try make your own game' is a no-brainer, and there's no shortage of open source engines (see devmaster.net/engines and wikipedia.org/wiki/List_of_game_engines). If you're looking for a little motivational push though, there's nothing like a little bit of competition:
- Ludum Dare - Frequently hosted 48h game competitions.
- GameJolt - Infrequently hosts uniquely themed competitions. You can also upload your finished games there for free promotion.
- GameCareerGuide's Game Design Challenges - Although not always requiring programming, GCG's weekly challenges open up a lot of opportunity for networking and unique concepts.
Find a project
There are plenty of places to look, and it's been a while since I was on the lookout, but I reckon most of the hobbyist projects (because that's what every open source game project is right now) make an appearance at either of these waterholes:
- GameDev.net - Help Wanted or
Remember, progress is the best sign of promise; look for it. Speaking of which...
Choose a project
Choosing the right project that matches your particular skillset and interests (no one's gonna want to work with you if you're not enthusiastic about the game you're making) can prove to be quite the challenge. Take your time, and for the love of all that is good pick (or start, but I'll get back to that) a project that looks perfectly achievable within just a couple months time, at most. There are disappointingly few of these around, but for a first-time open source project it comes highly recommended.
- Don't start out too picky; look in different sites, consider odd genres, get to know the width of your skill-sets and interests.
- Consider scope. How much time are you willing to commit? How soon do you want to see the project finish? Any pending time-sinkholes (studies, work, life commitment) worth factoring in?
- Start by talking. Exchange at least 1000 words with someone involved in a given project before finally making up your mind.
- Now stick with it and bring it to the finishline!
A great thing about open source projects is the low barrier to entry. There's loads of ways to contribute to a project besides applying your key skills. Just look at the
CONTRIBUTING.md of any major project on GitHub for examples.
Honestly, the 'open source games' complete/incomplete ratio could use a boost. The beauty of transparency and open source though is that 'incomplete' is far from 'unsuccessful' so long as you make the most out of the ride.
Update: Also see my closely related article on opensource.com, which is based on this answer.
Codeplex is another open source hosting provider that has a number of projects from games to windowing systems to all sorts of other things if you don't want to dive into a complete game.
There is a free game dev community based on the freegamedev forums http://forum.freegamedev.net/ and the associated IRC at #freegamer on freenode.net that you might check out for some projects you could potentially join.
SourceForge could be an idea, browse it and try to find a project that is active, interesting and may be accepting people, and get in contact with the current maintainers. You could branch off another project to add your own features, and merge in later.
Some of the open-source game projects have wiki pages or bug-trackers where you can find out about stuff to be done and where to contribute. I think in all cases it's a good idea to first get familiar with the game. Download and play it (if it's already in a playable stage), get familiar with the code, file bug-requests or try to fix open bugs. Get in touch with the developers.
Here are two links to (rather big) open-source game projects, but of course there are plenty others out there:
Getting involved in the modding community might be a good option.
Alternatively there's a tradition of grabbing the source for games like Nethack, tweaking the source to add cool features, and releasing the changes as a patch. The community is pretty friendly to boot.
There is also the FreeGameDev wiki with more information on getting involved with open source / Free software game development.
The advantage that FreeGameDev community has over GameDev etc is that is it specifically for open source / Free software games.
The FreeGameDev community originated from the Free Gamer blog, which is a blog tracking Free software game news.
Are you looking to contribute to a general framework as a way to learn about game programming? Or are you looking for an open-source-style community to help you learn?
If the latter (and maybe the former?), I recommend Pygame: http://www.pygame.org/
I got started with Pygame (for traditional game dev) many years ago for the original Boston Game Jam, and I found it to be a great tool for learning basic game development concepts.
Also, if you decide to try Pygame, don't miss the tutorials here: http://www.pygame.org/wiki/tutorials
Most open source project hosting sites also have some game projects, CodePlex and SourceForge have already been mentioned, so i suggest looking into the Assembla projects tagged with "Game".
If you want to have a go at participating in an open-source game project, then may I suggest Battle for Wesnoth. It's a fairly popular open source game with nice graphics and clean code base (from what little I remember. I haven't hacked on it, but I skimmed the code a few years ago).
It's written in C++ and Lua.