This document only covers development of the FAF infrastructure.
Forged Alliance Forever is an open source project. You can find all sourcecode on Github. As the name indicates, Github uses git as version control system. If you want to participate in development, you have to use git and create a Github account (it's free). You can find a small introduction in our Dev School. There are also lots of tutorials on YouTube and other sites.
We strongly recommend to use git on the command line at the beginning.
Please do not use the git tools inside your IDE before you have understood the basics of git.
All developer communication takes place on Zulip.
If you want to join us, please contact an administrator/moderator on the forums or in our in-client chat (white names at the top) so that we can invite you to our Zulip project.
Since mid-2016 we introduced a conference call every 2nd month, where developers and moderators talk about the progress. These calls are streamed in our YouTube channel.
Many developers also like to talk to each other on the Faf Discord in the Development channels. Those are restricted channel up if you write those developers in private chat they will probably let you in.
If you have looked up our Github page,you may have noticed lots of sub-projects.
FAF consists of 5 important projects, which reflect the basic architecture:
Then there is the python client, which was the previous official client:
FAF is working on a java-replacement for the server(discontinued):
All these projects have a readme which contains information how to use
it. For further questions please ask for help in our Zulip chat.
The following tools are strongly recommended for development (regardless of your operating system):
There are lots of starting points for new developers:
FAF Development School is an open group set up by Softles to promote development of FAForever's codebase.
Hints and tips for contributing to FAF are provided to the less experienced both in the forums and the groups chat, #FAF_Dev_School
The lessons to date are recorded below for reference.
Resources for working on FA modding (the game code):
1) Modding hints
2) AI Modding
If you've not done any coding before, or have no idea where to start then this is the guide for you!
The most important thing to do if we want to play with the FAF code is get a GitHub account, see the lesson on that: Github for FAF
Once you've got a GitHub account set up, the next thing to do is to choose what FAF code you want to take a look at.
For the FAF client code see: FAF Client code
For the FAF server code see: FAF Server code
If you're looking for suggestions, it might be easiest to set up the Client code first