Clone this wiki locally
Found a bug? Want a feature? Go ahead and make an issue in our GitHub issue tracker, and we'll see what we can do.
See an issue that you think you can handle? Want to make an improvement? Just fork this repository, make your changes, and submit a pull request. After you have made your fork, you'll want to keep it in sync to get the latest changes.
We will need you to agree to a very simple contributor license agreement before we accept your pull request. Basically, it says that you have the right to contribute this code--it's not some proprietary code we can't use.
We are going to organize our branches something like this, but you probably don't need to get into that.
It is nice if you follow our coding guidelines and include tests, but don't let that stop you from contributing.
Let's try to keep it to these five channels so that everything can be as open as possible:
- Discuss particular issues in the issue tracker.
- Discuss anything possibly interesting to others in the CodeCombat Discourse forum.
- Ask anything time-sensitive and public in the Slack channel or HipChat.
- Go into high-bandwidth collaboration on a Google Hangout call (organize it via chat)
- Use the Contact form on codecombat.com to send the team a private email. Try to use the public methods if possible, since open-source projects thrive on transparency.
Things to Do
There's so much fun stuff to do! The blessing of working on a game is that game programming is really fun. The curse is that there's always an impossible amount of work to do.
You can check the issues list or just talk to us about some improvement you'd like to make. This is a very large project, so we imagine most contributors will pick one or two areas of interest and focus on those, instead of understanding the whole system. Here are a few areas:
- Server: improving the Node.js server and database code
- Play view: everything you see when playing a level, and possibly the most concrete stuff to work on
- Tome (spell editor): within the play view lurks CodeCombat's beating heart, which can be made much more amazing
- Level editor: some concrete parts, some abstract parts, some parts so meta they'll blow your mind
- Surface: everything to do with graphics and sound lives in here
- World: the game engine itself, with code split between GitHub and the Components and Systems in the database
- Website: we'd appreciate any help with our web design or improvements to our copy
- i18n: we have a preliminary system for internationalization already, but it could be much better
- Treema: another GitHub repository entirely, this project handles making editable GUIs for JSON data
- Testing: we have been naughty and not written enough tests, so if you're into testing, let's do it
Of course, there are other things you can do without needing to get into this GitHub to do it, like making levels, playtesting, writing documentation, translating, and helping other players. See our /contribute page for details.