Page 1

Official: [game][Evolution RTS] Resource layouts, Extraction schemes, Visual Representation, and how I fixed it.


The Issue: Mappers currently take a shotgun approach to resource layouts. They try to put resourcing locations in strategic places, and try to define resourcing amounts that will for for most, if not all games using the spring engine. Unfortunately, that approach will generally work well for one game, and be fairly mediocre for others.

Read More…


EvoRTS: Resource layouts, Extraction schemes, Visual Representation, and how I fixed it.

Today I’d like to explain what I’ve been working on for the past several weeks. This wouldn’t be even remotely possible if not for the work done by CommonPlayer (Stowtemid). Without him, this idea would have been dead on arrival.

The Issue: Mappers currently take a shotgun approach to resource layouts. They try to put resourcing locations in strategic places, and try to define resourcing amounts that will work for most, if not all games using the spring engine. Unfortunately, that approach will generally work well for one game, and be fairly mediocre for others.

The problem, with feeling!

The issue above only covers part of the problem. And even larger one is that some mappers will define too many metal spots or not enough. For games that have very tightly controlled economies like Evolution RTS, that presents a significant problem.

Case in point? Koom Valley. I LOVE this map. It’s pretty, it has a great layout and makes for awesome battles, but there are somewhere around 150 metal spots on it, each giving around 2.0 income. This quickly devolves into insanity. The vast majority of contestable resource locations are no longer important because it

Feel free to count…

The common response would be that this map isn’t intended for small games. That is a perfectly valid statement, but what if we could make it so that that isn’t the case? Why should we have to throw out playing on a particular map, simply because it wasn’t specifically designed for the number of players we want to use on it?

How do I plan to fix it?

In a few words? Randomized mex layouts. Evolution RTS uses LuaMex, and what luamex allows for is resource locations defined by lua. You can define where they are, and how much they give. But lets crank this into high gear. If we can do all that, what is to stop us from having an algorithm that places them for us based upon parameters we feed into it?

Then, building on that, if we have parameters we can feed into an algorithm, what is to stop us from having multiple layouts that can either be specifically chosen or randomized each game?

At that point, things start to get really exciting. It can be made so that each time you load a map, even if it’s the same exact map, you can end up with a very different game, only because the layout changed! The possibilities start to show themselves. But, there are some fairly significant problems…

The Problems, and how I went about solving them

The problems with this approach start presenting themselves early; at least to anyone who is familiar with spring. I’ll try to list all of the ones that I considered major:

  • Most maps have the metal spot textures baked into the map, which could cause a lot of confusion.
  • Currently, luamex identifies a resource location by having an animated white ring. Combined with the baked in metal spot textures, this is doubly confusing.
  • Pressing f4 will show the original baked in metal map.
  • What if metal spots get placed on the side of a hill/cliff?
  • How can we make it so that the spots are placed such that your start isn’t completely screwed over?

I gotta admit… That last one was by far the most important to me. Most of us are spring loaded (lolpun) to consider a 3 mex start as standard.

Standard start

Fix #1

Evolution RTS’ resourcing follows a fairly set guideline and progression. For those of you who aren’t aware, evolving things in Evolution RTS is key to advancing. Yes sure, you have your tech facility, but in edition to evolving to different tech levels, various other units and buildings are independently capable of evolution. You start at Tech 0, and progress all the way to Tech 3. Building the Tech facility grants you Tech 1. In this case, as metal extractors are the focus, you start out with a basic t0 mex. That t0 mex will produce whatever amount is written south of the mex spot. As soon as you get t1, it’s extremely important to get to t1 mexes, as the output essentially doubles.

Before getting too deep into that, it’s important to understand why this is the case. If you have a look in the modoptions for Evolution RTS, you’ll see that you can literally change just about anything. In most cases, you can tailor the game to play however you like, ESPECIALLY when it comes to resourcing.

The important slider here is the “Metal Extractors Income Multiplier”. That slider directly controls the output of each metal extractor. It also affects the number shown on the map south of the mex, the density of the color of the ring, and various other things. The important bit to focus on here, is the income itself.

For the sake of making is super simple (as it’s fairly more complicated), imagine that the progression of resource income takes this route currently.

Mex Spot Value * Income Modifier

2 * 0.5

2 * 1

2 * 2

2 * 3

As you can see, the jump from t0 to t1 is incredibly important. This served an important gameplay function to make the early game scrappy and hard fought, and to reward players who managed their energy income and metal effectively. Unfortunately, without a guaranteed close 3 mex start, that becomes problematic, as you are starved of resources almost constantly.

This was fixed by softening the curve of mex progression. So in simple terms, we make t0 mexes give the same as t1 mexes did previously, still cap t3 mexes as the same amount, and split the difference between t1 and t2. The result? Massive gameplay improvement. You don’t get the same urgency to upgrade to t1 as you can hold on to t0 for a little bit longer, but in my testing, it was preferable and beneficial to gameplay.

Fix #2

This one is easy. The random metal spot algorithms allow for me to control the output curve for mexes, starting from inside to outside. So I did it kind of in this pattern.

It’s hard to visualize, but image we have just 4 rings of mex spot locations, each number represents the output of that ring, starting from inner (center of the map) to outer (edges of the map).

Mex Output

1, 0.66, 0.33, 0.5

So what this allows for is that your starting mex spots will give a good amount. Not the best, so you can’t just turtle along on your starting mex spots, but enough to get you going. The more you fight towards the middle of the map, the better your income will be.

Fix #3: What if mex spots get placed on the edge of a cliff?

Honestly, this one was simple. Evolution RTS builders already have a terraform speed of something like 100000, The idea being that I don’t see any gameplay benefit from terraforming obstructing something that can be built at a specific location. Sometimes there is still a 1 or 2 second delay, but it’s not really noticeable.

But what about the groundplate? Doesn’t it melt over the sides of the terraform?

Yes, it did, but it no longer does. I solved this by increasing the footprint by 2, and then adjusting the yardmap on those extra footprints so that the yardmap is open all the time, which in turn doesn’t obstruct movement or buildings. Functionally, it is exactly the same as before.

Fix #4: Metal spot confusion

This was a big one. I’m not exactly a GL guru, so drawing crap is rather hard. The documentation on the spring wiki for it is rather sparse if you aren’t already familiar with it. If you were familiar with it I’m sure it would make complete sense. But then I started looking at the work Floris did on luamex in order to make animated rings. Turns out, he made it easy to change the amount of lines and dots. So after some fiddling and modifying some of the GL drawing, I came up with this:

Even cooler, these animate. The are large, and completely remove any ambiguity. In playing the first game with these markers, the baked in metal spot textures were not even really on my radar from the get go. If someone like me, who has been playing TA style rts games since ’97 can easily discern resource locations from these, then it will be easy as hell for anyone else.

I tested this theory by getting a gaming friend (Swagamemnon) to try Evolution RTS for the first time a few days ago. The only other RTS game he has ever played is Starcraft 2 (of which I also play a lot). From the very beginning he had no questions about where the resource locations were (he also loved the way that the mex income curve worked as described above). And that is in part due to the next fix…

Fix #5: Pressing f4 will show the original baked in metal map

Frankly, this sucks. When I’m playing, I shouldn’t have to press a button to see where resource locations are, how much they yield, and I shouldn’t lose LOS display when I do it.

So I decided to solve all those issues by:

  1. Always draw resource location markers.
  2. Always draw the yield below the location marker.
  3. Always draw resource locations on the minimap (this one is still a little buggy, I think because of an engine issue with DrawInMinimap())

The end result is this:

In one very simple move, I have completely obsoleted f4 mode. If you notice, Geothermal locations are also drawn all the time. Unfortunately, in this screenshot, the metal locations aren’t drawn on the minimap yet due to the aforementioned weirdness with DrawInMinimap() (they show up on the minimap after a few minutes usually). But pressing tab or zooming out will show you the same information, so this counts as a minor bug that I’ll be trying to figure out (maybe minimap drawing has a buffer that needs to be flushed or something?).

It’s also worth noting that this mex spot layout is set by Commonplayer’s (Stowtemid) latest placement algorithm. Pretty neat amirite? I haven’t even gone into the awesomeness that is his algorithms for this, but you can check them out by clicking here.

And lastly, do you even really notice the baked in spots? For the vast majority of us, not really… Not unless you specifically look for them.

In the next version of Evolution RTS I’ll most likely be unbinding F4. The trick is to rebind it before exit. Evolution RTS players will a lot of the time play other spring games using the Evolution RTS lobby, so I don’t want them to end up with random strange issues in those games.

I didn’t initially set out to write a dissertation on the evils of baked in metal maps, but I guess that’s what this turned into. Hope you liked my walkthrough of how I solved one of the largest issues (in my opinion) that spring games have to deal with. This is available right now on the Evolution RTS alpha test host. Give it a go!

The post Resource layouts, Extraction schemes, Visual Representation, and how I fixed it. appeared first on Evolution RTS.


BA: Tourney winners and BA’s own dictionary

1v1 tourney

Good news everyone!

Nice to see you again folks! A lot of stuff has been happening in the last couple of days in the SpringRTS microcosm. First of all, 27 April 2018 marks the day of a Spring-based game being fully released on Steam – ZeroK. That is a major milestone for all of us in the SpringRTS community. Big congratulations to the dev team and best wishes for even bigger success! What’s more, The Spring Project gracefully steps into its 13’th year of existence. Happy birthday! Thanks to you all good fellas for playing, contributing and having fun with us for all these awesome years. Meanwhile, here at BA we have celebrated it our own way – by organizing a 1v1 tourney. Read more to see the winners and what’s new on the website!

All hail the champion!

After all the long years of silence, BA has finally held an official 1v1 tournament in which 16 competitors fought for the shiny crown of BA champion. Without further ado, let us announce the results!

The winner and supreme champion of the 2018 April 1v1 tournament is the one and only Raghna! He took the ladder by storm devastating all his rivals and only ever losing a single round to fc14159 (a.k.a. Phantom) in semi-finals. Make sure to kneel every time this guy comes by, as he is the one to wear the crown of BA until other tournament yields a different champion! The crown on his commander’s head is going to appear with the release of BA 10.09. You can check out the brackets and results below:

By the way, we are happy to announce that we are planning to organize tourneys quite often from now on. Next time we will make sure to spread the games over the whole week so that everyone has the time to participate. Such an event will be held every month or so. Don’t forget to join the #tourney discord channel to be notified about upcoming events and get in touch with other participants.


What the hell is “porc”???

Through the many years of BA history, it has gathered thousands of players from all around the world. If you put such an international community together it is inevitable that sooner or later they will develop their own micro-language. What’s more, the dynamic character of BA gameplay requires quick communication. As a result, when a new player comes he is faced with a stream of unrecognizable commands from his allies. To solve this, we have prepared a glossary of most commonly used abbreviations and expressions. This can help you get around the world of BA with a better understanding of what’s going on.

New on the website – see Balanced Annihilation Glossary!

The post Tourney winners and BA’s own dictionary appeared first on Balanced Annihilation.


Zero-K: Thanks for the great release!

The release has far exceeded our expectations and we’ve gained a lot of new players for the community who, overall, seem pretty nice. The servers have held up and, apart from a crash on Friday, everything has gone really smoothly. The campaign and matchmaker are really paying dividends. Currently there are 800 people playing Zero-K and 500 in the lobby and we’re excited to see how far we can go.

We would really appreciate help so spread videos, tell your friends, and leave reviews. With no marketing budget (or really any budget) this is our best way to spread Zero-K and to ensure that Steam shows it to many potential players. It really helps and a big thankyou to everyone who has taken the time to review thus far!

We would also like to clarify some issues and common questions.

  • It is normal to see empty or near-empty rooms in the battlelist tooltips. We intentionally avoid sending the status of everyone to everyone else in order to save on server load.
  • There is currently a bug with matchmaking that bans both players in the “found match” popup if one rejects before the other accepts. We will fix or workaround this on our next server deployment. Luckily the ban time is 30 seconds.
  • To play coop Skirmish or Campaign with many players it is important that a single person invites everyone else, as they are the host.
  • There is a lot of scope for modding but we have not yet set up the steam workshop. There is a lot of detail to cover so, if you’re interested, ask anyone in the modding channel on our Discord server.

We have been monitoring issues and are taking a cautious approach to changes, lest we break anything, as the issues are generally minor. We plan to run server maintenance for about 10 minutes sometime during the week to improve stability and solve the matchmaking issue. We also have some UI improvements for the main menu and fixes to rare bugs ingame. We have a beta branch and testers would be much appreciated.

Finally, here are some standout videos or reviews.

PS. If you haven’t heard of Zero-K before, here is the store page.


Zero-K: Zero-K soon on Steam – Tell everyone!

Zero-K is out on Steam in less than a day. Here is what you can do to help:

  • Ask friends (acquaintances, passers-by) to get Zero-K on Steam, after all, it’s free!
  • Get Steam Zero-K and write a review. This tells Steam to tell more people about Zero-K.
  • Be as nice possible to new players and help them out. They will appreciate it will help set up a good community standard.

Store page:

Here are a bunch of useful link:
Thanks everyone for supporting us this far!


Zero-K: More Planetwars Testing

With the Steam release fast approaching we have launched another test Planetwars to fix any lingering issues and ensure that it all works. For stability there are few new features however we have found the time to do some balance changes on the structures. The largest change is that victory points decay at 1/turn if at least two factions have VP, this is similar to the influence decay mechanic for planets.
It would be foolish to run Planetwars over the release as it is not the best place for brand new players and there are potential server load issues. We’ve been running these tests to let us run a full lore-and-all round shortly after the release. Exactly when will depend on circumstances.


BA: [BA 10.08] Hotfix, 1v1 tournament + more goodies


Quick update to BA 10.07

Hello everyone! We are just dropping a quick update to touch the issues which went out of sight during BA 10.07 testing session. As may or may not have noticed in the last couple of days Juggernauts refused to shoot their main canons. What is more, there were few problems with the behavior of the newly implemented cloaking script (needed due to a new way of implementing CLOAK in new maintenance engine). Some units wouldn’t auto-cloak after walking out of the lab, also the automatic hold-fire widget didn’t work as it is supposed to. These two plus some minor different bugs have forced the dev team to release a quick bugfix.

Tiny balance tweaks

Along with the bugfix, we are including a little nerf to vehicles. This change has been proposed as an answer to the tons of feedback we had from you guys during the last month. It is not a big deal and probably noone would have even noticed it. However, it is important in a sense of taking any (even the tiniest) steps in the right direction. These tweaks only touch the units that the community considered still overpowered after the former nerfs in BA 10.07, BA 10.05 and BA 10.03.

  • Speed -2% for: Stumpy, Raider, Bulldog, Reaper
  • Janus -2% Brakerate / – 2% acceleration
  • Bulldog -7 weapon AoE
  • Reapers -100 HP

Deterministic unload

One noteworthy thing included in this update is so-called deterministic area unload. It changes the behavior of area unload command. In the past, it used to work in a very unpredictable manner. If you have commanded a number of transporters to unload on some area, they would just pick random points in that space. From now on, these points are going to be uniformly distributed in the circle. The script is using the sunflower distribution (Fibonacci spiral pattern). A little piece of sacred geometry in BA for math nerds to enjoy 😀

BA 1v1 tourney is comming!

Yes! it is happening. After long years of silence, BA is going back to the competitive mode! We are going to hold a 1v1 tournament at the end of April. The exact date is being discussed with the community, but it will most likely be 29/04 (Sunday). What is known now is that the total number of participants is going to be fixed (16). This post is only a teaser, however, you can already start picking your spots. Write on #tourney discord channel or in the comments section below this post if you wanna join the competition. More info soon!


  • Juggernaut main weapon not firing
  • Line Unload behavior (was discarding orders that were shown as possible)
  • sniper auto hold fire when cloaked
  • transported units using selfd explosion rather than death explosion when their transport is shot down / self destructs / is reclaimed

Unbalanced Commanders (when mo_unba is enabled):

  • Commander’s wreck metal value scales on commander’s level: 70% of full value at level 1, 100% at level 2, 120% at level 3, 140% at level 4, 170% at level 5, 200% at level 6, 220% at level 7, 250% at level 8, 300% at level 9, 400% at level 10 and 500% at level 11
  • MoveSpeed reduced by 0.025 when level increases ( 1.25 -> 1.0 ) • EnergyMake = Base + {0,25,50,75,100,150,200,250,300,400,500}
  • MetalMake = Base + {0,0.5,1.0,2,3,4,5,7.5,10,12.5,15}


  • Some widget and gadget optimizations
  • Voice Notifs play along when tracking a players camera when speccing
  • When large unit icons option enabled: buildorders get enlarged alongside with buildicons
  • Enemyspotter/TeamPlatter/ComNameTags widgets take options ‘same team colors’ into account
  • When tracking player camera, ally selected units gui is now integrated in option window
    Ecostats /specfullview crash fix
  • Added modoption ‘mo_allowuserwidgets’ to be able to disable user widgets (plain level field for tournaments and other competitive setups)

Thank you for testing!

Download BA 10.06

(This goes to lobby download. If you already have that, download via lobby or use this link)

Full Changelog

The post [BA 10.08] Hotfix, 1v1 tournament + more goodies appeared first on Balanced Annihilation.