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.
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
…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.
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.
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:
- Weapon recoil.
- Variable rate of fire.
- 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: It homes in… on you?
Ross: No. I mean, that-
Ross is playing Good Robot
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.
Grand Theft Railroad
Grand Theft Auto is a lousy, cheating jerk of a game.
Quakecon 2012 Annotated
An interesting but technically dense talk about gaming technology. I translate it for the non-coders.
Black Desert Online
This Korean title would be the greatest MMO ever made if not for the horrendous monetization system. And the embarrassing translation. And the terrible progression. And the developer's general apathy towards its western audience.
id Software Coding Style
When the source code for Doom 3 was released, we got a look at some of the style conventions used by the developers. Here I analyze this style and explain what it all means.
Philosophy of Moderation
The comments on most sites are a sewer of hate, because we're moderating with the wrong goals in mind.