The Seraphim just discovered Ahssa-Shi (named after god of reincarnation). The latest scans revealed that the planet is habitable, resource-rich and seems to have had large water reserves. Unfortunately the first exploring mission got somehow annihilated under mysterious circumstances at the landing site, plus the rescue signal was intercepted by the other factions. These events postponed further investigations, in order to win the battle ahead.
Latest version: 3
Highly improved AI path nodes – thx to ‘unknown guru’
Improved script to avoid vanishing decal glitch – map-decal disappeared, when optional structures (probably due to decal) and a certain amount of unit footprint/track-decals were spawned
Props statistics: 48.308 Mass & 84480 Energy
Mapping tools: FAF & SupCom map editor, Inkscape, World Machine, Photoshop, b2ag mirror tool and random prop generator
This map is a 1v1 navy map inspired from the gameplay from ‘waters of isis’. This map takes that slower navy play and pushes it into a competitive setting, however as always any strategy should be viable here. It’s 15km, so expect a little longer travel times compared to your regular 10km maps. Have fun, and mind the rocks.
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:
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
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.
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€.
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.
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…
Java server is a reimplementation of the current Python lobby server. We hope to improve the development speed, deliver new metrics for our users and finally overwork the network protocol (while staying compatible to the old client protocol).
Core technologies: Spring Boot, Spring Integration, JPA
Interested? Join slack channel #java-server
Java API is supposed to replace the current Python API eventually. The primary focus is to speed up API development for new functionalities, as no current developers wants to work on the Python API any further.
Core technologies: Spring Boot, Elide, JPA
Side note: There are also approaches to develop a Typescript-based API. We decided that both can coexist together.
Interested? Join slack channel #java-api
Downlord’s client is an alternative client to the classic python client. This is fancy frontend stuff using JavaFX. It’s already in a working state, but still has a lot of features waiting to be implemented.
Interested? Join slack channel #java-client-dev
If you want to join us in Slack, 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 Slack project.