And here we are - the patch is live!
The development branch has been tested thoroughly - however, as with any patch - things may leak through. Please post your findings when things break in this topic. Make sure that you include:
The changelog as described in this commit
Hi everyone. Recently I've taken on the task to optimize the FAF base game repository. Since LOUD shows it is possible - why shouldn't we do that too.
As it stands I've made a profiler to help figure out what functions are called often and how to write code that is more efficient. One approach to this is through benchmarks. See also this folder:
All benchmarks (with a similar name) perform the same operations, some faster than others. To give a few examples:
rewriting of existing functions
This shows that it is possible from a theoretical perspective. I've been doing work on optimizing projectiles that you can find here:
When 400 Zthuee are firing at one location it takes 12 - 15 ms on the base branch, assuming you are completely zoomed out. On the optimized branch it takes 8 - 9 ms. That is a significant difference on its own - and this is just on projectiles. @CheeseBerry can confirm this - on his computer it runs about 18 - 20 ms on the base branch, where as it runs 14 - 15 ms on the optimized branch.
Up to this point I've only optimized while trying to keep the original logic alive. However, there are some things that I feel are not required for the overall game, are expensive, and can not be made cheaper. I'll use this topic to discuss these issues to get a bearing as to whether people think it is worth changing or taking out of the game.
In order to facilitate discussion each problem will have its own topic on the forum. Please remain on topic, whatever you are writing for. As it is easier for me to identify how people feel about certain changes.
This is a sub-topic of this topic. Please keep this topic clean and only talk about this one specific issue. Balance will not be changed - it is just an aesthetical change.
This specific topic is about the Cybran build animations. This is by far the most expensive build animation of the game, yet typically the most used one because of Hives. Lets start with some numbers.
The sim runs at 10 ticks a second, therefore we have 100ms for each tick. Let us compare some engineer numbers when they are building something:
That isn't too bad. Lets try with 150 t3 engineers.
And what about hives / engineering stations.
The reason cybran engineers tend to be more specific is for one, and only one reason: they require a large number of additional (dummy) entities. As an example:
Each hive has drone bots. These are new units made from scratch each time the hive starts building while it doesn't have any drones at all. Each drone requires a random target on the structure it is building to create a beam. Each of these targets are (dummy) entities. Therefore for one hive you need:
Then we have the effects that the hive uses.
That means we introduce over 12 new entities (of which 6 are units) and 18 new emitters. As a comparison:
Other Cybran builders can be discussed in a similar manner - resulting in much higher entity and emitter counts than their co-workers.
The Cybran build effect is unique and I do not intent to take it out entirely as it is part of the game. However, having it in its current state can seriously slow things down especially for slower computers and laptops. (as a comparison: the computer of Cheese runs the sim almost twice as slow as my computer, by default).
What I suggest is the following:
All in all - the effect will be the same when you use 10 - 20 engineers or more. But - I expect it to be a lot cheaper when you use 50 - 100 engineers (or hives). My question to you all is - what do you think, and do you think it is worth changing for the more sim speed?
disclaimer: the times are related to the performance of your processor / RAM. You will have different timings, but their differences (in %) will be roughly the same
The Aeon and Seraphim have a higher baseline because they have emitters underneath for a hover effect. This means that the sim has more to do. That is why they start at about 3 ms, while the uef and cybran engineers start at about 2ms.
This topic is solely about the cost of buildings things. Therefore we do not look at the baseline, but at the difference between the baseline (idle engineers) and engineers assisting something.
Hi - dude is here.
The forum is even more replete with error messages after updates
We've been asking people to report them on the forums and / or to me privately (assuming it is game related).
which no one cares.
See also the patch that includes a few fixes, more information here. I'm sure you'll love it.
Leave the client as it is and stop updating it!
Are we talking about the game or the FAF client? Those are two different things.
Note that a game has to evolve in some fashion and that there are always bugs - just not always visible to you. An example: the mitigation of the DDOS attacks we had earlier September. If we would not update then, you wouldn't been able to play all month (and likely still be unable to).
Besides that, thank you for your support and please keep it coming
There are no requisites for this section.
This introduction guide will try to motivate you as to why decals can be important to both the experience of the player and the perception on the product as a whole. Essentially it is the finishing touch on a beautiful cake, the final mile of a marathon or the last tweaks on that hobby of yours.
And exactly that is why it is one of the hardest phases of the development of a map: it is already fleshed out, the resources are in place, the strata are done and as a whole its seems to be already good and playable. Why spend hours and hours on those decals?
Well, good of you to ask. Lets go on a journey together.
It is important to understand what it is that we're trying to achieve. With my students I like to work backwards: we start looking at the result and try to understand what it is trying to tell us. And let us start off good with some animated content of maps that are either in the vault or under construction. The purpose is to try and understand what it is that these decals mean to you. What is their added value in your own experience?
Hymn and Bone: there are no decals in the slider.
Fifth Nomad Mission: there are only decals in the slider.
Seton's Clutch: There are no decals in the slider
Next off we have a bundle of images of maps. Feel free to post your map down below and I'll ponder on whether it fits the next series. All of them have 2 sections that do show decals and two sections that do not show decals. Again, the purpose is to try and understand what all of this means to you.
Nomad Mission 5, under construction as of writing
Long John Silver, under construction as of writing
When looking at the examples, determine what it is that you think that decals are doing to the map according to you.
Seton's Clutch, before Forged Alliance
Don't stop here. Experience it live yourself - open up one of the following maps in the Ozonex or GPG editor:
The GPG editor crashes when it is trying to open up a map made by the Ozonex editor that is saved as version 60 (forged alliance), instead of version 56 (vanilla). You need the Ozonex editor to open these up and save them in version 56 of the map file format in order to open them in the GPG editor.
You can find maps that you have downloaded in:
You can find the default maps at the installation folder of Supreme Commander Forged Alliance.
There is a Hide all and Unhide all button to quickly switch. You can find it under Decals -> Tools.
Use CTRL+A to select all the decals. Then press Delete. You can now quickly switch between a view with and without decals via using CTRL + Z and then deleting them again.
I hope this gives an idea to you as to what decals mean to you. This can be anything - there is no good or bad here. Use this as your argumentation.
The next topics cover as to what decals mean to me. We don't have to agree and a discussion is always welcome.
Decals on their own do not affect the simulation. After all, they do not make the terrain more bumpy or change the terrain type - it just looks more bumpy or more grassy. Nevertheless, to me they do affect the interpretation of the simulation. In other terms: to me decals have influence on the gameplay.
Let me elaborate via the usage of strata. Typically a rock stratum is used for places that are expected to be unpathable, such as cliffs, mountains and steep hills. This is done in almost every single map. Especially the default maps that are shipped with the game both learn us and use this association to make it easier for the player to understand the simulation.
In its essence: the rock stratum communicates some form of state to a player: this piece of terrain is likely unpathable.
Other instruments that communicate state are:
And that is how we get back to decals. Decals allow you to tap into a source of associations that the player typically learns throughout playing the game. This source of associations can be used to make your map easier to understand. As an example, would you say there is a hill on this bit of terrain?
After some careful consideration you'll probably say: 'Yes, of course! Look at the lighting on that piece of terrain. There must be some elevation there.' And you're right: there is.
Typically though, after play testing the map with new players, people build turrets behind the hill such that the hill blocks all projectiles flying towards units that are in front of the hill. In turn this forces me as a map designer to question as to why this is.
The reason turned out that even though the state was communicated through lighting, it was communicated too poorly. People do not have time to inspect the terrain when they are playing a real time strategy game. And because the lighting wasn't that significant, people just generally just overlooked the hill.
To communicate 'the hill' better I decided to place a few decals on it.
After which I never had the complaint again of their turrets shooting some hidden hill. Players either made their turrets in front of the hill. And if not, at the very least understood what went wrong and that they could've known about it before hand.
Therefore to me, decals can help you as a designer to communicate state.
The magic circle is an interesting concept in which a user accepts to drop the normal rules of the physical rules and replace them by new rules - allowing you to enter a world such as a game, or a movie, and emotionally live along with that world.
It is the reason that people can cry at the end of a movie: they accepted the environment which describes whether or not a user can accept a new reality as a truth - and in turn, accept anything that follows from that reality.
One can argue that initially when you start playing a game decals can help a lot to capture your imagination. It is what makes the world feel more acceptable - imagine playing this game the first time when all of the maps had no decals on them at all. The gameplay may be just as interesting. All the trailers, footages of the game and other PR material on the other hand would appear blunt and less appealing to you. In turn, you would be less quickly drawn towards the product.
The same still holds if you do not play the game competitively but more casually. The graphical appearance of a map can introduce all kinds of play and allows people to see a higher contrast in this world of play, or, step into it more easily.
We started off with a question what decals are for you. Throughout the article we have tried so far to answer this question by comparing maps with and without decals. The hard truth is however that the majority of popular maps barely have any decals on them at all.
Some people were discussing this fact in the Map & Mod Making Discord channel, and they have a good point. When we take the top 20 of the 18th of August, 2020 then the results are as following:
The overall consensus is that decals aren't that important for a map to be popular. Surely people may enjoy aesthetics maps, but generally, they won't choose a map for aesthetics. They choose a map for the game play experience that the map facilitates. And decals aren't a part of that choice.
There are maps out there that do not have that many decals, while still being appealing all on their own. And there is something to say here: decals are not a necessity. In my opinion they are a powerful tool to enhance an experience, but they cannot create the experience on their own.
A map that is beautiful on its own with a mere 318 decals on it, of which 44 are unique
And all of this brings us back to the original question: is it worth spending time on carefully placing decals on a map? This is question that is for you to answer - some will say no, others will respond with an astounding yes. I hope this article allows you to make this argument with yourself.
For more information on the magic circle:
A few good talks from GDC about level design:
If you have interesting sources, approaches, opinions or ideas that are not listed yet but may be valuable to the article: feel free to leave a message down below or contact me on Discord. The idea is to create a bunch of resources to share our knowledge surrounding development in Supreme Commander.
If you've used this resource for one of your maps feel free to make a post below: I would love to know about it!
I think we should treat him as any other member of this community - remember that he is here to enjoy his spare time, just like all of us are.
Unless I can have my own avatar too, of course .
I was wondering if it would be possible to have read-only sections of the forum where only a specific number of people (from a given group, for example) can write to.
Specifically I am referring to the balance team having this option. Not because I don't think they are doing a great job but because I think their discussions can provide a great deal of insight to (new) players.
If this would be possible, the balance team has a clear section in which they can discuss everything without interference. And the community can read this and make new topics to ask questions and / or make suggestions in the 'general balance section'. The original section that is 'read-only' for anyone but the balance team remains concise.
An example of why I think this is relevant:
I'm not 100% confident if these are guaranteed balance changes or not, but if it would be, people are generally unaware (beforehand) unless they stumble upon it accidentally. And then you can ask 'why', which is not explained in the pull requests. I bet there has been a discussion about this somewhere that reveals all kinds of insight but I can't find it and I'm confident that a lot of other members are unable to find it too.
And again: without judging whether the change is good or bad: I think the discussions can provide insight to (new) players. And those insights are key to the game and I feel they should be on the forum. But, if and only if it can be protected by the suggestion mentioned earlier. Otherwise I can see myself (accidentally) diving into a topic with a context that I'm clearly not aware of, or ask questions that have been answered months ago and cluttering up the whole (original) discussion.
As a visual example:
Where the 'internal' balance discussions can only be written to by members that are part of the balance group (as there is a 'council of setons' group, 'moderator' group, etc)
edit: I do not speak for the balance team - this post is the result of a discussion I had with another member. I hope someone from the balance team can come on in and share their tale.
With no irony, I think 'Aurora' is the answer to all your questions.
A survival unlike any other - fight with up to two additional friends in a race against the clock. The map is designed such one needs to expand in order to survive. Due to the behavior of the AI having only point defenses will not take you far - it will try and evade threats while it is on its way towards the artillery stations.
The goal is to keep two artillery installations alive while they make it rain in another operation off-site. Hence, they are nicknamed the Rainmakers. The enemies will be fierce and they'll try to out smart you whenever they can. There are various difficulty settings available in order to tune the map to your rating. By default the map is a fair fit for a team with an average rating of 1100 (ladder).
Other relevant information:
Link with more information:
A map made in collaboration with @archsimkat . The map is designed to have clear primary and secondary expansions and therefore providing a variety of opportunities for other players to raid. It has been in ladder in October 2020 and hope to see it played more competitively .
Links with more information:
A map made with naval play in mind. The map is designed to have clear primary expansions in the center and the outskirts of the map to assist people in expanding and making map control more worth it. The map is reduced in size to about 26x17. Players start off with relative little mass the further they are from the center to discourage rushing tech 3 air.
The map was made to bring in more attention to the fact that islands are slowly disappearing throughout the globe due to the raising sea levels.
A map made with land play in mind. The map is designed to have clear primary expansions along with various paths one can take to harass the other player. The back-side plateau is an example which is key to protect to prevent your base from being shelled from above.
The map as made to bring in more attention to the fact that in some parts of the world nature is lost to a phenomena called 'desertification', where parts of nature that are near deserts are slowly converted to more desert due to climate change.
The map has all kinds of little tweaks, including but not limited to:
A map made for the SC:TA mapping tournament. The idea was to replicate the TA map 'Long Lakes'. In practice the map doesn't quite look like its target.
A map made in collaboration with @Eo_Empiran. The idea was to create an alternative map for 'Ozone Islands' because we wanted to see something new. In practice the map plays quite different to target map.
The map heavily relies on navy play but with the current balance in combination with the vast distance on the map one can quite easily rush tech 3 air. Suggestions on how to combat this are welcome .
A map made in request by @LegendSmith where he wanted to see more 3 v 3 v 3 maps. The map is heavily reliant on navy play. There are multiple player layouts possible for the map. The intended layout is to have one member of each team on their corresponding main islands, such that there are various 1v1's breaking out. In practice this turned out to be a horrible layout: as soon as one island is won then that team will generally win as a whole.
A map inspired heavily on the Astro Crater map made by BSR_Astro. The map uses the latest map development techniques such as a map-wide lighting and normal map.
In contradiction to the original there is minor reclaim in the spawn locations and there is quite some reclaim in the center. The center is directly influenced by your neutral civilian settings. You can freely enter and exit the water anywhere outside of the craters to allow your commander to easily get out of a dangerous situation.
Link with more information:
A map inspired heavily on Sludge made by GPG. The map is made with the game mode Phantom in mind. It can accompany up to five players. You can reach both neighbors with tactical missiles, but you can only reach one neighbor with a t2 artillery at any time.
A map made for one of the developers of LOUD. The map is inspired upon 'Valley Passage'. The idea was to have the layout similar to the original, while giving a major aesthetical boost.
this map is not available in FAF
A map made for one of the people that provided a design in the collaborative design topic. For more information:
This map is the first design but certainly not the last design made from that topic. The aim was to improve the workflow. This was accomplished by removing Photoshop from the equation entirely - this map uses World Machine and Image Magick in a semi-automated workflow. It took roughly 10 hours to get the map in its current state. There is an easter egg in the center.
at the moment of writing this map is not yet in the vault
A mod made as a replacement for the current featured King of the Hill mod that is part of FAF. At the moment of writing it supports:
It works on any map and there are a few options available:
A point is given for every 30 seconds of control. The hill can be controlled by either having your commander on the hill or reaching a mass threshold with (land or naval) units. A hill can be contested by having your commander on the hill or reaching a lower mass threshold with (land or naval) units.
A series on how water works in Supreme Commander: Forged Alliance. Includes all the information one needs to get started on not only using water more creatively but also understanding various concepts surrounding water more thoroughly.
This is in the GPG editor ! It doesn't use any stratum layers yet so there is still loads to gain.
I discovered what caused the artifacts: terrain that is too 'perfect' or 'smooth' causes the sediment to pile up. The piled up sediment causes artifacts.
I think the boundaries straight-line are some artifact from how the erosion splits up the terrain into blocks, allowing it to run on multiple threads. But that is just a guess.
The same location, but now without those artifacts .
The following pull request on Github has been merged to address this feature:
For the full changelog so far, see this file:
The final behavior for capping structures as it is programmed right now:
I've increased the click count to allow you to just repair without capping, I always found that to be very annoying myself. The requirement of shift is now more consistent: if you want to apply the capping right after a structure finished upgrading then you need to hold shift.
Please test the feature on FAF Develop and report back in this topic. You can switch branch when hosting a game:
This particular bit:
warning: Premature EOF
warning: ...alliance\gamedata\mohodata.scd\lua\system\import.lua(37): Error importing '/lua/usermusic.lua'
warning: stack traceback:
warning: [C]: in function error' warning: ...alliance\gamedata\mohodata.scd\lua\system\import.lua(52): in function import'
warning: ...alliance\gamedata\mohodata.scd\lua\system\import.lua(37): in function import' warning: ...a\faforever\gamedata\lua.nx2\lua\options\options.lua(52): in main chunk warning: [C]: in function doscript'
warning: [C]: in function pcall' warning: ...alliance\gamedata\mohodata.scd\lua\system\import.lua(48): in function import'
warning: ...alliance\gamedata\mohodata.scd\lua\system\import.lua(37): in function import' warning: ...liance\gamedata\lua.scd\lua\options\optionslogic.lua(14): in function GetOptionsData'
warning: ...liance\gamedata\lua.scd\lua\options\optionslogic.lua(51): in function GetCurrent' warning: ...liance\gamedata\lua.scd\lua\options\optionslogic.lua(181): in function <...liance\gamedata\lua.scd\lua\options\optionslogic.lua:179> warning: Error running '/lua/options/optionslogic.lua':Apply ...alliance\gamedata\mohodata.scd\lua\system\import.lua(37): Error importing '/lua/options/options.lua' stack traceback: [C]: in function error'
...alliance\gamedata\mohodata.scd\lua\system\import.lua(52): in function import' ...alliance\gamedata\mohodata.scd\lua\system\import.lua(37): in function import'
...liance\gamedata\lua.scd\lua\options\optionslogic.lua(14): in function GetOptionsData' ...liance\gamedata\lua.scd\lua\options\optionslogic.lua(51): in function GetCurrent'
...liance\gamedata\lua.scd\lua\options\optionslogic.lua(181): in function <...liance\gamedata\lua.scd\lua\options\optionslogic.lua:179>
Very strange - try without UI mods and if that doesn't work, remove the game data folder from C:\ProgramData\FAForever\gamedata and let it redownload everything. it appears some of your files are corrupt.
We need the information from the debugger:
It is in the mod vault, part of the client
Once a PR on changing the mounting of the game is finished I'll make a PR that adds what the mod does to the base game, and then blocklist the nvidia mod all together so that it doesn't interfere. At that point it can also be hidden in the vault - but lets first finish that PR this weekend .
I'd like to note that there is an update to the pull request on Github, see also the description of the this message.
We're going to add the 'Nvidia fix' to the base repository with the next patch 3726 on the 26th of November.
We can fix it - it is just a very time consuming bug to solve.
I think this topic has served its purpose and should be closed.
That is a directx call that fails - are you running on Linux? Or are you accessing textures through another program?