/fa

Lua code for FAF

Primary LanguageLua

About Forged Alliance Forever

Impression of the game

Forged Alliance Forever is a vibrant, community-driven project designed to enhance the gameplay of Supreme Commander: Forged Alliance. Our active community has developed a custom client, backend and website. We provide a rich gaming experience with an extensive library of community-made maps, mods and co-op scenarios. The project can be financially supported through Patreon.

Getting started playing

  • Register through our website and verify through either Steam or GOG your ownership of a copy of Supreme Commander: Forged Alliance.
  • Download the client from our website.
  • Log in using the account you registered and host a game with AIs and/or players, queue up for matchmaker or upload your own content to our vaults for other players to enjoy.
  • Engage with the community through the forums using the account you registered or join us on the official Discord server.

Changelog

The changelog is split across multiple files. Each file represents a release. You can find them in the changelog folder. Some changes are also described in an alternative format that makes them easier to read for the community.

Contributing

There are instructions in English and in Russian to help you set up a development environment. It is important that you discuss your contributions beforehand. You can do this by making a comment on an existing issue or, if it doesn't exist yet, by opening a new issue. Not all pull requests are merged by default. It is important that the changes align with the vision of the project.

There's an extensive guide to help you setup a debug environment. Everyone that contributes must adhere to the rules and apply the contribution guidelines as they discuss issues with other community members.

Deployment

There are three branches branches that deployable and are available for players to play on. The deployment procedure is automated. Pushing commits to one of these branches is sufficient to trigger the deployment.

  • (1) deploy/faf is the production branch that maps to the FAF gametype.
  • (2) deploy/fafdevelop is a development branch that maps to the FAF Develop gametype.
  • (3) deploy/fafbeta is a development branch that maps to the FAF Beta Balance gametype.

Deployment of a development branch

There are no requirements to a deployment to a development branch. A push of a commit is sufficient to trigger a deployment. The development branches are unaware of history. For example, A replay will always start using the last deployment. All replays that used a previous deployment when the game was played is guaranteed to desync.

Deployment of the production branch

There are various requirements when deploying to production:

  • (1) Update the game version in mod_info.lua and version.lua.
  • (2) Update the game executable. This needs to be done by a server administrator. This is only required when there are changes to the executable.
  • (3) Update the changelog in changelog.md and changelogData.lua.
  • (4) Update the game version in changelogData.lua.
  • (5) Create a new release with the changelog that points to a commit on the develop branch

Specifically steps (1), (2) and (5) are required to create a functioning deployment where even replays can retrieve the proper configuration to prevent desyncs.

Related repositories

Campaign or co-op content

Lua plugin

Assembly patches