Categories
Development Update FA Update Lobby Update Server Update

Several Updates

Hello Commanders,

Our team has made a few updates with bug fixes and fresh content for your enjoyment. Here are a few brief posts to update you all on what has been happening.

Developer Call

The team are hosting a call on the Tuesday the 30th at 20:00PM UTC + 1. If anyone would like to suggest any topics for us to discuss, feel free to do so. You can reach us on Discord, IRC or the forums if you wish to suggest a topic. This call will be streamed to Forged Alliance Forever YouTube channel.

IPv6 Bug

Brutus has made some changes to fix this issue, this should fix various issues with the client that you may have been having. If you are still experiencing issues due to this bug, feel free to let us know over on the Tech Support forums.

Balance Beta

The FAF Beta game has been updated with some new balance changes that are up for testing. We’d appreciate your feedback about these new changes. We have an active forum thread here where you can post your feedback. If you would like to view the changes that have been made, you can find the patch notes here.

Coop

A fix has been deployed for Coop that has fixed issues with the mission: Operation Rescue. This mission has been updated and you are now able to host this mission in the coop tab. You can find this new mission under the “Custom Missions” tab.

Thank you for your continued support.

Happy Hunting.

Categories
advertising Development Update Galactic War Promotion Server Update

FAF Developer Review 2017

Christmas is coming upon and as soon as Santa leaves our chimneys, the year is almost over. So our christmas present to you is a wrap up of all of our progress: Time to take a look at what our developers have achieved this year.

With the new year, Downlord started building a new Java API as a proof of concept for replacement of the current Python API. With the rapid development going and no competing implementation showing up, it became our new API of choice, while the old API is running until everything is ported over (which is finished to 95%).

So what features did it bring along? Well quite a few:

Auto-generated API documentation
Auto-generated API documentation
  • Clan management
  • A huge amount of data queryable by now, such as game results, ratings & leaderboards, maps, mods, ladder scores, coop results, achievements
  • Map & mod upload working again
  • Map, mod & replay reviews as new features
  • A Challonge proxy for our tournament information
  • Auto-deployment for our core featured mods (which especially speeds up the development process for beta & develop)
  • A central authorization platform for other backend servers under development
  • Auto-documenting the available data routes (visit api.faforever.com)

Arkitekt was the first one building his own application on top of the API by querying the game results for calculating results of the ladder week (see ladderstats.fafcasts.com).

As already noted in the API features, Dragonfire has reworked the clan app which is now purely JS-based and doesn’t interact with the database anymore, but purely relies on the API instead. This also brought an enhanced design and less legacy PHP code.

Softly giving eye-cancer to our moderators
Softly giving eye-cancer to our moderators

Along with the API development, a lot of issues popped up in the database. Most of them were data inconsistencies that were caused by missing database constraints. A lot of sanitization was done on the database, which took most of the time during our server updates. Unfortunately, not all users understand that long-term-maintaining a server requires a downtime now and then (actually it’s just 6 times a year).

Early this year, Softly created an avatar management app, which uses our old Python API. Since it was supposed to be a workaround, he made intentionally as ugly as possible. Kudos to him, I couldn’t have done better. Unfortunately, the workaround still lasts, until the last 5% of the API is implemented (a pull request already exists).

In preparation for the server move, we open-sourced plumbing for our server setup in the new faf-stack GitHub project. faf-stack encapsulates all of our running server apps using docker-compose and a consistent structure. But the best of all: by default everything is configured to be run on localhost. This makes starting development for FAF easier than ever before. Just install Docker, check out the git repo and fire up whatever you want. Along with the faf-stack, we tried to improve the test-data in the db repository.

The server move itself went pretty smooth compared to the previous one. There are still issues due to some Docker limitations with Linux file permissions, but it wouldn’t be FAF if nothing would be broken 😉

The move itself was initiated by the withdrawal of visionik as the administrative councilor. Sheeo followed Visionik on his position, while the software councilor position is now shared by Download and Duk3luk3. Since Visionik was the main funder of FAF and paid for the (in the author’s opinion ridiculously overpriced) servers and other services, FAF was now reduced to standard servers which cost less than 100€ per month instead of over 1000€.

Mockup of a reworked tutorials tab by surtsan

The Python client finally went Python 3 and Qt5 thanks to the long-time work of duk3luk3, mazornoob and many others. This leaves 10 years of legacy behind us and improves the developer experience on Windows. If you want to jump in, this wiki article explains how to setup a dev environment. However, this update also had a lot of drawbacks our devs are still chewing on. So the big feature breakthrough is still ahead of us (like the new tutorials tab).

Many many game patches were released (18 patches were released on GitHub, but not all of them made it into production). One of the most useful: mex capping on right click. One of the most hated: The new veterancy system. Not all of these changes were welcome and a huge discussion about the rating system started out. Equilibrium was made a featured mod. That led to quite a roar in the community, which eventually wore out. Since the beginning of December, BHEdit also gathered the status of a ranked mod, so there are now multiple ways to play with rated games. Unfortunately, rating changes of mods require a server restart, which leads to an undesired delay as of now. On a side note, there’s also work happening to make RKS Explosions a ranked mod again, but this won’t make it into 2017.

To reduce the number of downloads with each patch Brutus5000 developed BiReUS as a replacement for the legacy patching mechanism. While the server component seems to be ready, we just implemented it client side in Downlord’s FAF Client. It will still take a lot of developing & testing time before we will consider it stable. More information on that can be found in the devblog.

As there is no active maintainer of the current Python lobby server, Downlord reengineered it Java and went above feature parity. Load tests show that is able to handle way more players than the current server does, with the current roadblock for adoption being ICE support, which the server is built upon. After that, we will be upon to implement new features that are asked for a long time (ladder division already implemented, 2v2 matchmaker could be a choice).

ICE is one of the disappointing topics in 2017. While initial tests looked promising, there is still no stable release and the code was rewritten multiple times. This keeps the connection issues still a hot topic, yet we can’t speed it up since we don’t have any networking experts on the dev team.

The map vault view in the mdoerator client
The map vault view in the moderator client

Though our personal low mark this year was reached when certain members of our community decided to not only ignore rules and circumvent bans by mass registration but also to actively cheat and break other player’s games on purpose. This in return has lead to some protective measures like the 24h waiting time for new accounts.

Just in time, we were able to finally release the long-promised moderator tools, which enabled fast bans and listing of latest registration, so we could deal with the mass registered smurf accounts. With the latest release from this December, the moderator tools finally allow cleaning the map vault.

 

So what are our plans for 2018?

  • Get ICE finalized and deployed on both clients
  • Downlord is going BETA with his Java client
  • The old Python API along with Jeremy will be retired in favor of Java API and the moderator client
  • Bireus as the new patcher

 

The FAForever team wishes everybody happy holidays and a happy new year. We try not to screw up the servers over the holidays, so you can chill out and play some nice games.

 

 

 

 

 

 

 

But wait. We forgot one of the presents, didn’t we?

 

 

 

 

Oh right. Well, g0l0l and Brutus5000 have not forgotten you, so we just want to tease a little bit more for 2018…

 

 

Categories
Server Update

Wiki maintenance

Our wiki has just received a maintenance update (from an unsupported version to a LTS release which is supported until mid-2019). As a result the skin “Dark vector” was removed as it is no longer supported – I don’t know if anybody used it.

Wiki registration is also fixed and working again.
If you encounter any issues please post in this thread.

Update 20.12. 20:00 CET: File upload is fixed now too. Damn you Alpine Linux for your minimalist packages!

Categories
Server Update

2017-12-18 Server Update v0.9.8

The server has been updated to v0.9.8.

  • Updated the GeoIP database which is responsible for displaying country flags (thanks MathieuB8)
  • Fixed Link-to-Steam URL (thanks MathieuB8)
  • Improved smurf-protection and measures against people flooding FAF with fake accounts
  • Improved API to support the new moderator tool functionalities, especially for cleaning up the map vault (thanks Brutus5000)
  • Improved API to support better map/mod/replay vaults, especially sorting by rating

I will start future server updates with a news post to make people better aware of it. Also, I recommend everyone to sign up at faf.statuspage.io where you’ll receive notifications about the status of FAF.

Update: Actually, I did a mistake and the server has not yet been updated to 0.9.8 as I thought. I scheduled another restart at 08:00 CET which will then update to 0.9.8 for good.

– Downlord

Categories
Development Update Server Update website

FAF Development Call #12 – 01/10/2017

Hello Commanders!
The council and developers of FAF have discussed some new topics that can be found on our channel. We streamed the video so you can have a look at what has been discussed.

Here’s the video for you: https://youtu.be/t__2Ue-3Z7Y

Administrative Topics:

Visionik (who used to pay for Slack and the server until recently) is currently still paying for the emails and owns the limited liability company that owns FAF (sheoo will take over that as well).
Please note: This was planned and Visionik did NOT leave due to personal disagreements with the developers.

New Server:

The server is hosted by a German host called Hetzner
The current monthly charges for this server are roughly 40€/month. Our planned server cost ~100€/month with the test server and additional services once ICE is implemented.
A big thanks to our supporters on Patreon who cover the cost – additional money may go to tourneys or bounties for developers.

Ladder Map Repititon:

Currently the map selection is purely random (from a pool of 7).
Last played map might not be selected in the future to avoid repetition
code link: https://github.com/FAForever/server/blob/develop/server/ladder_service.py#L34

Rating of BHedit:
Assuming the mod doesn’t break due to the 3690 patch it will become rated.

– Galactic War:
New developers for frontend have stepped up to help bring this mode back. Progress on universe generation, solar system names and commander names.
The biggest task: integrating everything into the server – The issue: Brutus can’t do it on the python server but he will do it on the java server (which will replace the python server).
If someone else wants to implement it into the python server then feel free to contact Brutus via slack (access to slack can be obtained by contacting a FAF moderator).

3690 patch:
Mostly bugfix patch – no big additions such as notify.
Currently playable via the FAFdevelopment featured mode | changelog link: https://github.com/FAForever/fa/blob/deploy/fafdevelop/changelog.md#patch-3690-upcoming
Should become the regular FAF patch before the end of November.
LUA programmers are as always welcome to help us.

RKS explosion:
Fixed by speed2, crotalus and icedreamer.
Playable with the FAF development featured mod – playable with the regular patch once 3690 is rolled out.
Bug reports are welcome. If you find a bug, please submit it ASAP.

Website Devs Wanted:
Mostly JavaScript github repo: https://github.com/FAForever/website

– Mod Vault Search:
Issues with the API that will be fixed in the future (currently using the secondary server which will be replaced).

– Missing Flags:
We’ve concluded this could be due to outdated geoIP data.

Map and Mod Vault Cleansing:
Duplicates that are not needed will be hidden in the future.
Featured maps could be a way to promote good maps easier.

Wiki file upload and account creation broken:
We would like some help to fix this. If you would like to volunteer, please let us know.

ICE status:
The ICE adapter has been rewritten in C++.
Tests are currently being carried out and improvements to the adapter are being made.

BiReUs:
Partially implemented in Downlord’s client.
Generating the patch files on the server needs to be done.
After that it needs to be implemented in the python client as well.

Unit Database:
New database (spooky has incorrect calculations) and old database needs to be fed current information but we lack the permission to publish the source code.

Shared Armies Mod:
Mod is functional but requires a patched executable which will be shipped with 3690.

A big thank you to all of our Patreon supporters for helping us out. If you would like to watch the video to view the full discussion after reading these highlights, please follow the link above the list.

Happy Hunting All and thank you for continuing to use FAF.