(Note: the title of this post comes from the folk saying “When life gives you lemons, make lemonade“)
Right now, I’m working on adding one of the final units to SCRAP. It belongs to the Dendrites faction, and will be an end-tier defensive specialist. The working name for this unit is the “Terminal”, though that’s likely to change prior to it going live.
The original plan was for it to be a “one-man turret farm.” Copied from the Protoss Carrier, the idea is that it would produce and manage a group of turrets, which would all die if their ‘parent’ was killed.
I wrote an article a while ago about what I call ‘categories of action‘ in RTS games, and this unit was intended to be highly “preparatory” in its design. In plain language, that means that it has to sit and do its thing for a long time to give the player its full benefit.
In the case of the Terminal, it would have to sit in one place and build up its defensive force over time. Move too far from the turrets, and they won’t perform as well. Move farther than that, they all die and have to be built again elsewhere.
I thought it was a neat idea.
Anyway, it turns out that in StarCraft 2’s Galaxy Editor, the Carrier’s “Hangar” ability is a REALLY BAD way to try to make what I described above happen. First off, the ‘leash’ mechanism doesn’t work with immobile units. If I set the turrets to die if out of range of the momma Terminal, they’d immediately die upon being built. Which, while kind of funny, isn’t exactly practical. Also, producing buildings this way mucks big time with StarCraft 2’s building placement rules.
As in, they just stack up on top of each other. The effect is like layering stickers, or copy-pasting the same layer in Photoshop over and over. Again, scarcely ideal.
And let me tell you, I tried some dumb stuff to make it work. Stuff like a buff that was intended to get the turrets to be able to walk out of each others’ way when they spawn (I thought that would work. Oh well.)
In the end, I was forced to admit that the implementation just wasn’t feasible.
There is, after all, a point to this story beyond me complaining to you about my dumb unit idea and struggles to implement it properly.
Because, once I admitted defeat on the implementation of the Terminal, it brought up a couple of minor flaws with the design in the first place.
While a neat idea to think about, a unit that is tied by an invisible tether to its only means of being useful is… actually both boring and frustrating. The only way to use this unit is to sit it down and ignore it for a long time? That’s not fun design! What was I thinking?
So, Uh… thank goodness that I screwed that up!
Because of my failure to implement something poorly thought out, I have the opportunity to rethink and refine the design. I know I want to create a defensive specialist that uses token units to achieve its goal, which is a good start. And I want it to use a ‘vulnerability’ effect, which causes targets to take additional damage from all sources.
This is actually a pretty big space in which to work, but I have some interesting ideas.
For instance: change the unit from a ‘Carrier’ to a ‘Broodlord’ – leaving everything else about it the same, this new version of the Terminal slowly trains up drones over time. When these drones detect something to attack, they explode and drop a turret on the ground underneath of themselves. These turrets slowly die over time, but can be maintained by the Terminal to last longer. However, this costs energy, so the more turrets the Terminal tries to support, the quicker it runs out of Energy and loses its ability to replenish them. Couple this with the ability to order all of its drones to transform immediately into turrets, and you have a unit that’s able to perform a variety of combat and defense roles while being a lot more interesting to actually control.
The issue with what I describe above is of course that I lose the unit building up its power over time, and it’s much more reactive than preparatory since the turrets it produces lose integrity over time.
But it might be an interesting step towards the right answer.