Skip to content

Commit

Permalink
Merge branch 'deploy/fafdevelop' into code-formating-Units-V1
Browse files Browse the repository at this point in the history
  • Loading branch information
MrRowey committed Jan 26, 2024
2 parents 14fc4da + 0c81863 commit dc8fe05
Show file tree
Hide file tree
Showing 690 changed files with 23,137 additions and 14,841 deletions.
28 changes: 0 additions & 28 deletions .github/workflows/build.yaml

This file was deleted.

53 changes: 53 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Test

on: [push]

jobs:
syntax:
name: Syntax
runs-on: ubuntu-latest
container: faforever/lua:v5.0-1
steps:
- name: Install tooling
run: apk add bash git findutils
- name: Checkout code
uses: actions/checkout@v4
with:
sparse-checkout: |
*.sh
*.lua
*.bp
- name: Check Lua syntax
run: "bash ./tests/run-syntax-test.sh"
tests:
name: Utility tests
runs-on: ubuntu-latest
container: faforever/lua:v5.0-1
steps:
- name: Install tooling
run: apk add bash git findutils
- name: Checkout code
uses: actions/checkout@v4
with:
sparse-checkout: |
*.sh
*.lua
*.bp
- name: Run Lua tests
run: "bash ./tests/run-utility-tests.sh"
testUnits:
name: Blueprint tests
runs-on: ubuntu-latest
container: faforever/lua:v5.0-1
steps:
- name: Install tooling
run: apk add bash git findutils
- name: Checkout code
uses: actions/checkout@v4
with:
sparse-checkout: |
*.sh
*.lua
*.bp
- name: Run Lua tests
run: "bash ./tests/run-blueprint-tests.sh"
87 changes: 44 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,64 +1,65 @@

Read this in other languages: [English](README.md), [Russian](README-russian.md)

About Forged Alliance Forever
-----------------------------
# About Forged Alliance Forever

![Impression of the game](/images/impression-a.jpg)

Forged Alliance Forever is a community-driven [project](https://github.com/FAForever) designed to facilitate online play for Supreme Commander: Forged Alliance. We are a thriving community with a self-made [client](https://github.com/FAForever/downlords-faf-client), [backend](https://github.com/FAForever/server) and [website](https://github.com/FAForever/website). We have an extensive library of community made maps, mods and co-op scenarios. We introduced a rating system based on [TrueSkill](https://www.microsoft.com/en-us/research/project/trueskill-ranking-system/) to provide a competitive environment with automated matchmaking. To see all that we have added it is best to experience it yourself by playing the game through the client.
Forged Alliance Forever is a vibrant, community-driven [project](https://github.com/FAForever) designed to enhance the gameplay of [Supreme Commander: Forged Alliance](https://store.steampowered.com/app/9420). Our active community has developed a custom [client](https://github.com/FAForever/downlords-faf-client), [backend](https://github.com/FAForever/server) and [website](https://github.com/FAForever/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](https://www.patreon.com/faf).

You can download the client on our [website](https://faforever.com/). In order to play you will need to sync your account with Steam to prove you own a copy of [Supreme Commander: Forged Aliance](https://store.steampowered.com/app/9420/Supreme_Commander_Forged_Alliance/). You can get in touch with the community through the [forums](https://forum.faforever.com/) and the official [Discord server](https://discord.gg/mXahVSKGVb). The developers chat can be found on [Zulip](https://zulip.com/) - you can ask for access from the admin of this repository. The project is kept alive by donations to our [Patreon](https://www.patreon.com/faf).
## Getting started playing

Changelog
---------
- [Register](https://faforever.com/account/register) through our [website](https://faforever.com/) and verify through either [Steam](https://store.steampowered.com/) or [GOG](https://www.gog.com/) your ownership of a copy of Supreme Commander: Forged Alliance.
- Download the client from our [website](https://faforever.com/).
- 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](https://forum.faforever.com/) using the account you registered or join us on the official [Discord server](https://discord.gg/mXahVSKGVb).

There is the complete [changelog](changelog.md). There is an [alternative changelog](http://patchnotes.faforever.com/) for balance patches in a user-friendly format.
## Changelog

Contributing
------------
The changelog is split across multiple files. Each file represents a release. You can find them in the [changelog](./changelog/) folder. Some changes are also described in an [alternative format](http://patchnotes.faforever.com/) that makes them easier to read for the community.

There are instructions [in English](setup/setup-english.md) and [in Russian](setup/setup-russian.md) 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.
## Contributing

Before contributing, make yourself aware of the [contribution guidelines](contributing.md), the [annotation guidelines](annotation.md) and the [translation guidelines](loc/guidelines.md).
There are instructions [in English](setup/setup-english.md) and [in Russian](setup/setup-russian.md) 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.

About this repository
---------------------
There's an [extensive guide](./setup/setup-english.md) to help you setup a debug environment. Everyone that contributes must adhere to the [rules](https://www.faforever.com/rules) and apply the [contribution guidelines](https://forum.faforever.com/topic/2051/faf-contribution-guidelines) as they discuss issues with other community members.

This repository contains the changes to the Lua side of the game, such as balance changes, performance improvements, and additional features. The repository mimics the organization of the base game. A quick reference guide:
## Deployment

Folder | Description
--------------- | -----------
`coderes*` | Various textures required for the Lua debugger to work
`effects` | Blueprints, textures and meshes of effects and HLSL shaders that are used to render the game
`engine*` | Engine documentation: all objects and their functions are documented
`env` | Props, decals, splats, stratum layer and environmental effects
`etc*` | Legacy - a rudimentary implementation of versioning control
`images*` | Images used by the repository, such as the banner at the top
`loc` | Localization files for the game, see the translation guidelines
`lua` | Lua files that control all the behavior outside of the physics simulation
`meshes` | Meshes that do not belong to props, units or projectiles. E.g. the world border
`projectiles` | Blueprint files, textures and meshes of projectiles
`promotion*` | Promotion material related to content surrounding the repository
`schook` | Legacy - the **s**upreme **c**ommander **hook** folder that was used due to licensing issues
`scripts*` | Scripts used to automate tasks surrounding the game repository
`setup*` | Development files that allow you to launch the game using the repository
`testmaps*` | Test maps. E.g. the benchmark map shipped with the game
`tests*` | Unit tests that run on engine-oblivion functions. E.g. Testing string operations
`textures` | Textures used by the engine (as fallback) and UI
`units` | Blueprint files, textures and meshes of units
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.

Files that are unchanged are retrieved from the base game. Folders with an asterisk (*) are not shipped to the user with the client. See the installation instructions in the contribution section for more information.
- (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.

Repositories that are directly related to the game:
- [Executable patcher](https://github.com/FAForever/FA_Patcher)
- [Executable patches](https://github.com/FAForever/FA-Binary-Patches)
- [Exception debugger](https://github.com/FAForever/FADeepProbe)
- [FA Lua intellisense extension](https://github.com/FAForever/fa-lua-vscode-extension)
- [FA Lua intellisense langauge server](https://github.com/FAForever/fa-lua-language-server)
### 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](/mod_info.lua) and [version.lua](/lua/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](/changelog.md) and [changelogData.lua](/lua/ui/lobby/changelogData.lua).
- (4) Update the game version in [changelogData.lua](/lua/ui/lobby/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

- [Campaign/co-op featured mod](https://github.com/FAForever/fa-coop)
- [Campaign/co-op maps](https://github.com/FAForever/faf-coop-maps)

### Lua plugin

- [FA Lua intellisense extension](https://github.com/FAForever/fa-lua-vscode-extension)
- [FA Lua intellisense langauge server](https://github.com/FAForever/fa-lua-language-server)

### Assembly patches

- [Executable patcher](https://github.com/FAForever/FA_Patcher)
- [Executable patches](https://github.com/FAForever/FA-Binary-Patches)
- [Exception debugger](https://github.com/FAForever/FADeepProbe)
Binary file removed branchmodel.png
Binary file not shown.

0 comments on commit dc8fe05

Please sign in to comment.