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.
Image editing tools, such as:
Map editing tools, such as:
On the 30th of September, 2020 the Ozonex editors renders water differently than in the game. Thus it is not representative to what you would see while playing. On the contrary, the GPG editor utilizes the exact same procedures as the game does and is therefore representative. If this is no longer the case when you read this - do notify me and I'll remove this paragraph .
For this article I assume that you have extracted all the textures the game has to offer. If you have not done so and / or do not know how to extract all the texture, I advise you to check the FAQ in the overview article. There is entry explicitly on how to do this properly to allow the GPG editor to generate the correct relative paths to the textures.
A normal map is commonly used in older rendering engines in order to create detail that cannot be represented by the geometry of a shape. This is quite a sentence and I encourage you to look at the following article:
A water map is a lot like the common normal map, but with a different interpretation of the alpha channel. And because of this difference I do not just call them normal maps, but water maps because the alpha channel is only taken into account when it is used to render water. This article describes the exact interpretation in depth.
It is important to understand the goal of this article. Personally I like to work backwards: we start looking at the end result along with the context and then try to understand how this is accomplished.
A visual comparison between different types of wave normal maps
For more context on what this all means I encourage you to open up the GPG editor and import the following water settings:
You can either download the file or create a new file with a .lua extension. Once inside the GPG editor you can import the configuration via File -> Import -> Water.
For this article we'll look into how the waves on the water surface take shape. This is accomplished by combining various water maps. We'll discuss where we can find the assets regarding to water that the game provides, how we can interpret these assets and how we can make our own.
The game provides a bundle of water maps by default. These are used throughout the default skirmish and campaign maps. Assuming that you have extracted the textures correctly previously, you can find them at:
Once inside you'll find a bunch of water maps:
waves.dds (no foam channel)
waves000.dds (no foam channel)
waves7.dds (completely white foam channel)
waves001.dds (with foam channel)
waves6.dds (with foam channel)
For each image, the normal map is in the top left and the alpha channel is in the bottom right part.
You are not limited to using these - any repeating normal map can be used! You can think of normal maps that are generally used as strata textures. This can create all kinds of interesting effects. A typical normal map will have an opaque alpha channel - this may cause the water surface to become completely white. When this happens, read the next section carefully: not all normal maps are fit as a water map out of the box.
A water map is the typical purple-looking normal map one would expect, including an interesting interpretation of the alpha channel.
The latter indicates whether or not there is foam on the water. Foam is generated when the total foam value after combining the various water maps is larger than 1.0 (more than white). This effect is generally not visible because the majority of the wave maps provided to us have a black alpha channel. The only reasonable assets that generate the effect is waves001.dds and waves6.dds.
Water of the map Paradise, with foam on the top left and without foam on the bottom right
When you open up the standard map Paradise (scmp_035) you can see one of those water maps among the water properties, in turn generating a small foam effect.
Enable the Water layer (F9) and click on 'Water Properties' in the toolbar of the editor. The tool window will respond and change into a 'Water Properties' window. For this article we're interested in the very last properties: the texture, direction, speed and frequency of the water maps.
Showing the properties in which we're interested in for this article
Assuming that you have extracted the textures correctly previously, click on the '(...)' button and navigate towards the location where they should be stored:
Choose any of the water maps and start experimenting with them.
Other interesting properties are the direction of a normal map, its speed and how often it is repeated on the water surface. You can change these live in the GPG editor:
Direction: Water starts movingtoward top/north. Increasing the number will rotate the effect clockwise.
Speed: The speed in which the water moves, the lower the value the slower the water moves.
Frequency: The size of the texture on the surface. Lowering the value causes the texture to be tiled more on the water surface.
Toying around with the water maps and these settings can create all sorts of interesting effects. From here on the journey is yours. Feel free to share your findings in the comments below!
A visual comparison after changing some of the wave normal maps
You can store water maps inside your map folder. For stratum textures and decal textures there is a specific location where these should be stored. For water there is no hierarchy that you need to use in order for the game to find the files. It is good practice to store them inside the env folder that the other textures require in order to function - this keeps it organized.
As an example, you can store them in:
For this tutorial we'll use the following normal map:
You will need an account to be able to download the normal map. The website is free and you will get 15 points for free each day allowing you to download seamless textures. If you are aware how hard it is to make these kind of textures then you know we are practically robbing them via their own freemium model. Do take note of the license on the textures - as an example we cannot share them without explicitly using them and you need to mention the source in the description of the map.
Any normal map texture from the internet will likely have a fully opaque alpha channel. We just learned that this is used to generate foam on the surface therefore you may want to make it black or give it some interesting shape. Save the texture in the .dds format. You can do so by opening it in your favorite image manipulation program that supports the .dds format, such as Gimp or Adobe Photoshop. Use BC3 / DXT5 as your compression algorithm.
A visual example of water that appears to have really large waves in it
When you upload the map to the vault the name of the folder of your map is changed. The path to your custom textures is not adjusted accordingly, in turn the game cannot find the corresponding textures.
To approach this you can use the Ozonex editor to bump your map version which creates a new folder with the correct version and in turn you can use the GPG editor to set the corresponding paths to the new folder structure. When uploading the name of the folder of the map no longer needs adjusting and everything will be good.
With Supreme Commander we are in a unique position in which we can not only toy around with the graphical assets, we can also see how these assets are used in the rendering pipeline of the game. The (HLSL) shaders can be found at:
To strengthen our understanding of this article it is nice to see how the assets are used in the rendering pipeline. For this article, the following bit of code inside the water2.fx file is particularly interesting.
// calculate the normal we will be using for the water surface
float4 W0 = tex2D( NormalSampler0, inV.mLayer0 );
float4 W1 = tex2D( NormalSampler1, inV.mLayer1 );
float4 W2 = tex2D( NormalSampler2, inV.mLayer2 );
float4 W3 = tex2D( NormalSampler3, inV.mLayer3 );
float4 sum = W0 + W1 + W2 + W3;
float waveCrest = saturate( sum.a - waveCrestThreshold );
// average, scale, bias and normalize
float3 N = 2.0 * sum.xyz - 4.0;
N = normalize(N.xzy);
float3 up = float3(0,1,0);
N = lerp(up, N, waterTexture.r);
The waves that makes the water appear so alive is nothing more than a summation of a bunch of normal maps, each at a different position to simulate the idea of movement.
The values mLayer0 up to mLayer4 are computed in the vertex shader, at an earlier stage of the pipeline. In turn these values are used to get pixel information from a texture using tex2D along with the according texture samplers that describe how certain situations should be taken care of and the coordinates that we wish to sample.
After which the various normal maps summed together, resulting in a single vector. The vector is first used to compute the wave crests values that in turn are used later as part of generating the white foam on the surface water. Take note that the foam value solely uses the alpha channel! The normal is adjusted accordingly to match the fact that we added four normal maps together. It is then used for lighting, reflection, refraction and speculation computations down the road.
The flatness that we can define in the editor is applied as a linear interpolation between the up vector and the normal computed at the surface of the water. The more we flatten the water, the less of the computed water normal will be used and therefore the water will appear to be more uniform.
For more information on the operators used:
You' are using water maps that have (completely) white alpha channels. The alpha channel is interpreted as foam. If you want to use those water maps, change their alpha channels to black (no foam) or some other pattern to introduce foam in a more natural manner.
For the first normal map that has a white alpha channel this doesn't have an effect. Foam is rendered on the water surface when its value is larger than 1.0. In other words: when the combined normal maps have an alpha channel that is more white than white itself.
Two examples of problems with foam
When you upload the map to the vault the name of the folder of your map is changed. As an example,
The path to your textures is not adjusted accordingly and in turn the game cannot find the corresponding textures when you download the map from the vault.
To approach this you can use the Ozonex editor to bump your map version and then use the GPG editor to set the corresponding paths. The Ozonex editor already prepares the correct name of the folder of the map. When you upload the map no adjustments are required and therefore no renaming happens.
For more information on normal maps in general:
For more textures that you can use in your projects:
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!
Special thanks to @keyser for providing feedback on the article.
@RandomWheelchair said in Why would you have left FAF?:
But it works? People are getting banned all the time?
Hell, there are instances where people are getting banned for stuff they should never have been banned for. So I really don't get it how you can come and say that it doesn't work?
Maybe instead of crying you should just make proper report next time with proper evidence?
But it works? People are getting banned all the time?
Hell, there are instances where people are getting banned for stuff they should never have been banned for. So I really don't get it how you can come and say that it doesn't work?
Maybe instead of crying you should just make proper report next time with proper evidence?
This is exactly the type of toxic attitude that resides in this community. Your reply is harsh, is empty content wise and is at best trolling in this context.
As an example, do you understand the full context of @veteranashe ? Did you ask him how he makes his reports? And if you did, did you tell him how to make a better report?
With your response you're just telling him to 'stop crying' and 'do better' without telling him how to do better. How would you react if your professor would give you an C- and then just tells you to 'stop crying and do better'? Does that tell you anything on what you did wrong? Does that tell you what topics you don't understand yet, and why? Does that help you prepare better for your next exam? It doesn't - as much as your post doesn't help anyone reading it either.
If you are going to tell someone to do better, at least state how better should look like. That may or may not help veteranashe, but perhaps it can help someone else and it appears a lot more friendly to the random reader that right now reads 'stop crying, do better - cheerio mate'.
Back on topic: I joined faf years a go just to leave it within a month. It wasn't a skill issue, it wasn't any technical issues: it was toxicity.
Every single game I did everything wrong because I did not understand the meta in map X or map Y. And I'm leaving the map names out with a purpose - according to every map that a host hosts there is a meta and if you don't get that meta then you apparently suck ass and should just uninstall the game. This while I could beat all my friends and the original AIX in the base game at that time.
This kind of %$#@ still happens and is widely mentioned throughout this thread. Sadly, it is not only in the game itself but also in our discord channels. Including the creative discord where content is made for this game.
Apparently people find it important that their opinion is always heard, even though there is no reason to state it with the attitude that sometimes is used. Multiple people have left the creative discord after or during their first map because of toxicity in the form harsh comments or opinions that were not required at all.
Throughout the last year we've lost at least three people that I can name from the top of my head that were either making content, or were at the start of making content and got demotivated or insulted because of the harsh responses that they got while showing their map and / or asking for feedback.
On top of that - the forum and the discord channels are essentially public - how does it appear to the random reader when its filled with toxicity? It wouldn't be that much inviting to me.
Alas, the only reason I came back two or three years ago is because this is the only reliable platform on which I can publish content for the game - and I enjoy doing that a lot.
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 .
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.
At the moment of writing the Ozonex editor renders the water quite differently. In turn the rendering of the water that you see in the Ozonex editor is not representative to what you'd see in-game. The GPG editor uses the exact same procedures and is therefore completely representative.
The primary usage of these elevation parameters is to both define the water surface and the range of the water ramp.
Defines at which height the surface is. There can only be one surface of water - multiple surfaces to support maps with varying water height is not supported. Is also used as a marking point as to where the water ramp starts.
Any value above the surface will share the same value as the one on the surface. Uses the pixel in the most top left corner of the water ramp.
Has no meaning of any kind. It is an aesthetic parameter as it is mentioned in the shader that renders the water, but never referenced anywhere in a computation. Has no game play effect of any kind.
Defines at which height the water ramp is at its lowest. Has no game play effect of any kind - solely used for coloring the terrain underneath.
Any value below the abyss will share the same value as the one on the abyss. Uses the pixel in the most top right corner of the water ramp.
Water with a surface in the left top slice, water without a surface but with the water ramp applied in the right bottom slice
The sun color parameters influence the color of the reflection of the sun. This reflection is a form of specular lighting and the options for the specular lighting are below the header 'Sun and Fresnel', discussed below. The sun color is a typical RGB color component as one would expect.
The values range between 0.0 and 2.0, which allows you to overload the color significantly. This is useful in the case that color is reduced due to shadows of some kind. Typically the range is between 0.0 and 1.0, representing values between 0 and 255 in integral-based colors.
The red component of the sun color.
The green component of the sun color.
The blue component of the sun color.
A slice with red and a green sun color
The reflection of the sun is unrelated to the angle of the sun defined in the lighting settings. It is always most visible when looking perpendicular at the water, where as the reflections are invisible when looking parallel with the water.
Surface color and interpolation
The surface color parameters influence the color of the surface itself. It colors the entire surface based on an interpolation of depth of the water. Lets look at the code to find out how this plays out in practice:
// as found in water2.fx
// we want to lerp in some of the water color based on depth, but
// not totally on depth as it gets clamped
float waterLerp = clamp(waterDepth, waterLerp.x, waterLerp.y);
// lerp in the color
refractedPixels.xyz = lerp( refractedPixels.xyz, waterColor, waterLerp);
// computations such as reflections and wave crests
The waterDepth is a value in the range between 0.0 and 1.0. At 0.0 we are at the surface height, at 1.0 we are at the abyss height. We defined these values earlier. The water depth is clamped between the two interpolation values. This has a set of consequences:
That means that if we have a minimal value that is larger than 0 all the water will always have some surface color and isn't transparent. This causes a visual annoyance when zooming out described in another article:
Now that we're aware of this we can also understand why the water becomes opaque when we up the values: we are interpolating between the refracted image of what is behind the water over a single color that we defined ourselves. When we up the values, all that remains is the surface color we defined.
An inconvenient error is that the depth of the water is inaccurately defined. This isn't as obvious when you view the water from up top, but it becomes clear when you view the water from an angle.
The reason for this is that the surface is changed in color, but not the color of the terrain behind the surface. That color is changed according to a water ramp, which we'll touch upon in this article and discuss in another.
Reflections of the sky and water crests will always appear on the surface - these are computed and combined after the surface color computations are complete.
Essentially what the surface color and its interpolation values describe is how clear the water is. Take the water from that cup standing next to you in comparison to water that you mixed with lemonade: the former is clear (hopefully) and the latter is almost opaque.
Reflection is the idea that water reflects light of its environment back to its environment. This is effect becomes more apparent the more parallel our viewing angle is with the water.
Refraction is the idea that water changes the angle of light that passes through it. This effect becomes more apparent the more perpendicular our viewing angle is with the water.
A linear interpolation as to how reflective the sun should be. Not sure where this is being used directly.
Determines how much the sky (cubemap) should be reflected.
Determines how much a unit should be reflected.
Determines how strongly the water distorts anything that is under water.
The sky reflection parameter has precedence over the unit reflection parameter. If there is no sky reflection, then there won't be a unit reflection either. This correlation exists because the sky reflection parameter is used, on its own, to determine whether we reflect anything at all.
// as found in water2.fx
// lerp the reflection into the refraction
refractedPixels = lerp( refractedPixels, reflectedPixels, saturate(skyreflectionAmount * fresnel));
As a result, if you decrease the amount the sky is reflected you'll also decrease the amount a unit is reflected by the water. If there is no sky reflection then only the refracted pixels and the surface color remain.
If you have interesting sources, approaches, opinions or ideas that aren't 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'd love to know about it!
A new map enters the arena! Welcome to Root of Beta that attempts to experiment with the latest techniques in making maps. Including but not limited to the following:
Root of Beta
There is a timelapse of the first 8 hours of the process in the make. You can expect it next year .
The mass values in the last screenshot is not as much as it seems - I've taken two times the square root of their original values. E.g., the Monkey Lord is not worth 15K but only ~300.
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:
This is a blog post on where you can find the current decals, how you could potentially edit these decals and how to add them back into your map. Take note that I am no designer, hence the 'edits' will be relatively simple.
This blog is also useful for adding custom stratums and, in the near future when it is supported, custom props.
We'll go through the steps with a case study for the one of the missions of the Nomad campaign.
A list of sources that you can use as inspiration for new decals, stratums and textures in general.
A video tutorial by @Morax about the same topic, with the focus on stratums instead of decals:
If you cannot afford Photoshop then you can use Gimp as an alternative. Gimp supports the .dds format used by Supreme Commander by default.
Take note that Supreme Commander also supports the .png format by default.
One of the nomad maps have lava in them. The map doesn't use the default stratum textures for lava, hence creating cracks like in Haven Reef is rather difficult.
The expected results:
The current results:
As you can see the colors do not match as nicely as one would like. Therefore we decide to make a small but evident change to the textures.
Where to find the original decals of Supreme Commander
The game itself typically resides inside your Steam folder, from there you can go to:
Copy the file and change its extension from .scd to .zip. Extract the .zip file you just 'created' - the contents contain all the stratum textures of the game, nicely organised per theme.
The files we need for this case study are:
On Windows 10 .dds files can be visualized in the Explorer. Make sure that your view is not on details but instead of large or very large pictograms.
On editing decals
I cannot pin point what to do for every possible edit. But I can give you some pointers and will tell you what I do to my textures to make them fit in more.
First of all, lets talk about the alpha channel. This isn't a separate alpha channel as one would typically expect, instead the base layer is not a background layer - it is a separate layer that has alpha encoded directly into the layer itself.
The channels of the decal
The layers of the decal
Therefore whenever you work with an alpha channel, think in terms of layer transparency. This is also useful to know when you search on the internet.
In our case we simply want the colors of the decal to match the colors of the stratum. Take note that the decal has different colors in photoshop than it has in the editor - this is due to the lighting settings of Supreme Commander that are applied to the decal. You can change these settings in the editor.
For the purpose of this blog we want to match the color of the decal with the color of the stratum used commonly on the plateau's. This allows us to more easily 'hide' the decal, making our life easier in the long run. We can do this by navigating to Image -> Adjustments -> Match Color and then choosing the stratum we exported along with it as source.
The original decal
The adjusted decal
Other tools that are certainly interesting without breaking any tiling patterns are:
And pretty much anything inside Image -> Adjustments is generally worth knowing about its existence.
Adding the decal back in
Now that we have made our adjustments it is time to make it available within the Editor and within Supreme Commander for usage.
Navigate towards your map. We refer to your map folder as root. Add in the following folders to your map:
Save your decals in .dds format in the decals folder and save any new stratum textures in .dds format into the layers folder. Take note that this nicely matches the structure of the original env.scd file that we extracted earlier.
For the future, you can add in custom props by storing them into root/env/props.
From this moment on the decals and / or additional layers should be visible in the Resource Browser of the Ozonex editor. Choose as Type the Map folder, and the corresponding Category. From this moment on everything works as expected and you can even load in the decals from the old GPG editor.
The outcome of the change
The difference is small but it is now nearly invisible unless you pay really, really close attention to the decal work and know what to look for. In both cases, players either don't do that or they don't know what to look for. All is beautiful.
If you have interesting sources that aren't listed yet: feel free to contact me on Discord or the Aeolus in Forged Alliance Forever! Take note that for the latter, if I did not respond, I may have missed your message.
Generation tools, such as:
World Machine templates for this article:
The templates are designed to assist you in creating various map-wide content. They are as they are - merely a template. What the templates can do for you:
The actual work is still up to you, including:
This template is not magic and it still requires you to understand what it can do for you. The template is practically worthless if you have the basic edition of World Machine - you could at most generate a light and ambient occlusion map for maps up to 10x10 reliably.
World machine file: workflow-3026.tmd
Supports the following features:
All normal maps are automatically converted to the green-looking normal map format that Supreme Commander expects for its decals.
Overview of the 3026 version
World machine file: workflow-4016.tmd
Overview of the 4016 version
World Machine has an interesting interpretation of raw files. Instead of dynamically determining of a raw file is 8 or 16 bits it looks at its extension. A .raw file is considered to be 8 bits where as a .r16 raw file is considered to be 16 bits.
When you export the heightmap from any editing tool you'll have a .raw file. However, its contents are encoded in 16 bits. Therefore make sure to rename it to .r16 - otherwise World Machine will not be able to understand the raw file in question.
For a light map you can use a resolution that is the same resolution of the heightmap. That will produce sufficient results. You can view a comparison for a 20x20 (1024 heightmap resolution) map at:
For a normal map you need to use a resolution that is at least eight times the resolution of the heightmap. Anything lower will produce blurred and insignificant results.
It may appear interesting to erode your heightmap too much. This can and will cause issues in the long run where the normal map is no longer in sync with the heightmap in question. Therefore use erosion at your own risk.
World Machine tends to be memory hungry when generating its content. It can help a lot to do your final build in tiles. This significantly reduces the memory consumption of World Machine without affecting the end result. You can read more about it in Chapter 10 of the World Machine User Guide starting at page 70:
This is a professional feature and is therefore not available to everyone.
Whenever you use normal maps make sure that their axis are correctly represented. In the case of map-wide normal maps we need to flip the y-coordinate. This is done in the normal conversion node itself.
A selection of the 5th Nomad Mission without (top) and with (bottom) these techniques applied
A selection of Adaptive Skadi without (top) and with (bottom) the normal map technique applied
A selection of Salt and Pepper without (top) and with (bottom) the normal map technique applied
If you have interesting sources, approaches, opinions or ideas that aren't 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 various fields of development in Supreme Commander.
With thanks to Beherith from the BAR community for the opportunity to have an Q&A for two hours about World Machine
With thanks to @svenni_badbwoi for creating the template for World Machine Mt. Daniel 3026.
With thanks to @Balthazar for various discussions on normal maps and their interpretation in Supreme Commander.
Update 3.1: An initial draft
An initial draft of the procedural content of the world machine template for this map. I've (ab)used the ozone editor to paint properties on the map which is input for the template. Can you guess which is what?
In turn, the template chews for a bit and spews out three decals: an albedo, normal and lighting decal. The specular decal is a bit more tricky and is not part of this draft yet. However the main idea is already there. There is still loads to do:
And last but not least the typical map things like props, extractors, etc. Looking forward to the discussion this weekend @Blodir.
I intended to have an initial draft for the map of @Leto_II too but that is postponed to tomorrow . We had a short chat and the design has been adjusted to account for height differences.
On top of that I've had contact with @Valki and I hope to hear from the original author soon so that I can start the progress on his map too.
And to give an idea of the process - a few images of me just starting at the terrain to look for issues. There area a few, some are easy to fix and others require some semi-manual (read: more procedural) tweaking to fix.
Typically the issues are:
I intent to make a batch to include additional props a week before the summer mapping tournament finishes. In turn with a bit of luck the maps from the tournament can actually go to the vault and immediately use the custom props.
To be specific: For this batch I'll accept the last props at the 10th of April. That will give me roughly 2 - 3 days to create the PR and test it. Then @keyser or possibly @speed2 can authorize the PR to the develop branch. In turn, the maps will be playable on the developers branch.
When that will be finally pushed to the master branch is beyond my knowledge. I'll leave that for keyser / speed2 to look into .
Please post your props in this topic in a convenient .zip and make sure that your props work in the ozone editor. Props that do not work in the ozone editor will not be included - I'm not going to debug your props .
@CorvathraNoob said in About Neroxis map generator...:
@Tex Have ftx and biass only been like this during the past year?.....
@Tex Have ftx and biass only been like this during the past year?.....
It shows quite a lack of respect to start such a discussion.
Update 2: An initial heightmap
An initial interpretation of the heightmap! In the case of Blodirs map everything was quite smooth. Due to the height numbering it was easy to interpret and make an initial draft.
Ironically it also shows how hard it is to make a design that works out of the box. In the case my interpretation of Leto's design I ended it with the center being underwater. There are a few easy fixes to this, but it requires more ramps to be introduced.
@Leto_II I am hoping you could make a design similar to that of Blodir with numbering at what height you expect something to be at. Otherwise Archsimkat and I will make an interpretation that may be different than what you intended. Specifically we're talking about the center here .
1165 hours in total - that is sufficient for more than five master courses at the university
edit: I won't look at my steam time.
Update 1: 'Initial commit', here we go
For those that have not opened the editor before: I've turned the design into a decal to ensure I stick to it as truthfully as possible. Of course - edits are welcome and the design is not written in stone. But as an initial setup this works pretty nicely.
From this point onwards its about generating the rough version of the map where I 'abuse' the ozone editor to create a symmetrical heightmap and 'paint on' properties that I can use in the procedural pipeline. I can paint properties via the stratum layers - these are masks that you can export. A few common properties are:
A technical note on the decal:
The designs are generally white where nothing is expected. In turn, I can use that as an inverted mask. White becomes black and black means its completely transparent. Via the decal templates templates for the GPG editor I can position the design exactly over the entire map without me having to manually fiddle with it.
677 hours over 1553 replays. That's sufficient time for three master courses at the university
Quite enjoyable to see that progress! Are you aware that you can export and edit models from the game? They're not as HQ as your current version, but it may help with the baseline.
I'm happy to announce that I'm going to try to make three of the four remaining designs, of which one is under condition.
Throughout this week I'll be making at least two preliminary designs. This will have all the fancy bits you'd desire, including prop placement, markers setup, etc. Over the weekend (6th and 7th of March) we'll discuss the progress.
I hope to talk to @Blodir and @Leto_II during that weekend. Feel free to send me a message on the forums or on Discord to make an appointment for a meeting. You can also find me in the creative channel if you prefer talking over Discord. I live in Amsterdam which I believe is GMT + 1. Please keep that in mind.
The last design is from @Valki and the reason it is under condition is because it is not your design. To avoid conflict I'd like you to contact the original maker (from Starctaft II) and ask for permission to use his design in a different game. I hope to receive a written confirmation on it, can be in any format that you desire as long as I can read it .
There are two reasons for this:
As a fellow content creator I'd love to hear if my content is used for another game in a non-profit manner. Just to be aware of it and the impact that the content apparently had. When this happens it is a compliment and that is always nice to receive. Whether or not you agree to it being used is another matter - one that I'd like confirmation on in this case .
And last but not least: please keep in mind that all of this is best-effort. That entails that if anything happens that has to take priority the process will either slow down, or in the worst case, will be halted indefinitely. I will always inform you if that happens.
I'd like to thank everyone for their inspiration and the short discussions in this topic .
You can no longer submit a design. Archsimkat and I will look over them and we'll make a choice or two this weekend .