Good Robot #48: Bringing Balance

By Ross Zevenhuizen
on Apr 15, 2016
Filed under:
Good Robot

Hey guys, I’m Ross. I have a strange job that involves wearing a lot of hats, and recently just involves a lot of hats. I’ve been with the gang since Unrest, usually handling scripting and level design. I also edit together most of Pyrodactyl’s trailers with the same technology I use to play Terrible Terrible Video Games (Glass Houses – Ed.). I’m here today with some insight into the latest update for Good Robot, and hopefully our thought process as game designers to boot.

With QA teams that number in the ones of dozens (baker’s, if you’re exceptionally lucky), esteemed indie developers like ourselves soon become incredibly adept at one crucial step of the modern video game creation process: making mistakes. But perhaps more notably – making mistakes and fixing them quickly. It’s in this spirit that I present you with a commented list of the major changes this time around.

Core Gameplay Changes

All health and damage values increased by a factor of 10 for more granularity.

This alteration is a simple one with complicated reasons. As a few of our astute player-commenters noted (Erich T. Wade, kaypy, and DeathByDysentery among others – a hearty round of praises to all of your suns), although the game treats them as such, not all of the robot upgrades are created equal. Rate of Fire is a consistent improvement in damage and utility across the board, while Damage only has any visible effect in large doses, or on weapons which already deal lots of damage. This is because Good Robot stores its damage values as even integers, while upgrades improve them by accumulated percentages (7% per point for damage, for the curious), meaning your gains were frequently rounded down and ignored by the system. Multiplying everything by ten makes buying damage upgrades always applicable, numbers more visible, and gives me a lot more room to tweak the power of pesky many-shot weapons like shotguns.

Damage upgrade price scaling lowered

This is the change that might put Damage back in the running alongside its competitors. In short, the cost of Damage upgrades will now increase at a slower rate relative to the others as you make more purchases at the upgrade shop. Shooting down missiles is a significant part of Good Robot’s gameplay, and buying extra RoF will always help you do it – in addition to increasing your damage per second. Damage has powerful situational advantages, but among the two offensive upgrades it will always be less valuable. So… now the less valuable upgrade costs less. With luck the balance should now be restored.

Larger Damage Numbers!

Larger Damage Numbers!

Weapon Changes

The following weapons have had their maximum ranges reduced, sorted by shortest to longest after the changes: SMG, Minigun, Mini-Cannon, Argon Blaster, Xenon Blaster, Rotary Cannon, HMG, Electron Repeater, Proton Repeater

Long-range weapons are inherently advantaged in Good Robot by keeping you far away from sudden danger and clearing threats you may not even be able to see. Automatic weapons in particular are incredibly strong, mixing fast projectile speed with a constant stream of missile-eating bullets that edges out competition which would otherwise fit the task better, such as the Phase Cannon and Rivet Gun. The most fitting weakness to give these guns without changing their identity or fun factor was a sharp cut to their effective ranges, meant to put players closer to danger in exchange for the incredible versatility of something like the Minigun.

One point of note for fans of bouncing weapons: projectiles reset their maximum range per bounce, so those trick shots should still be possible so long as all of the bounce surfaces are within your bullets’ normal range of one another.

The Electron Repeater has been redesigned: it no longer homes, bounces more times, fires at a rate and speed closer to the Proton Repeater, and does significantly more damage.

Sometimes weapons look really cool. Sometimes weapons create degenerative strategies. It hurts the most when these two things coincide, and can’t be sussed out without damaging one another. Bouncing, homing, multitudinous bullets are essentially the perfect projectile in Good Robot as it stands: they block missiles with the best of them, forgo the need for precision aiming, and can clear rooms swiftly from positions of total safety. Something had to break, and after the range reductions above the best candidate was the automatic homing and fast RoF.

All explosive secondaries now consistently damage the player when fired in close quarters.

This is more a fix for consistency than anything. There were four explosive secondary weapons (Plasma Cannon, Inferno Cannon, Grenade Launcher, Bomb Volley) that could be fired into a nearby wall or bounced into the player without detonating or inflicting damage, where everything else with this behavior did. To the chagrin of players and the delight of Arch-Wizards

Electron Repeater vs Officer BuddyPal

Electron Repeater vs Officer BuddyPal

New Weapons

…did I mention that making guns is my favorite part of anything? No? Well here, have some more.

Note that Good Robot’s weapons correspond to four “tiers” of power, with each level either adding a higher tier to the drop/shop tables, or removing a weaker one if two tiers are already featured. For instance: the second level drops items of Tier 1 and 2; the third drops items of Tier 2 only; the fourth drops items of Tiers 2 and 3. A weapon tagged (T1S) is a tier 1 weapon that fits into the secondary slot.

The Scattershot (T1S):

Certain vacancies in the tier 1 weapons list (see below) led to a power vaccuum in short-range face-melters. The Scattershot stepped in, removed its glowing purple gloves, and filled the void with a colonial-style barrage of plasma. This thing is, bizarrely, either a cut-down Blunderbuss or a very mean, very magenta Auto-Shotgun, depending on your perspective. It’s meant to give players something shotgunnish to use from the very beginning of the game (and akimbo with the Auto-Shotgun by the third level – if they’re brave enough!).

The Thermal Vent (T1S):

What’s better than fire everywhere? Well… let’s be honest. Nothing, really. But Arvind didn’t agree and neither did the CSIS agent outside my door, so I was forced to make a gun that shot fire in – ugh – specific directions. If you’ve ever used a leaf blower or hit the wrong button when attempting to flambé an enemy spy, this is like that. Except with a beautiful effulgence of plasma instead of air.

The Ricochet Missile (T3S):

Originally intended as something entirely different, this little experiment turned incredibly wrong, incredibly quickly. In the first test I mistyped a number and had it shear off my poor robot’s face after doing several laps of the test level before I had time to scream. Matters… did not improve from there. After the corpses had been swept under the carpet and this monstrosity rolled back into a state that only incidentally ruined painstaking three-hour high score runs, we found ourselves with an accelerating missile sporting decent all-round stats and a penchant for bouncing many times. Essentially a combination of the much-beloved Sawblade and Ballistic Missile, I have no doubt this is the weapon that will finally make me a pariah in my own video game’s forums.

Scattershot : a new tier 1 shotgun

Scattershot : a new tier 1 shotgun

Interface Changes

Hands-On Shooting

This update features a new controller layout for those less familiar with twin-stick shooters or more inclined to preserve their infinite supply of bullets, allowing you to aim with the right analog stick and fire using the right and left triggers (or shoulder buttons, at your leisure). There’s also a V-sync toggle newly present in the menu, to eliminate any pesky screen-tearing not caused by recent users of the Ricochet Missile to their monitor setups.

Hey, Shamus here. I just wanted to interrupt Ross to add the following bit of trivia:

This change actually touches on the fact that Good Robot is a bastard offspring of twin-stick shooters, but isn’t a proper twin-stick shooter itself. A proper TSS game has continuous fire for no penalty, so there’s no reason the player would ever want to stop shooting. So the aiming = shooting control paradigm makes sense. But Good Robot has several things that break from this:

  1. Weapon recoil.
  2. Variable rate of fire.
  3. A flashlight mechanic, where you want to swing your view around to see things on dark levels, but maybe you don’t want to fill the space in front of you with bullets just yet.

You don’t want to shoot all the time, but you do want to AIM all the time. You want to time your shots to make them count, particularly when using stuff like slow-fire shotguns.

In the early builds of the game, you had to hold down a trigger to fire. This is a point where we let genre expectations have too much control over the design. We started getting feedback, “This game looks like a twin stick shooter but it doesn’t work the same therefore you’re doing it wrong.” So we changed it. The customer is always right, right? Except no. There were good reasons to break from conventions in this case.

I’m glad to see the original scheme is now an option. In my mind, this is the “real” control scheme.

Anyway, back to Ross…


It wouldn’t be a changelog without… awards? Just roll with it, I suppose. These three deserve it.

Remarkably Skilled And/Or Tenacious: Three Excellent Players

This week we set the bar pretty abominably high with our challenge to players to keep hats on their head and Goodness in their hearts long enough to earn the Elite Hat and Hardest Hat achievements, staking a quantity of fine Pyro-merch on the outcome. Some manner of übermensch clearly took to the stage, because Elite Hat has already been cast down by three intrepid players who will be announced when this experiment of ours concludes. That it hasn’t means only one thing, of course: the Hardest Hat is still up for grabs, should you have the sheer gall – the unmitigated moxy – to prove that the impossible is possible.

Awful But Dedicated Service Award: The Radial Heater

This scrappy little gun gets special mention for achieving nigh-on supernatural levels of badness. Radial burst weapons are already some of the most situational types in the game, but when you need to put one in the first tier and it has both limited range and no ability to bounce, the end result is little more than an intermittent robo-fart. With 24 bullets that still can’t manage to hit that guy right in front of me after three tries, any changes to most gun properties immediately shoot its power up into the realm of exploitability. My condolences, Radial Heater. I’ve tried my best to save you since before the trailer went out, but sometimes it’s best not to drag things out.

Least Helpful Ordnance Award: The Ricochet Missile (Prototype)

As you may have pieced together from its description above, the Ricochet Missile is a real piece of work. I didn’t realize the latent capacity for psychopathy in inanimate objects until I tested it. What I haven’t shared until now is why. You see, the Ricochet Missile used to home.

No, not a “little” homing. Not Cluster Launcher homing. I’m talking a bumper-hugging payload of malice the likes of which haven’t been witnessed since the days of Descent. The idea was that a bouncing missile with strong homing would “skip” along walls and ferret out enemy bots lodged into wall recesses rather than detonating harmlessly outside. It was a good idea, and unfathomably wrong. I died half a dozen times just turning homing on, and regardless of what I changed from there, something strange was afoot.

Ross: Arvind, this thing is scary. I just pushed it to the repo.
Arvind: The new missile?
Ross: I shoot it into the level and everything’s peachy. But no matter what I do, it… finds me. Maybe it’s the six bounces, but I just keep dying.
Arvind: Wait.
Arvind: It homes in… on you?
Ross: No. I mean, that-
Ross is playing Good Robot
Ross: …Yes.
Ross: Wow.

Pictured: The Good Robot, about to explode

Pictured: The Good Robot, about to explode

Hi. Shamus again. I think I know what the deal is here:

All projectiles are tagged in one of three ways: 1) Owned by robots 2) Owned by player 3) Owned by nobody. Projectiles won’t damage their owner, which is why bad robots don’t kill each other with friendly fire. No-owner projectiles don’t give a damn, and will kill whatever they happen to run into.

At one point in development I toyed with the idea of making bouncy lasers do friendly-fire damage. (And technically, it is still possible to create weapons that do this if you’re into modding.) When you fire a gun, the resulting projectile is always owned by the player. Otherwise, it would hit you in the process of leaving the gun. However, if the weapon is set to do friendly-fire damage, then when the projectile bounces the owner is changed to “none” and it goes into free-for-all mode.

So that’s half the mystery.

The other half of the mystery:

At one point in development, bad robot missiles were really good at homing. You had to know to move perpendicular to their approach vector (and not reflexively backpedal to run away) to escape them. You can see Ross demonstrating this technique at the 50 second mark in the original good Robot trailer.

To make up for this danger, I thought it would be cool for missiles to do the Hunt For Red October thing, where you can turn them against the enemy. When launched at the player, the missile is owned by the bad robots. It will pass harmlessly through other robots on the way to the player. (Otherwise, bad robots would blow each other up all the time. They’re too stupid to establish clear lines of attack.) But once the missile gets close, it goes into “explode on contact” by switching itself to “no owner”. It still homes in on the player, but will blow up if you manage to slyly steer it into an enemy. There was going to be an achievement for doing this.

But some people couldn’t intuit how to evade these missiles. They just ran away. Since missiles are faster than the player, this was a doomed strategy. They would need to be taught the right way to handle this, which would mean tutorials and mastery testing, which wasn’t really something the game was equipped to do even if we had the time to fine-tune such a system. So we dumped the fast-turning missiles.

But those two little bits of logic lingered in the code: 1) Un-owned homing projectiles would home in on the player. and 2) Friendly fire + bouncing = dangerous reflections.

Even in a game as simple as good robot, the rules can get fiendishly complex, and you can end up with all sorts of unexpected behaviors.

So now you know why nothing in Good Robot bounces and homes at the same time. Good evening everyone, and see you next time. I’ll leave you with the full patch notes in one place:

Good Robot Update 1:

  • All health and damage values increased by a factor of 10 for more granularity.
  • Damage upgrade price scaling lowered from 1.2 to 1.1
  • The following weapons have had their maximum ranges reduced, sorted by shortest to longest after the changes: SMG, Minigun, Mini-Cannon, Argon Blaster, Xenon Blaster, Rotary Cannon, HMG, Electron Repeater, Proton Repeater.
  • The Electron Repeater has been redesigned: it no longer homes, bounces more times, fires at a rate and speed closer to the Proton Repeater, and does significantly more damage.
  • All explosive secondaries now consistently damage the player when fired in close quarters.
  • Removed the Radial Heater from shops, on account of overwhelming badness.
  • New Weapons: The Scattershot (T1S), Thermal Vent (T1S), and Ricochet Missile (T3S)
  • Added a new optional control scheme which uses the shoulder buttons and triggers to fire weapons, rather than thumbstick direction.
  • Added a V-sync button.

    Enjoyed this post? Please share!

20201858 comments. It's getting crowded in here.

From the Archives:

  1. Content Consumer says:

    Multiplying everything by ten makes buying damage upgrades always applicable, numbers more visible, and gives me a lot more room to tweak the power of pesky many-shot weapons like shotguns.

    And gives a subtle psychological change too – it’s the same to do 10 damage to an enemy with 100 health as it is to do 100 damage to an enemy with 1000 health, but bigger numbers are more visceral.

    The following weapons have had their maximum ranges reduced

    The range reduction on the Xenon Blaster really hurts me. It’s one of my favorite weapons. Yes, there are better ones, but I just like the way it looks and sounds.

    All in all, I’m really loving this game. Just sayin’.

    • Inwoods says:

      Civ V also did the “multiply by ten” approach to damage and HP via patch, and it worked out really really well. Interesting to note this has happened to a game at least twice after release. I guess it’s a balance of simplicity vs accuracy.

      • Ingvar says:

        Integers have many many good properties. If I was tracking hit points (or damage, whatevs) for something, I would muchly prefer using integers to using floats (after all, how frequently do you actually need 2 ** -53 hit point accurancy and what does it mean being that far clos eto 0?).

        • nerdpride says:

          Does anyone ever do some kind of fixed decimal representation with integer variables? You could think of a few binary bits as fractions or you could think of a few decimals as more like human-sized remainders.

          Been a while since I’d seen this but IIRC it works out a lot like the “multiply by 10” option except with math kept behind the scenes.

          Not that I’m suggesting it for the game, just a tidbit of useless knowledge stored away and I wonder if it’s still practiced.

          • Ingvar says:

            I’ve seen “scaled integers” used. Probably doesn’t matter too much for damage, but if you use fix-point numbers, you need to make adjustments whenever you end up multiplying or dividing, no matter what multiplicative offset base you use.

          • mhoff12358 says:

            I’ve seen that done for money. You can’t have a price of 2.0000000001 dollars.

            • Droid says:

              Actually, yes, you can. It’s not that much of a deal, especially since FPUs usually calculate with an awful lot of precision (I think 70 binary digits or something), just to store however many fit into the floating point at hand. Also, at least the games I’ve seen, seem to have switched to 8 byte floats in the last years, including games like Legend of Grimrock, which did not use a single integer that I could find. I mean, there have to be, at least for indexing, but all the stats, even the positions on the grid the game is based on, are floats.
              The latter at least actually work to their advantage, since arrows can fly in-between tiles or you can strike an enemy strafing to the right in front of you while you go left at the same time.

          • Richard says:

            Yes. Money is always stored as a fixed-point value.

            The reason for this is that floating-point values are inherently imprecise. The error depends on the base used and the number of supported digits for exponent and significand.
            As we use Base 10 and computers use Base 2, the numbers quite literally don’t add up (or multiply).

            A fun example of this is the fact that the number “0.10” (ten cents) does not exist in binary floating point. The closest a single precision (32bit) float can get is 0.100000001490116119384765625

            Floating point number calculations (usually) follow IEEE 754, which is very strictly specified to make sure that all computers and compilers get the same wrong answer.

            • Decius says:

              It’s not wrong, it’s just rounded in base 2. At every intermediate step.

              • Kyte says:

                Which makes it wrong. If 10 + 10 != 20 then the answer’s wrong even if there’s reasons for it.
                It’s just that FP numbers are meant to be used for applications where it doesn’t really matter if the answer’s very slightly wrong.

                (Incidentally that’s why in floating point math you must do a – b < epsilon rather than a == b)

            • Droid says:

              Do you really care whether you pay 10 cents or 10.0000001490116119384765625 cents? Like, 10 cents except every 10 millionth time you pay eleven?

              The Last Federation is a game that uses floating point numbers for what amounts to currency (credits) in their game.

              • Kyte says:

                Money data types don’t exist for the sake of the average user, but for businesses, where cents adding up wrong (or you’re processing hundreds, thousands or even millions of values) can easily bring down the wrath of god upon you.

          • Droid says:

            Paradox games (Europa Universalis, Crusader Kings, Hearts of Iron) seem to use this a lot, with integers usually denoting either 0.001 or 0.1 (for percents) of an in-game integer. So if your treasury was 10250, it would be 10.25 ducats, if your army tradition was 1000, it would be 100% (because 100% is just a factor of one).

      • MichaelGC says:

        It’s strictly now to be called Civ L.

    • King Marth says:

      After a few phases of all the numbers getting bigger, it then becomes quite refreshing to go back to low values. Playing a Paper Mario game after a Final Fantasy shows this quite well.

      I suppose it depends on whether you want your upgrades to be complex, percentage-based systems with lots of granularity or discrete, obvious alterations where you know where every single point of damage comes from. Paper Mario works with low numbers because that extra point is often added or removed though a little skill-based thing (QTE, but gameplay), and most of the customization is through versatility of moves rather than the small handful of raw stat-boosting badges. In a bullet hell game, though, you’re dealing damage so often that knowing where every point came from is nowhere near as important as how many hits are needed per mook in the massive crowd threatening you.

      • Dt3r says:

        I was thinking the same thing. Compare Final Fantasy Tactics (HP max around 300) or Voidspire Tactics (HP max around 50) to something like Disgaea (HP max 999,999). Disgaea lets numbers get ridiculously big, but you don’t get a real sense of impact. FFT uses the granularity to provide you with interesting decisions about equipment choice. Voidspire uses granularity for character building (e.g. +HP, +1 damage with a weapon type, or save up for +1 movement).

    • Grimwear says:

      I got a tad saddened when they reduced the range of the SMG and Argon Blaster. I understand why it was done but at the time I’d been going after Elite Hat and Hardest Hat and while doing that you play those first levels a LOT. Personally SMG and Argon were most efficient for dealing with the starter areas which tend to be the most arduous to get through and once they got nerfed my desire to continue slowly died with it. Unfortunate to be sure but alas no hardest hat for me.

      Note: I have not used the new weapons and am not sure if they’re present in early level to make up for what was lost.

      • Trix2000 says:

        I will note that the repeaters make a decent replacement, considering they bounce (which is most of what I liked Xenon for) and fire fairly rapidly. I got through most of the first three levels again with my hat on the Photon Repeater – only lost it due to being dumb.

        I’ve actually found I don’t need the spread from such weapons so much as number of projectiles to deflect missiles and improve hit-rate.

        That and I suspect I’m actually leaning more on the Plasma Cannon line than anything sometimes…

  2. Tizzy says:

    The controller scheme update is great news. i wouldn’t even try to use a controller without it. if only because I like me some quiet times to listen to the soundtrack.

  3. Axehurdle says:

    Oh, thank goodness for the control scheme update. It’s so infuriating that I can’t see where I’m going because I have to fire my weapons behind me when moving.

  4. Abnaxis says:

    I know feedback is supposed to go on the Steam forums, but I would really, REALLY like for the close-range weapons to get some love. Like, shotguns to the face need to unequivocally *kill* if you go through all the work to close into close range to kill with them. I never ever want to take the extremely close range weapons (sound blaster included) because enemies don’t die fast enough when I use them and it’s always suicide to try.

    What’s *really* needed for this change-log is damage that decreases with distance instead of mucking about with maximum-ranges on weapons so projectiles just disappear after X distance, but I can see how it might be late in development for that.

    RIP SMG, you’re no longer my weapon.

    • TMC_Sherpa says:

      My initial argument against short range weapons are bullets. Specifically blue enemies. Specifically specifically the blue ghost looking dudes that factories pump out six (four?) of. Green guys pumping out waves you might be able dance around but a hail of gunfire raining down a hallway is brutal. Then you have blue energy dudes and saw blade dudes.

      I’m not sure how you solve that.

      I’m terrible at these types of games so NaCl at the ready. Unless I’m on a (big) boss level I don’t know when the next time I’ll find a red vending machine (cheap heal). Moving away from an enemy into an unknown part of the map will probably spawn more during a fight I’m already having a hard time with. So my plan is get a bounce weapon, slowly fall back to the starting area and kill everything slowly with trigonometry. Heck, I never even saw Fire Walk With Me or Robocop the first three or four times I killed them. Until level six when I get eaten by a dozen worms. Who are now in the starting area and murder me twice.

      *Shrug* I’ve got over ten hours logged so there is something in there that keeps bringing me back.

      • Abnaxis says:

        The saw blade dudes are where close range weapons should shine.

        What should happen, is you should be cruising along, plinking away at enemies from the safety of long range, until you get rushed by a saw blade enemy. This saw blade enemy should A) be really fast with enough HP to close the distance, B) have a large enough hit box that a well-placed shotgun face-blast will mess its shit up and C) do enough damage that it it closes, it will mess the Good Robot’s shit up.

        Unfortunately, it only succeeds at C, so that’s a Victory for cautious long range strategy

        • TMC_Sherpa says:

          That is true. I think several of the weapons are/should be great in specific situations. The problem is getting those situations to come up often enough to make it worthwhile.

          My favorite boss is the worm. It’s probably because he’s slow and circles you rather than making a quick bee line but I can dance with him with a little three step I like to call shoot, shoot, dodge. The weapon you’re using is less important because managing your distance is less important.
          Then you’ve got a flaming sawblade on crack, a UFO that spawns invulnerable friends(Who stays at the edge of the screen.. so if you have long range weapons he’s an easy kill), Tickles with his nukes (Tickles isn’t that bad as long as you can maneuver a bit..and have range) and… I’m missing one. I mean I’m missing more but I haven’t gotten to the end of level six yet.

          If you’re good at this sort of thing than what I’m saying probably sounds dumb but I’m working with what I got.

        • Naota says:

          I actually tried this very thing earlier on, but ran into two problems that weren’t easy to design around: swarms and the way speed works in GR.

          The way bots are generated in our levels, it’s impossible to know if a player will encounter one alone, in a balanced group of other bots, or in a cloud of identical ones by sheer chance. Giving sawblades too much health and having them more numerous than just a small handful per room often shot the difficulty way up as a wall of bullet-eating large targets swarmed you with some tough ranged foes in the back. It’s not terrible so long as the max number of sawblades is limited, but until the numbers get really low that only reduces the chance of such an encounter.

          You can see this kind of difficulty spike happen with high-threat bots already in later levels with the yellow sawblade-shooters (the most dangerous enemy in the game in my opinion) – procedural generation means random, and random means worst case scenarios are possible. Without a major overhaul of the spawning logic, strong enemies have to be balanced under the assumption that a group of them isn’t unfairly difficult, which is part of the reason big saws aren’t as strong as they might otherwise be. If we do this again I’ve got a few ideas to remedy this issue, but it’s probably too late to patch into GR as it stands.

          The second part is a lot easier to explain: fast bots with a melee attack have a very polarized amount of threat based on whether or not they’re faster than the player. Anything the player’s speed or faster, will catch up if not killed en route, stick to them, and deal constant damage with aim disruption due to the shove effect (no shove effect means they essentially overlap you and are nightmarish to target). Anything slower than the player can be run from at top speed, allowing the player to kite it while shooting backwards. The caveat, of course, is that the player has to run – likely into larger threats – which is why these enemies are so often paired with area-based obstacles like minefields. Given that both the good robot and the enemies (bots coming out of factories get a brief speed boost) have variable top speeds, it can be pretty tough making speedy threats that are also fair to fight.

      • Trix2000 says:

        If it helps, consider that those bots always shoot around where you currently are, so if you keep moving around them fast enough they shouldn’t hit you (unless you run out of room to maneuver).

        They don’t have the fastest projectiles either, so while they often catch me by surprise I don’t really worry about getting hit by them – just backpedal immediately to somewhere safe/cleared until I can figure out how I want to handle them.

  5. Syal says:

    Nooooo my Electron Repeater!

  6. Zak McKracken says:

    On damage vs. attack rate:

    If you make 10 damage and your enemies have 30 HP, then you will need 3 hits each. If you then gain 7% damage increase (technically 10.7 per shot, probably rounded to 11), it’s still 3 hits each. In fact, you need to make it all the way to 15 damage per hit before the increase has an effect, if we use accurate numbers, that will be 6 upgrades, if we round in between every upgrade, it’ll be 5.

    At the same time, if your rate of fire increases by 7%, you will kill every enemy 7% quicker, immediately. After 6 rate upgrades, you’ll be 50% faster, as you would with the damage upgrade, except you have something on the way, and yuu can “dose” the damage in smaller portions — and that’s on top of the advantage from being able to shoot down more missiles.

    This difference becomes much less important if enemies either have much more damage (if they take 100 hits initially, then after the first upgrade it’ll be 91 — immediate improvement), but ememies who need 100 hits are maybe not what the game is going for…

    The other way to improve this (other than just making the damage increase larger) would be to introduce an element of randomness to damage caused or enemy HP — in that case your damage would initially be “around 10 and enemies have “around 30” HP, so some enemies would take 2, some 3 hits to die, and every damage upgrade would improve the chances of finishing them with fewer hits.
    A possible drawback from this, of course, is that it may make some things that players can do now harder to plan. You can build the muscle memory to give each in a group of enemies three hits and then point to the next one but if you never know how long it will take, it becomes harder to do this in a fluid way.

    • Tizzy says:

      I was thinking along the same lines earlier today. I thought: how about a chance to do critical hits? Upgrades would increase the chance of the hit happening. I don’t know how to deal with bosses, but for regular mobs, a critical would be an insta-kill.

      If you think about it, it’s a nice perk, but not overpowered. If it takes you three regular hits to kill the mob, then 1/3 of your crits have no real impact, another third is a minor bonus, and 1/3 is an instant kill.

      You have to account for different ROFs. Maybe by not rolling the crit for every hit? Only at fixed time intervals?

      This is frustrating, because I feel like increasing power should be made helpful. But as you note, naive damage increases prove useful only when enemies take a lot of hits. And bullet sponge enemies are never fun, but especially do in a game like Good Robot.

      • Decius says:

        Critical hits being an instant kill requires more balancing of the dakka of the machine guns with the slower, more accurate weapons.

        It makes more sense to me for the crits on the “precise” weapons to be more meaningful than “Throw bullets at a cone near it until you crit”

        • Zak McKracken says:

          I’d say that a decent way to do this should be by having the less-directed weapons either have a lower chance for critical hits, or to have the extra damage on criticals be less, so that on the whole the amount of extra damage from critical hits per time stays within a reasonable amount compared to the non-critical damage per time for each weapon.

          …or should it? Maybe a weapon that makes no regular damage but really big critical damage could be fun? It’d have to make a ton of critical damage to compensate for the lack of predictability … so it’d be like a super-gun that unfortunately does not always work.

    • Naota says:

      I probably should have mentioned that this also went into my thinking when making damage a cheaper upgrade. As it stands though, you do also have situations where enemies have 30 HP and your weapon deals 29 damage, where a single upgrade in damage effectively doubles your killing speed (or at least cuts one shot off the number required) and yet an RoF increase only adds its customary 7%.

      They’re situations, of course, so on the whole it’s difficult to determine if they’re common enough to match RoF’s reliable increase, but this does at least constitute some kind of advantage for damage builds depending on the circumstances.

  7. vdeogmer says:

    You didn’t mention the change to the save system!

    Saving and exiting saves your stats from the beginning of the level now, not from where you currently are.

  8. ooli says:

    Why there is not a link to the game store in those post?
    I’m reasing the article and I have no way to know where to get the game.

  9. WarlockOfOz says:

    Yet to finish the game but my upgrade preference has become shields rather than firepower upgrades. Each upgrade makes a substantial difference to the length of the health bar – much more noticeable than firing 15 bullets in the time it used to take 14 and more useful at my skill level – I’m not every going to be a contender for any Hat related swag.
    I’ve been using the ‘adequate robot’ community layout for the Steam controller.

    • Cuthalion says:

      I am so happy you said that, because I made that “adequate robot” steam controller layout. The controller wasn’t working right (at least on the menus) using the recommended layout or one of the templates, so I made one and was excited to be the first to add a community layout. :D

      (I mean, you’re not exactly complimenting the layout, but it’s still nice to know people are using it. I hope it’s been an adequate experience.)

  10. Collin Pearce says:

    My only wishlist:

    Add a difficulty slider.

    I gave it a try, I tend to dislike roguelikes because permadeath exhausts, angers and depresses me. But given the permadeath condition, the game is too hard for my frustration tolerance and I couldn’t see the point of continuing after the first hour.

    A difficulty slider could change that for me completely.

    • Ninety-Three says:

      It’s not quite a difficulty slider, but you could mod the game to be much easier. Mod it so shield and fire rate upgrades cost $1 (easy to do), then as soon as you hit the first upgrade station you can buy your way up to max health and fire rate for free.

  11. Dev Null says:

    This is because Good Robot stores its damage values as even integers, while upgrades improve them by accumulated percentages (7% per point for damage, for the curious)

    Soooo… not to be pedantic (but I will) but isn’t this still broken? In the old system, a thing with a damage of 1, upgraded once, becomes 1.07, which rounds down to 1, and the upgrade did nothing. In the new system, it has a damage of 10. Upgraded once, it gets a damage of 10.7, which still has to round to get to 11. Upgraded a second time is 11.4, which rounds down to 11, and the upgrade did nothing again.

    Wouldn’t it be better to have multiplied by 100, so nothing has to round ever, and you could just do integer maths?

    • Trix2000 says:

      I think before it was still including the values, just things were stored as floats and displayed without the decimal. So you were getting the 1.07 damage before, but the display was truncating that to one.

      I assume all they literally changed was multiplying everything by 10, so the rounding has a less dramatic effect on the displayed damage. Either way I think it’s still the same under the hood.

      • Cuthalion says:

        I think Dev Null is more correct. Probably what happens is damage inflicted is equal to the weapon damage, multiplied by the upgrade value, cast (i.e., rounded down) to an integer in order to be subtracted from enemy HP (which I’m guessing is an integer). So, the upgrade itself is stored as a float, but the weapon damage, displayed damage, and resulting impact on enemy HP are integers.

        This is how I understood the post.

        I believe the result is that, for any weapon with base damage 10-14, not every upgrade will matter. But, they will matter more often. For example, a weapon of 1 power would max out at 1.56 -> 1. A 5-power would max out at 7.8 -> 7, and that means only two upgrades would matter by pushing it over the edges to 6 and 7. But a weapon with power 10 will max out at 15.6 -> 15 and have 5 of the upgrades make a difference. So, multiplying by 10 doesn’t completely fix it for weapons that still have less than 15 power (the point at which a 7% adds at least 1 point every time), but it does improve the situation.

        • Naota says:

          You’re completely correct – we chose 10 however because only one weapon in the game (the SMG) deals less than 20 damage per shot, so in every other instance there’s a visible increase from upgrading your damage stat, even if the end result had to be rounded.

  12. Cordance says:

    Suggested game mode to be added. Practice mode. This should be a “relatively” easy to add mode code wise.
    I put a post on the steam forums. Im currently busy trying for the hardest hat achievement so I dont want to touch the game files at all until I finish it (or give up as a failure).
    The post outlines the basic concept of the mode.

  13. Abnaxis says:

    I am very frustrated by the changes being made to the game balance, and how they just seem to dither around the edges of the problem without fixing anything.

    Take the new Thermal Vent, for example. It does less damage, with less range, longer recharge, and massive recoil for…less damage than the starting secondary weapon?

    I get that you did absolutely everything you could to avoid having to explain anything to the player, but just….what is the point of the close-range weapons? I feel like I must just be fundamentally missing something, for the balance of these weapons (soundwave blaster, thermal vent, shotgun) to suck so very, very bad. I should not be finding power-ups that are worse in virtually every way than the starting weapons.

    Further, if what I’m seeing is correct, the change to the attack power scaling means that, instead of increasing by 1200 for each non-power upgrade, the cost of attack power only increases by 1100 for every non-power upgrade. This is still a far, far cry from being balanced.

    I’m sorry for being so negative it’s just…what are you trying to do, Ross? There has to be something here I don’t get, and the game seems like it deliberately isn’t guiding me here. What am I missing?

    • Naota says:

      Long story short: I haven’t done a close-up, comprehensive balance pass for close range weapons for a few builds now, though in my recent testing runs I’ve used them regularly and haven’t felt that they’re notably weak.

      It’s possible I’m missing something or we’re playing in different ways – I actually made the shotgun specifically to have a shotgun type weapon in the game after the flak cannon didn’t quite feel the part. The spread is an effective anti-missile option, and there’s no better option for eradicating swarms of weaker bots than a weapon like the Blunderbuss.

      It’s not as if the numbers look weak, either: the Thermal Vent fires 15 rather large orb-shaped balls of fire that deal 20 damage a hit (so 300 up close, maybe 140 at the maximum edge for most bots). The Sparkplug Blaster you start with fires a single overlapping cluster of 4 smaller orbs that deal 10 damage a hit, for a total of 40. Even in the worst case scenario of an enemy so tiny that only 14% of the Thermal Vent spread hits, the Vent should be doing more damage per shot.

      There is one other possibility as well: the floor damage value of weapons lowered when we multiplied everything, so enemies with armour equal to or larger than an individual bullet’s damage are much more resilient to them than before. They still take a minimum of 1 damage – 1 damage is just ten times lower a number than it used to be. This is a very compelling reason to take damage upgrades on weapons that shoot lots of weak bullets.

      This isn’t as huge a deal as it sounds for close-range weapons, though. They all deal almost double the damage per pellet at a given tier than automatics do per bullet, and nothing would have changed unless the enemy’s armour exceeds a bullet’s damage (nothing in the game has more than 30 armour, and that’s on the big guys in the last two chapters). It’s a lead worth checking out, though, so I’ll do so.

      • Naota says:

        And a minor update is pushed! Expect to see it go live soon:

        Thermal Vent minor rework based on more detailed testing:
        -Projectiles lowered in size
        -Projectiles fade out quicker, making range more obvious
        -Scatter lowered from 1.5 to 1.25
        -Damage per shot increased from 20 to 32
        -Projectiles per shot increased from 15 to 22
        -Range increased ~30%

        Soundwave Blaster damage increased from 20 to 24.
        Soundwave Blaster recoil lowered from 0.1 to 0.07.

        From my testing so far, the Thermal Vent’s larger projectiles give the illusion of hitting more than their small collision box actually does, so the number of projectiles making contact in a burst was much lower than it seemed. I threw in an extra ~50% of those, tightened and extended the accuracy cone a little, and added some more damage to offset the cooldown (it needs to match the Scattershot here at least).

        At 2×20 damage per shot and a refire rate of 6, the SWB has better DPS than any weapon in the first tier by a slight margin. The range and potential to miss a target with your scattered shots puts it somewhere behind the SMG, so it got a reasonable 20% damage boost to 2×24. The recoil change is mainly aesthetic – less of it still looks cool standing still, but is less disruptive to fire on the move.

        The Scattershot seems perfectly fine to me, while the Shotgun tears up the first few levels. That said, the latter is a T2 weapon, so if I do a few runs of later levels and it tapers harder it might get a modest damage boost. As for the Riot Shotgun, Blunderbuss, and Static Discharge, in my experience all of them seem to have no trouble cutting a swathe through later-game enemies – the Discharge in particular vaporizes large groups since each pellet also explodes to hit nearby bots.

      • Jarenth says:

        If you’re the one doing all the testing runs, a complicating factor might be that you’re really good at this video game.

        For me, getting up close to robots to shoot robots with close-range weapons almost invariably ended up with me taking damage. And with the way Good Robot‘s healing works, any damage is too much damage. Conversely, slamming robots from extreme range with ballistic missiles and rail spikers puts me at zero risk. And usually feels faster, too.

        There’s no point in me taking close-range weapons for a spin if the fact that I have to get in more danger to use them isn’t traded off with something else.

        • Ninety-Three says:

          As one of the few players with Elite Hat, I’ll weigh in with the skilled point of view.

          DPS is the wrong way to look at it. This isn’t a game where you’re fighting endless constant waves of enemies, so you don’t need to maximize the rate at which you kill things. Instead you mostly trigger encounters as you advance, complete the encounter, repeat. Most robots either shoot at you from medium range, or charge forward into melee, and both of those are set up to punish short range weapons, even if the weapons have higher damage.

          Made-up numbers time. Let’s say a melee enemy with 1000 HP flies in from offscreen, 1000 units away coming towards me at 250 units/sec. If I have a shotgun that only works from 500 units away, then I need to deal 500 DPS to kill it before it touches me. If instead I have a railgun that works from infinite range, I only need to deal 250 DPS to avoid being touched. A shotgun can deal 90% more damage than railgun and still be worse here.

          There’s a similar problem with ranged enemies: most of them outrange the shotgun-type weapons, so if you’re using something short-ranged then you have to expose yourself to enemy fire while closing the distance, plus perform more difficult short ranged dodges. Sure a shotgun kills them in two seconds, but you have to endure short-range attacks to do that, while an infinite-range bouncing weapon can kill things in five seconds, but without ever letting them get a shot at you.

          Taking damage sets up a vicious “poor get poorer” cycle where you have to spend money on shield repairs instead of firepower upgrades, so you have less firepower, so you kill things slower, so you spend more time in combat, so you get hit more, so you have to spend even more on shields…

  14. TMC_Sherpa says:

    OK, so there are a couple schools of thought when it comes to balance issues. The two most popular[1] are make small changes and make big changes.

    I decided to go big.

    This is a copy of projectiles.ini from April 16th 3:48am GMT in case it changes in a patch. It’s what it says on the tin. Make a backup first and extract the zip in WHEREVER\steamapps\common\Good Robot\core\data

    It changes the Sparkplug Blaster (starting gun) to a copy of the shotgun and ups the base damage to 200.
    Yes it is stupid unbalanced.
    Yes the first couple bosses die in a hit or three.
    Yes you need to watch out for explosions.
    Yes this probably blocks you from qualifying for any hat related shenanigans.
    Yes I had to look up how to spell shenanigans.

    Does having the shotgun do busted amounts of damage make using it worth while?
    You tell me.

    If anyone downloads this, don’t use it in an argument with Pyrodactyl or Shamus and Co. You bought Good Robot, it’s your copy to play with. Go do silly things.

    [1] According to me. And probably some other people but I’m covering my butt.

  15. Rick says:

    Great to read about the new control option. I started with keyboard and for my first could of play sessions, but swapped to controller for the next. I found it considerably easier and more fun with the controller, even with the old control scheme.

    I’m loving this game.

  16. RCN says:

    I haven’t bought the game yet (credit card is being hard on me for no reason), but from what I saw in streams, it seems like only the Shield upgrade gives you a free repair.

    I found it odd because the repair costs shoots up as the game progresses, and thus the shield upgrade becomes more and more valuable.

    I might have missed something, if so disregard, but wouldn’t it be more balanced if all upgrades repaired the good robot? Or at least if other upgrades than the shield one gave you a partial repair to make up for their cost? I saw at least two streamers choosing the shield upgrade on the sole purpose that they were dying and needed the repair.

    • TMC_Sherpa says:

      You can get a cheap(er) heal if there is a red vending machine at the end of the level.

      • RCN says:

        I know, but that’s the problem. The repair already cost money and gets more expensive as the game progresses. It seems like the repair cost to full is about ¼ of the cost of upgrading, which basically makes the shield upgrade 25% more valuable thanks to the free heal. Especially when the red shop fails to appear, like it did for Josh in the hang out.

        • TMC_Sherpa says:

          I’m not disagreeing with you.

          The range of repairs based on 99% or 1% shields is
          Using the formula in gameplay.xml

          Assuming no other upgrades are bought the shield upgrades go
          Based on me clicking upgrade three times and running out of money.

          I have no idea if buying a shield upgrade increases the number of time the robot was repaired value so while I was going to say repairs and upgrades aren’t linked I haven’t verified it. I should probably delete this section.

          EndMachine=”Shop” or “Upgrade” is defined per zone but I don’t know what sorcery is used to get both machines after a boss. In theory the zones could be edited so that a normal level would always give you a shop (red machine) and boss/miniboss an upgrade (blue machine) or vice versa. Which doors you get would still be random, and there is a min-max zones per level, but you would know which reward(?) would be waiting for you. I’m not sure how helpful it would be.

Leave a Reply

Comments are moderated and may not be posted immediately. Required fields are marked *


Thanks for joining the discussion. Be nice, don't post angry, and enjoy yourself. This is supposed to be fun.

You can enclose spoilers in <strike> tags like so:
<strike>Darth Vader is Luke's father!</strike>

You can make things italics like this:
Can you imagine having Darth Vader as your <i>father</i>?

You can make things bold like this:
I'm <b>very</b> glad Darth Vader isn't my father.

You can make links like this:
I'm reading about <a href="">Darth Vader</a> on Wikipedia!

You can quote someone like this:
Darth Vader said <blockquote>Luke, I am your father.</blockquote>