Project Good Robot 27: Missiles!

By Shamus
on Oct 28, 2013
Filed under:
Good Robot

I’ve added some text damage indicators to show the player how much murder they’re dishing out. When they shoot a robot, a number pops up to show the resulting damage. On one hand, screen clutter is bad. On the other hand, if players don’t understand the mechanics it can lead to frustration and confusion. Oh sure, I could just TELL the player about how laser power, energy drain, and armor interact, but showing the player some math outside of gameplay is going to be a lot harder to understand than just showing them how hard they’re hitting.

I sent this version out to my testers last week. We’ll see what they say.


My guess? “Make it an option”. Everyone says to make things an option. It’s often good advice, but making EVERYTHING an option makes for complicated interfaces, complicated debugging, and gutless design. If possible, the game designer should really just figure out what kind of game they want to make. Telling the user, “There’s a good game in here someplace once you get all these sliders and checkboxes sorted out and adjusted” is probably not the most direct route to fun. Some things must be options, some things should be options, some things can be options, and some things just waste the user’s time and fill them with doubt. A simple checkbox at the start of the game for “permadeath mode” probably won’t overwhelm the user. But adding a dozen checkboxes and sliders? That’s fine for strategy games, but it’s probably bad form in a simple action game.

But like I said: We’ll see what testers say.

The biggest trouble spot in my game is the missile system. We’ve done half a dozen builds now, and I don’t think we’ve had a single iteration where missiles weren’t a problem. At first the entire missile skill was useless and a waste of skill points, because there weren’t enough missile to make use of it and they didn’t do enough damage.

I sort of assumed that the missiles would work here the way they did in Descent. They would be used to clear out clusters of weak foes, or to soften up something big. I didn’t intend for them to be used all the time. But this game isn’t Descent. Good Robot has a faster pace and more foes. You can see all around you, so dogfighting in the middle of a room is a viable and fun approach instead of suicidal.

During testing, one person tried to do a “missile build” by ignoring the laser and putting all his points into missiles. He frequently ran out of missiles and found himself unable to fight. The build was broken, but there was nothing to indicate to the player that this wasn’t a reasonable way to develop their character. You’ve got two weapons, why is one the “main” weapon and not the other?

In response to this, I fiddled with missiles a bit. I made them more plentiful. I enlarged the blast radius. I upped the damage. But that only led to a new problem…

I had a homing missile powerup in the game. If you had it, you could fire a missile into a crowded room and it would blow everyone to bits. You didn’t need to aim or even expose yourself to enemy fire. All you had to do was fire a missile into an open space and back away. Once everyone was dead, you could gather up all the dropped XP, shields, and missiles and begin bombing the next room. It was overpowered, boring, and not the game I was trying to make.

Without the homing powerup, missiles were very, very hard to aim. Even with a mouse. Using a controller, they were almost impossible. You had to get close, and even if your aim was true the robot was likely to have moved around a bit by the time the missile got where it was going.

This was one of the things I hated about FTL: You were at the mercy of the stuff you found. Only this is WORSE than FTL, since you can LOSE powerups. You could get the homing powerup and yawn your way to victory with missiles. But then you make a mistake, die, and lose the powerup. Suddenly your build is invalid and the game is ten times harder. Suddenly the whole game hinges on this one powerup and not on player skill. The experience becomes very volatile and driven by random chance.

No no no. This is not what I want.

Sure, I could probably salvage the feature if I was willing to spend a ton of time fussing with it. Maybe foes should drop missiles based on how many you have? Maybe AI should hold still if a missile is heading for it? Maybe speed the missiles up? Maybe take out the homing powerup and just make homing a property of the missile skill? Maybe mess with the blast radius? Maybe try different text to explain missiles to the player?

I could make all these changes in an attempt to make missiles more situationally useful. Maybe if I tweaked the numbers just right, eventually I’d make missiles useful in situation A, less useful in situation B, and the player would understand the difference. I think this would take a long time and involve a lot of arbitrary rules. The feedback I’m seeing is telling me the entire premise is flawed and at odds with the game I’m trying to build.

So let’s try something else:


I wanted missiles to be a special-case problem solver for bosses and clustered foes, so why not just build a system around that assumption? I rip out the whole missile system and replace it with a “smartbomb”. Smartbombs automatically home in on foes. When they destroy a foe it causes an explosion. If that explosion kills something, it triggers another. So now the player can chain explosions if they can get foes to bunch up.

(Okay, this does require one slightly arbitrary rule: When a robot fires a missile, the explosion instantly does damage to everything in the blast radius. But a smartbomb has the explosion animate first, and does the damage at the END of the explosion animation instead of at the start. I admit this is kind of bullshit, but without this distinction we’d either have the player be able escape explosions without taking damage, or chain explosions going off all at once instead of being, you know, a chain. I’m not too worried abut this discrepancy in behavior. The AI is too dumb to fly out of the blast, so the delayed damage works in the player’s favor by letting more victims bunch up in the killzone.)

I don’t want the player to sit around sucking their thumb waiting for the smartbomb to recharge, so it recharges based on kills. Just blast bad robots with the laser and every few minutes you get a “smartbomb ready!” message and can start looking for a good opportunity to pull the trigger.

If you can kill a really big group at once then it’s just barely possible to have the smartbomb recharge instantly. I’m okay with that. It’s really only possible in the huge crowds in the latter stages of the game, and even then it’s kind of a risky thing to do.

This improves the game right away. I find there’s a certain tension to smartbomb use. You want foes to bunch up as much as possible to make a chain nice and big. This generally involves rounding up a really big and dangerous group of foes. This creates another incentive for the player to get in the and dogfight instead of trying to hang back and engage foes through a choke point. You can play that way if you want to (and if you’re playing on hardcore mode, it’s probably advisable) but your smartbombs will be less satisfying to use. If players are like me, they’ll probably be tempted to stick their neck out a bit and try to make the mob larger before they pull the trigger.


The other change to the game is based entirely on feedback and suggestions from people in the comments. Earlier in the series I remarked that foes can’t hurt each other with missiles. Late in the game, you’ll encounter big crowds of missile-based foes. If their missiles could hurt each other, then the entire group would detonate instantly as the guys in the back began shooting. I could have the ones in the back hold fire if an ally was in the way, but this would make it so large groups weren’t really more dangerous than small ones, because most foes would just patiently sit at the back and wait for the field to open up. Making the AI smart enough to spread out and not get in each other’s way would be prohibitively difficult and time-consuming. And even if I did all that work, it wouldn’t really make the game more fun. The player is likely looking for a chance to be clever and turn missiles on their enemies, and all this fussing wouldn’t bring us any closer to that goal.

Some people suggested having missiles act sort of like torpedoes. Missiles are harmless until they get close to the player, at which point they become armed and can hurt anyone. I tried it. It works.

Like smartbombs, this is a feature that encourages reckless behavior in the name of fun. Blowing up some robots with their own missiles is really fun, but you have to be willing to dance with missiles to pull it off.

This is exactly the sort of thing I was hoping to work on when I started this project. I don’t know if the final product will be any good, but at least I’m doing something interesting and different. Of all the projects I’ve worked on here, this is my favorite.

Enjoyed this post? Please share!

A Hundred!2020We've got 140 comments. But one more probably won't hurt.

From the Archives:

  1. kaypy says:

    For a given feature:

    1) Make it an option
    2) Set it to randomly change the setting on game load/start/pause/whatever
    3) Log whenever it is manually set
    4) Set the default to whatever is most popular
    5) Remove the option

    • Mephane says:

      Your method is very good to determine appropriate defaults, but why point 5? The option to choose is already implemented, and there is no need to force the preferred setting of a majority on everyone else.

      • kaypy says:

        There is a UI cost associated with having an option (“There’s a good game in here someplace once you get all these sliders and checkboxes sorted out and adjusted”*), so there are benefits to removing them where possible. I personally prefer “buried in a text config file” to gone altogether, but established wisdom is to remove options as per step 5.

        Whereas I suspect my step 2 would be somewhere between controversial and insane 8-)

        * Should I put quotes around this quoted quote I wonder?

        • Mephane says:

          Oh, of course. Having the setting only in a config file is also fine for stuff that the normal user won’t want to change, but still would benefit from a configurable option. Only when it is absolutely hardcoded such things can become a real nuisance.

      • Zock says:

        The fifth step will cut down future work. In addition to the initial implementation cost each configurable option comes with higher maintenance cost than a non-configurable one.

    • MrGuy says:

      Effectively, what you’re arguing for here is A/B testing of game parameters.

      I think it’s an interesting idea to apply to video games – not sure if anyone’s every used it for games (really interested to hear if anyone has).

    • Kelmomas says:

      One very important change to #3: in order for a choice to be logged, the player must have stuck with that setting throughout a certain minimum amount of playtime.

      That’s because you’re interested in what players have actually found to be fun, and not in what players think will be fun (which is often going to be off-mark).

  2. Daniel says:

    “When they destroy a foe it causes an explosion. If that explosion kills something, it triggers another. So now the player can chain explosions if they can get foes to bunch up.”

    As soon as I read that, I imediatly thought of the Dr. Device from Ender’s Game, which also functions as a chain-reaction. With the movie coming out Friday, I bet you’ll get that reaction a lot.

    Reminding players of an unrelated book is not necessarily a bad thing, but might be worth humorously acknowledging in flavor text or something.

    • Viktor says:

      On the downside, you’re reminding them of an OSC property. Given Shamus’ stance on politics in his projects, that’s probably not a good idea.

      • Factoid says:

        I think you overestimate how in tune the average person is with the politics of Orson Scott Card.

        Even with the movie coming out I haven’t heard a peep about that in the mainstream media.

        Most people, I think, are like me…they love the books and just ignore the fact that the writer’s political and social views are not in line with their own. I can like his writing without endorsing his philosophies.

        Completely unrelated to OSC’s politics however: anyone reading this can safely skip his newest Enderverse book Shadows In Flight. It’s pretty bad.

        • OSC is an oddly variable writer . . . some of his stuff is really good, some is really bad, some is mediocre, and series often start out with promise and then bog.

          Although even Ender’s Game . . . read it when you’re a teenage/twentysomething nerd and it’s this amazing sublimation of all your angst, rage, fear and wish fulfillment fantasies in a well-plotted, tensely written box.
          Read it again, a bit slower, much later when you’re a bit mellower, and the whole “killing the bullies because complete ruthlessness is the only option” thing feels a lot squickier.

          • James Schend says:

            Agreed. Ender’s Game is also a book I really enjoyed in high school, then went back to it a few years later and… sheesh. “squick” is a good word for it. (And not in the way OSC intends with the twist ending– the squickiest part is actually early on in the spaceplane and bathroom scenes.) I’m guessing the movie will gloss over and/or edit out those scenes.

            My first OSC book was Wyrms, which is awful.

          • Kian says:

            I found the idea that anyone could convince a significant portion of the world through brilliant manifestos and reasoned dialogue to be incredibly naive. Then again, he didn’t know the internet like we do today, so on one hand he was something of a visionary. On the other, he envisioned blogs.

            • MetalSeagull says:

              I read it before the internet and found it ludicrously implausible even then. The closest thing to it at the time were newspaper opinion columnists, and they weren’t swaying all that many or else it would already have happened. It was the weakest proposition in the book. The rest of it was also implausible, but it was sci fi. The blogging bit required magically changing the way people behave to fit the narrative.

            • Joe Cool says:

              Obligatory XKCD reference: Locke and Demosthenes.

          • Chuk says:

            Training little kids to kill the bullies etc. is even worse.

          • Steve C says:

            I read Enders Game for the first time this summer because I heard about the movie. I could see why it would resonate with teens and why an adult would find it “squicky”. (Great word btw.) I knew nothing about the author’s politics until recently and I still know little. I can infer some of his politics based on the book’s themes but I don’t really care. I wasn’t a fan of the book.

            I find it interesting that people who reread Enders Game later in life change their opinion on it so much. My experience is that opinion is more common than not. I’m very curious how the movie will compare. Many of the elements I found objectionable in print I would find sickening in a PG-13 movie. I don’t see how they could be removed without gutting it.

        • Kalil says:

          Given who Shamus’s primary audience is, I think you underestimate how in tune the average geek is about the politics of Orson Scott Card. ;p

      • ThirteenthLetter says:

        Nah. Most people are level-headed and well-adjusted enough to be able to consider an artist’s creations separately from their political views.

        • Tizzy says:

          I hope you’re right. The problem is: are we allowed to be level-headed and reasonable on the Internet?

        • DrMcCoy says:

          That’s not level-headed and well-adjusted, that’s spineless and willfully ignorant.
          Throwing money at people helps them advance their political views.

          And in most creations, the views of the creator shine through, since art and creativity do not exist in a vacuum. By ignoring the problematic bits, you are helping to legitimize those views in your society.

          • ThirteenthLetter says:

            Demanding that every work of art be evaluated on whether its creator holds a list of required political views, and with the required level of enthusiasm, reduces all life and art and beauty to politics, which is a cold, gray, cramped, circumscribed way to live. Go ahead and do that if you want to, but I’ll pass, thanks.

            • Alan says:

              DrMcCoy did not say you shouldn’t enjoy a creator’s works if you disagree with their politics. DrMcCoy did not say you shouldn’t enjoy a work with problematic aspects.

              DrMcCoy did point out that our actions may have indirect impacts on other people.

              • ThirteenthLetter says:

                Now when someone starts throwing around words like “spineless” and “willfully ignorant” and “legitimizing” “problematic” viewpoints, that kind of sounds to me like they’re urging a course of action, not just dispassionately passing the time with a little small talk about how societal mores evolve in a networked medium. But hey, I’m happy to defer to you on this one and accept that he didn’t really mean anything by it.

                • Alan says:

                  I didn’t say that DrMcCoy was just making small talk. I certainly don’t believe so.

                  There are options between make small talk about and evaluating every work of art on the creator’s political views. I am confident that DrMcCoy does not lie on either extreme end, although I can’t be sure which of the many middle grounds he has chosen.

            • Khizan says:

              Not evaluating works of art and other such things like that isn’t quite spinelessness, but it’s basically a wishy-washy way of saying that your desire for their product is more important than your ideals on the related subject.

              When the Chick-fil-A thing was going on, what you had was an organization that sold delicious chicken sandwiches and used at least part of the proceeds to help organizations that work against gay rights. If you disagreed with that goal and still bought their sandwiches because “their politics don’t matter, it’s just a sandwich, man”, then what you were actually saying was “I value a sandwich more than my principles”.

              It’s not quite spineless, but I don’t object to “willfully ignorant” or maybe “selfish and shortsighted”.

              • ThirteenthLetter says:

                Well, enjoy your gray, soulless life where you have to verify every single action you take against today’s list of approved political viewpoints, I guess. Personally I can’t imagine living like that, but if that’s what floats your boat, have fun!

                • DrMcCoy says:

                  …Because mindlessly consuming everything, not thinking about what it might mean or stand for or what the consequences are, is vibrantly colourful? It gives you a “soulful”, happy and fullfilling life?

                  And what’s with that pseudo-romantic false dichotomy between “passionate art” and drab, “cold politics”? What are you, 12?
                  The real world does not follow simplistic Disney plot structures, you know.

                  There’s also no shadowy organization crafting “lists of approved viewpoints”. I am not a gray, emotionless politic drone using my tentacle spider arms to drown beautiful art in censor bars and tip-ex and “political correctness gone mad”.

                  • ThirteenthLetter says:

                    I guess we’ll just have to agree to disagree on this one and part as friends!

                  • Mimir says:

                    You seem to think that financiel succes or wealth is directly related to political succes. that’s just not true. the last 200 years of political development have pretty clearly shown that money does not translate to power. otherwise we’d still be living under an absolutist king.I can enjoy someone’s work without supporting their political views, because giving them moeny doesn’t mean they’ll be politically succesful.

                    Besides that, It follows from that idea that you shouldn’t in any way fund people whose political views you find abhorrent. does that mean that a pro-lifer is being immoral when he pays a pro-choiser for fixing his car, or mowing his lawn? or the other way around? That’s an idiotic idea.

                    You can’t be held responsible for what other people do with money you gave them for services or products they rendered that were unrelated to any activities of theirs that you don’t like. That’s a fairly besic premise for having a functioning economy. or society, for that matter.

              • Syal says:

                Alternately, you’re saying “I’m confident enough that their cause is doomed that I can afford to give them some money to get something I want.”

                Alternately, you can buy the sandwich and then directly fund their opposition, and call it a wash.

          • Mimir says:

            You seem to think that financiel succes or wealth is directly related to political succes. that’s just not true. the last 200 years of political development have pretty clearly shown that money does not translate to power. otherwise we’d still be living under an absolutist king.I can enjoy someone’s work without supporting their political views, because giving them moeny doesn’t mean they’ll be politically succesful.

            Besides that, It follows from that idea that you shouldn’t in any way fund people whose political views you find abhorrent. does that mean that a pro-lifer is being immoral when he pays a pro-choiser for fixing his car, or mowing his lawn? or the other way around? That’s an idiotic idea.

            You can’t be held responsible for what other people do with money you gave them for services or products they rendered that were unrelated to any activities of theirs that you don’t like. That’s a fairly besic premise for having a functioning economy. or society, for that matter.

    • I was actually reminded of the Nomad levels on the old Star Trek Combat Simulator arcade game, where it laid mines that could chain-explode, so the more mines you let it lay, the more points you could rack up when you finally detonated one. The downside, of course, being that you might kill yourself in the chain reaction if you let too many get laid down.

  3. methermeneus says:

    Just my two cents (especially given that you’ve already come up with a system you like), but I kinda like the system presented in the Honor Harrington novels: Missiles aren’t as able to penetrate shields as lasers, but their engines give them longer ranges, and the explosion at the end also allows for soft kills (the explosion hits something that the missile itself didn’t). Laser, subject to diffraction and other constraints of physics, have a significantly shorter range, but within their range they practically ignore shields, plus they’re light-speed weapons.

    Since all the screenshots so far seem to indicate that lasers can reach the whole screen, this obviously isn’t what you’re planning to do, but I think it’s at least an example of a balanced laser/missile system. (There’s even debate among the nations in the Honor Harrington novels about the best balance of missile volley size to energy battery size to missile storage volume, given tradeoffs in number of missile tubes vs. number of laser installations vs. amount of missile storage, with larger ships obviously having more room for everything.)

    • Of course one thing about that system is that what you should be doing depends on your ship and the opposition; generally in the Harrington universe if you’re smaller and faster than the opposition, the only thing you should ever use is missiles. From as far away as you can manage. And then there’s the whole “weird geometry of shields so they can do broadsides” thing . . .
      At that, in the later parts of the series they pretty much settled the whole “missiles vs. beams” thing in favour of missiles with maybe an exception for next-generation superfighters.
      The other thing about that is it happens in limitless space circumscribed mainly by the need to defend things, not in caverns. Changes the dynamic a lot.

      Harrington stuff could plausibly make an interesting game in a “Starfleet Battles” sort of way.

      • methermeneus says:

        Harrington is where the basic idea comes from, but it obviously wouldn’t work with impeller bands and sidewalls like in the books. (Although that would probably make an awesome space combat/strategy game!) I was thinking of a simplified version to fit the way shields and health tends to work in shmups (kinda similar to how they work in Star Trek now that I think of it), which is what combat in Good Robot seems to most closely resemble. Something like shields reduce physical damage from missiles, but do it by taking damage to their own hp pool until they’ve taken too much damage and disappear. Lasers would bypass the shield (or at least reduce the amount of damage moved from the robot to the shield), but cause slightly less damage overall. The difference in range would probably work well with lasers only reaching half or a third of the screen’s width and missiles covering the full width, given that the caverns are essentially tunnels, which creates a long range in the wider aspect of the screen.

        Yeah, the introduction of LAC carriers and insane upgrades in technical capability over the course of the Manticore/Haven war kinda borked the early-series’ military doctrine. I’m actually rereading the books now, and I’m on Honor Among Enemies, which means I just got a good description of the different payloads of Manticoran, Yeltsin, Havenite, and Andermani ships of the wall, which is largely why I thought of it. Honorverse military tech doesn’t have a one-to-one correspondence to shmup-style combat, of course, but I think the most basic concept of what missiles vs. energy weapons can do works.

    • Kian says:

      Wouldn’t missiles be sort of rendered ineffective by laser point defense? Or is firing a laser too expensive?

      • Well, they are to some extent. There’s definitely not a linear relationship between “How many missiles you fire at someone” and “How much damage you do to them” in Harrington stuff. There are laser point defences and they have a saturation point; if you exceed it by much you do horrific damage, if you don’t reach it you do nothing unless you get lucky or have really good ECM on those missiles. On the other hand, the best point defence lasers are smaller and shorter range than the best offensive lasers, and there are tradeoffs in how many of each you carry . . . there are different schools of thought on how to manage that, with some navies tending to use big and small lasers and other navies going for lots of medium ones for the versatility . . . Harrington space is quite militarily interesting.
        (Harrington characters tend to be pure soap, but it only gets out of control in some of the books)

        • methermeneus says:

          What Purple Library Guy said. Also, the Honorverse books really make me want to read Horatio Hornblower (David Weber has explicitly stated that the premise behind the core Honor Harrington portions of the series is “Horatio Hornblower in space”). It makes me wonder how close their ship-to-ship combat really is to 19th century wooden ship combat (aside from “crossing the T,” which I know was and still is a legitimate tactic).

      • Khizan says:

        Another thing to consider is that the Harrington books have combat taking place at huge ranges with huge speeds. You might launch from several million km out with missiles that will have accelerated up to 0.7c by the time they enter the enemy’s acquisition envelope. At that speed, they might get one shot per laser off at them.

        The missiles also have jammers and other electronic warfare defenses, so they’re hard to get a lock on, and you’ve got to hit them at the right angle, because they’ve got the same propulsion system the ships do, which basically gives them impenetrable shields covering the top and bottom of it.

  4. Mephane says:

    I might be in a minority, but I always find more options = better. So often have I cursed a game for forcing me to suffer a feature that some game designer found cool instead of just allowing me to choose. Tastes and preferences differ, and a feature that some people love is most likely a feature some other people loathe.

    A recent example: weapon switching in Saints Row 4. You can’t simply scroll through weapons, always a full-screen popup appears when you scroll. You may choose whether this screen paused the game or not, but you cannot disable it to have the same tried&tested weapon quickswapping that SR3 – or any other shooter out there – has.

    And with regards to the mentioned damage floaters – those exist in many games, especially MMOs, and I have yet to see a game without the option to hide them; I think in this case a basic checkbox is a pretty standard feature.

    • Kian says:

      The problem, which Shamus referred to as “gutless design”, is that if you try to make your game as inoffensive as possible, you lose your voice as a designer. Not every feature will be something everyone loves, and that’s ok. As a designer, your job is to make choices. Trying to please everyone is impossible, and leads to boring games that are afraid to try new things.

      People often think they like things they don’t actually like, anyway. It’s the problem with assuming users are perfectly rational beings that act in their own self-interest. Given a chance they’ll happily make choices that lower their enjoyment and then complain that the game isn’t fun anymore.

      If it’s convenient to have something in a config file, sure. Letting players fiddle around with that can be ok. But it’s important for the designer to make the game, and not unload that responsibility on the player.

      There’s also the ‘slippery slope’ problem that once you decide it’s ok to let the player make some decisions, it becomes easier to justify giving them more options, leading to a less focused experience. Trying to expand your user base can be fine, but it shouldn’t be a design imperative. That way lie brown military shooters.

      • Mephane says:

        You last point makes no sense to me. I don’t even think that adding more options is about “appealing to more customers” but rather “allow existing customers to choose for themselves what they find comfortable”. But how you then conclude that the end result of implementing is bro(wn) shooters is beyond me. I am talking about options like “display tooltips”, “display damage floaters”, “colorblind mode”, “display subtitles”, “font size”, “mouse sensitivity”* and so on, which may affect the game’s presentation to a very limited extent, but not radically alter the visuals, gameplay, story (or lack of thereof). These settings exist because things that are fine for some players are just uncomfortable for others who would otherwise enjoy the game just the same.

        *And some seemingly minor settings can make the difference between “unplayable” and “great game”. Mouse sensitivity is an example, you can’t expect users to fiddle with their desktop settings just to adjust cursor speed in a specific game (aka the solving a local problem with a global solution anti-pattern).

        • Steve C says:

          If Shamus allows for modding (as he plans to) he can have the best of both worlds. He can avoid gutless design while providing a full range of options. Shamus is on the right path and should listen to his gut.

          BTW Shamus, I really liked the paragraph about options creating gutless design. I had never thought about it like that before. I was in the “This should be an option” camp for so many games before. Now I’m not.

        • Kian says:

          The last paragraph addresses the mentality of trying to capture a wider audience as a design imperative. Bro shooters didn’t just happen, they grew to be that way because publishers want to appeal to as large an audience as possible, and sacrifice design to that end. It’s why Spec Ops had a multiplayer mode. An “option” for those that like multiplayer and won’t buy a game if it doesn’t offer it. They didn’t want to say “This game doesn’t need multiplayer, so it won’t have it,” because that might potentially alienate players.

          Consider your own options. I agree with some; colourblind mode is important, as is mouse sensitivity in a game where the mouse is integral to the gameplay. Likewise, games that lean heavily on the graphics should have very detailed graphic options. But you wouldn’t ask for Good Robot to have a settings for 4xMSAA, trilinear filtering and tessellation.

          But if your game just uses the mouse to navigate some menus, which you can navigate with the keyboard anyway, a mouse sensitivity setting is pointless. It just clutters your interface. And how many games have you ever had to change the font size for? Seriously? I don’t think I’ve ever had to fiddle with that in any game. You just have to choose a font that is legible in any of your supported resolutions.

          Ultimately, the presentation is part of your design. Final Fantasy games show you damage floaters, and no one ever said “Yeah, they’re great games, but they’re ruined by the damage floaters”. Any choice that alters a tiny bit the presentation should be a choice the designer makes. That is what design means.

          Yes, a player might have a preference, but the designers job is not to satisfy every player’s every preference. Players can be trusted to accept small details they’re not enamored with if it makes for a more solid experience overall.

          • Mephane says:

            Font size is important in most MMOs for the chat window (and usually the setting only affects that and nothing else), because of widely varying screen resolutions, the default chat window and font size can mean anything from half the screen filled with giant letters to a tiny box barely readable in the corner of the screen. Well, a bit exaggerated, but you get the idea.

            • Kian says:

              Well, in that particular example, what you need isn’t a choice of font size. You need your developers to use the proper mechanism for scaling text to the screen. Your text should be close to the same size regardless of the screen. This is a complex problem. Say 13″ full HD laptop; what looks about right in a 17″ full HD monitor will look tiny. Unfortunately, when you start your program you can’t tell what size the screen is. You can get the resolution, but you don’t know the size in real world units.

              But this is not a design choice. It’s an inability to automatically detect the proper size, so you leave the responsibility up to the user. This is not a “choice”. Design-wise, you know what size the text should be. You simply don’t have the technical ability to solve the problem.

              • Alan says:

                Of course, if I’m using a slightly older projector whose maximum resolution is only 1024×768 but is throwing a 10′ tall image, scaling to a real world size will lead to text that is unreadable because there aren’t enough pixels, so we’ll need to account for that. (Similarly, I can tolerate much smaller fonts on a Retina display iPhone than an non-Retina display iPhone.) Depending on what I’m doing, I’m sometimes just a few feet from my 32″ television, and sometimes 15 feet away, so the software will also need to detect how far I am from the screen. And the software will need to know if it’s running in a non-native resolution, or is a projector using keystone correction, meaning the image is slightly blurry, necessitating slightly larger text to compensate. And the size I need text to be will of course vary based on how good my eyesight is. And sometimes I might decide that I’m willing to squint a bit at the text in exchange for more gameplay space.

                So if the software only knew the physical size of my screen, the minimum legible size in pixels the distance I am from the screen, how sharp my screen is, if it’s running at a native resolution, if keystone correction is in place, how good my eyesight is, and how willing to squint I am, we wouldn’t need an option at all? I guess I agree, but a font-size option seems easier to implement.

                • Kian says:

                  In all of those situations, what you want isn’t a choice of font size. You want the font to be legible. If the computer could know the proper size to set the font to, you wouldn’t care about having the “option”.

                  The design decision in this case is “the font needs to be big enough to be legible”. The design constraint is “we have no way of knowing what size that is”. So the solution is to provide a way for the user to set the size.

                  This is different from saying “We don’t know how big the font should be, so we’ll let the user choose whatever size they want.”

          • Khizan says:

            Font size is important because not all eyesight is made equal. A size you might consider perfectly suitable might be a size that leaves me leaning in and squinting.

          • Syal says:

            Players can be trusted to accept small details they’re not enamored with if it makes for a more solid experience overall.

            If a player is not enamored with a small detail then having it necessarily makes a weaker experience. If it’s really a small detail there shouldn’t be an issue with turning it off (or on, if the designer wouldn’t personally use the option).

            Final Fantasy games show you damage floaters, and no one ever said “Yeah, they’re great games, but they’re ruined by the damage floaters”.

            Final Fantasy 1 is a great game, but it’s ruined by damage being displayed in unskippable text boxes. I seriously can’t play the original because those things give me a headache. More to the point, Final Fantasy has options for battle speed, text speed, and menu color, and would be worse without those (L I T T L E M O N E Y).

            As to Good Robot specifically, if the stated purpose is to allow people to tailor their robot and create unique playthroughs, more options fit into that better than fewer options.

            • Kian says:

              If a player is not enamored with a small detail then having it necessarily makes a weaker experience.

              I disagree. A game is more than the sum of its parts. You can’t make “the best” game by trying to maximize enjoyment at every point of the experience. Works (in any medium) that set out to please as many people as possible often come out as bland. A work that may challenge the person experiencing it will be more memorable.

              Not just because it includes bits that may not be your favorite, but because the design philosophy that allows one to offend their audience empowers the designer, and allows them to explore more interesting subjects. A designer that feels compelled to put in an option for something minor is not going to be confident enough to tackle anything of any consequence.

              This is a weakness that is unique to video games, because being interactive experiences the user has so much control over the work itself that it is sometimes natural to feel like they should be given more power at every opportunity. Also, designing is hard. Every choice kills off every possibility you didn’t take. But experience has shown that more choice is not always better.

              Aside from that, just because in the finished product a feature might be “minor”, doesn’t mean that removing it is free. Especially when it comes to testing.

  5. Nick Powell says:

    Could you just change the graphical effect based on the amount of damage?

    For example, more sparks/robotic appendages/dust particles/whatever flying off after a hit would mean more damage, and the player might slowly get a more intuitive feel for how much damage they’re doing.

    • I would vastly prefer that to floating, rising numbers. I’ve never liked the number trick, even back in the old N64 days.

    • broken says:

      I would agree with this, the question being what to use for damage indicator. Dust and other particle effects could obscure the vision, making it more difficult for the player to see, or when many enemies are on-screen at once it could lead to a screen with too much to see clearly…

      • ET says:

        Would be a lot nicer to look at if you could get it done right.
        But the thing is that, that might be a big ‘if’; Getting the floating-numbers system working right probably involves less things to mess with.
        Size, font, colour, maybe time-to-fade or something else?
        Particles would take all the same (except the font, duh :P ) and on top of that, you have to mess around, figuring out if it actually is readable in different damage levels, or just looks cluttered.

      • Paul Spooner says:

        So, make the particles show up behind the game objects instead of in front of them. Or make the “damage graphic” a light “shockwave” circle, which is larger for more damage. Whatever the method, I agree that visual “scale” indicators are better than “numeric” indicators, especially in a game that is fast paced. If this were the kind of thing that players were going to punch into a spreadsheet and do statistical analysis on, I’d say the solid numbers are better, but since it’s meant to inform the intuition I would council against numerals.

      • MetalSeagull says:

        What about degrading the outline of the enemies as they take damage. Jagged edges where the hull is damaged, hanging wires. Make the visual changes at 50% and 75%.

    • Volfram says:

      I was wanting to suggest something exactly like this.

    • On more boarding this train of thought. Text damage indicators in a SHMUP is kinda missing the point.

      • Rack says:

        Although it’s cheating a bit you should probably take a look at how Nuclear Throne handles this. Vlambeer are absolute masters of getting good feedback on weapons and if you can get some of the design working for you it should make Good Robot a heck of a lot more fun.

  6. Neko says:

    As a compromise between no options and having to make pages of UI dedicated to sliders and checkboxes, I’d make it a ‘secret’ option in the config file. Still user-configurable, if they’re really dedicated to tweaking their game.

    As for missiles homing or not – perhaps give missiles a ‘dumb’ homing computer as the baseline, that can only track things in a very narrow field of view in front of them. It’d help with aiming at range for slow moving targets, but not be a fire-and-forget deal. Then powerups can upgrade the homing ability of the missiles, or tighten their turning circle, or make them split up into tiny missiles, or whatever else you’d like to improve them with.

    I do like the ‘torpedo’ solution though, it really helps the enemy missiles be balanced with the player’s.

  7. Deoxy says:

    Regarding missiles: I did warn about that exact problem with upgrades 2 posts ago (reader questions).

    The way I would fix it (other than what you did, which sounds great) would be do at least one of the following:

    -missiles regenerate over time, to a relatively small max (essentially, you did this, with the max being 1).

    -missiles always home, but their turn radius is poor… it can be improved with a skill

    -missiles have a proximity sensor… that can be improved with a skill.

    Those last two could both be implemented, either separately or exclusively (pick on or the other).

    But your solution seems to fit the game very well.

    • KMJX says:

      I think a missile build could still be a viable and very fun option, though I understand that it’d be a nightmare to balance out.

      I’m the kind of player who would be able to hit 9/10 shots at any AI opponent after i get the hang of the controls, because I tend to register simple behavioral patterns naturally, and would be able to predict where to aim even for straight shots. Harder enemies would still dodge the skillshot but that’s where the skill tuning comes in.

      Here’s a few pointers from my perspective:

      – The missile skill would remove the ability to cast the smartbomb (leave the smartbomb for people who wouldn’t go the missile route), or increase it’s cooldown significantly.

      – Missiles have a max charge number (6?), a firing delay (couple of seconds?), and once the charges are depleted a longer timer (1-3 minutes?) activates, at the end of which your charges are replenished.

      – Missiles fire in a straight line, unless a target is locked on. To lock on a target you have to target it directly and use the action trigger (fire), hitting is not important, but you need to keep your pointer/crosshair on target (not pinpoint but reasonably close) for a couple of seconds (depending on the intended pace of fights).

      – If a target is locked on, the missile will home in, with a poor turning rate, so it’s still important to aim correctly.
      Weak but very nimble foes (and obviously bosses) would be able to dodge most shots, but might get caught in the blast radius and still die if to close to less maneuverable enemies.

      – Missiles have a high damage output, they will be one-shotting any early foes, but this would not last for long without putting points in the missile tree.
      A basic (unskilled) missile should still do higher amounts of damage than a couple of laser shots in which some skill points have been invested in (i assume the laser has a rather rapid firing rate here)

      – Small but still significant blast radius means that if you manage to bunch up enemies close to your main target you will get multikills, or do heavy damage depending on distance from the point of impact.

      – Putting in points in the skill would increase damage at all levels, and at some breaking points increase turn rate, decrease lock-on time, increase blast radius, decrease recharge time, increase projectile speed.
      Ideally keeping the skill maxed should always be killing most normal foes in one shot, but require two for the tougher ones and a couple of full charges for bosses.

      Basically a missile build would revolve heavily around aiming, positioning, and timing. It would be a heavy burst damage build, with relatively long intervals between charges, and during the cooldown time the player would have to concentrate on evading.
      Fun for some, frustrating for others.

  8. The Schwarz says:

    Is there a button for manually detonating a smart bomb while it’s still in the air? There should definitely be one.

    Also, you haven’t mentioned it, but there’s a skill for smart bombs, right? Because a “smart bomb build” would be frickin’ awesome. It could reduce the amount of kills required to regenerate the bomb, increase the radius/damage, even give an additional bomb slot if you’ve reached a high enough level.

  9. MrGuy says:

    It’s over a decade old now, but this article from Joel on Software is still the most cogent thing I’ve ever read arguing against the “make it an option” position for software.

    • Retsam says:

      Got to say, I do think he underestimates how much customization advanced users do. I’m pretty sure I’ve both widened and moved my windows start bar. At lot of options that seem like nonsense (“Why the heck would you want to rotate your screen orientation 90º?”) make sense in one particular workflow. (I have a coworker who has one monitor rotated vertically, because he can fit more code on the screen that way)

      One approach to this sort of advanced customization seems to be registry/terminal hacks (for PC/Mac respectively), but that seems like just as bad a solution, honestly, because then you have to think to look for that option, and then google it.

    • The funny thing is, the article kind of claims to be an argument against “making it an option” but does not in fact make that argument.
      Rather, it argues against having situations that force people to choose, either straight up forcing a choice before a feature can be used, or because the choice mechanism can readily be triggered by accident.

      Then it generalizes to “therefore, having a lot of options is bad” without actually making that case. The article does not touch on situations in which there are sane defaults (thus no choice is forced) and options are accessible only in some deliberate way (going into an options menu). This is the most common case for how options work, so I don’t think the article makes anything like a serious argument against proliferating options in general. I won’t say such a case doesn’t exist, but this article doesn’t make it. It does make a very solid case against certain kinds of clumsy UI.

      And one of its specific examples, about dragging the menu bar off to the side . . . Well, I like two bars. I used to run one on top and one on the bottom, but nowadays monitors tend to be way wide but not necessarily so tall. I find vertical space is at a premium more than horizontal. So, I run one bar on the bottom (which mostly shows what windows I have open–hard to do that vertically) and one bar on the side (which is mostly for launchers, which do fine on a vertical bar). Joel argues that it’s pointless if you use various different computers, but I’m very happy to have this option even though I don’t have it at work. And I don’t find I lose such customizations when I upgrade my OS, my options are generally preserved. Of course I use Linux, maybe things different on Windows.

      • MrGuy says:

        I don’t think the argument is “having a lot of options is bad.”

        The lesson I take from the article is that part of the process of designing things is making choices. “I can’t make up my mind what the right thing is so I guess I’ll make it configurable” is a suspect choice.

        Good design involves making choices on behalf of users that guide them to the right place. Worrying that “there might be someone somewhere that MAY want this so I’ll make everyone encounter an option” isn’t likely the right thinking.

        • Paul Spooner says:

          I would argue that good design involves exposing as much functionality to the user as possible, while also making the tool useful in its default state.

          As Purple Guy said, it’s bad to force the user to make decisions that they don’t have the information to make. This is the “useful in its default state” thing. You want software to work out of the box without having to reconfigure it. As you say, “I’ll make everyone encounter an option.” is the wrong way to go about this.

          But that doesn’t meant that providing lots of options is a bad idea by any means. In fact, it is a mark of humility when a designer provides configurability. The designer is essentially saying “I don’t know everything, so I’ve made this as flexible as possible so you can use it how you like.” Yes, providing lots of options CAN be a facade for lazy design, but only if the defaults are not in a “good” state. Otherwise, there is no harm in letting the user decide to change how the game is presented.

          But what if they make a mistake? What if the user mis-configures the software and makes it worse than the default state?
          On the contrary, isn’t learning from your mistakes and making meaningful decisions what games are all about? If you want the user to have the perfect experience, why make it a game at all? Why not just record the AI doing a perfect play-through and put it up on YouTube?
          Yes yes, false choice, straw man, etc. My point is that providing options is always good when done with humility and when the defaults are configured thoughtfully.

          And yes, there is a cost associated with configurability, but it should be entirely on the developer’s side. I’m fine with hearing “it is too hard to make this configurable”, just so long as it isn’t “And besides, I’m doing you a favor by thinking for you and not providing choices.”

        • You’re doing what he did. Worrying that “there might be someone somewhere that MAY want this”, and wanting to do something about it, does not imply that you have to “make everyone encounter an option” as the solution. You can do options in ways that do not make most people encounter them, and indeed only make people encounter them who want to encounter them.
          There are arguments against doing anything about the worry that “there might be someone somewhere that MAY want this”. But you (and the article) didn’t make them, you argued against one solution type (and not even the most common). Your argument against that one solution type is valid. But your insistence that it operates as an argument against all solution types for that problem starts bordering on the strawman if you push it too far.

          • Paul Spooner says:

            I don’t know why I bothered responding. You’ve got this, and with better concision to boot. Well done.

          • MrGuy says:

            Don’t think I ever claimed there were no options other than “throw everything in the user’s face” and “don’t have any options.” Agree the article does a bit (and is weaker because of it).

            I find the perspective of “hey, think hard before you just making things options” useful – I’ve seen a lot of developers (even ones I respect) default to making everything a config option. Sometimes this is done well (“power user” config menu). Sometimes it means making a lot of decisons before you can do useful things.

            Which was to sort of agree with the point Shamus made in the article – “just make it configurable” isn’t always the obviously right response.

        • Mephane says:

          No, what Joel argues against is forcing uses to make a decision that they should not have to do. There is a fundamental difference between a popup dialog “do you want to use option A or option B, you must decide to proceed” and just doing A and putting the option to choose B in a settings menu or config file that you can open up if it turns out A does not work for you.

      • Kian says:

        The core of the argument is, I think, that you should only give users meaningful choices. You shouldn’t bother them with choices about things they don’t care about.

        So, having a graphics program with a million choices for size, shape, color, gradient, etc of brush strokes is excellent. Users of the program are going to want to be able to make just the kind of brush strokes they want to make, and they’ll be upset if they are not given the power to do so.

        Putting an option for the menu font because there’s a font snob in the team that doesn’t want Arial would be bad. Nobody cares what font the menu is so long as it’s legible, and if they slip and select wingdings they’ll make the program unusable. Minimize bad choices, and empower the users to go about their tasks as precisely as they want to.

        • Paul Spooner says:

          This is all fine and good… except that it assumes the developers are both super-normal, and super-abnormal at the same time. Also, can read minds and tell the future.

          How is it possible to say that “Nobody cares” when there is someone “in the team” that cares? I mean, if you’re ignoring your own team’s preferences, how likely is it that there are samples of the user-space out there with even more diverse desires for options? Spoilers: they are very high.

          What this means is, not only should you provide options for everything that anyone on the team could possibly want, but also anything anyone on the team could possibly imagine wanting (if feasable of course, options require code, and code costs money). There is someone out there who will care, and for whom it will make the difference between the game being merely “functional” and being the best thing they ever play.

          • MrGuy says:

            Can’t disagree strongly enough with your conclusion on what’s desirable. Probably because it seems that we disagree on how costly extraneous options tend to be.

            Every option is code to be written, combinations to be tested, extraneous bugs potentially created. More than that, every thing you do has opportunity cost – what could you have spent time on instead? Would that have made the game more enjoyable than adding that configuration?

            Sure, offer options that you think might really improve someone’s enjoyment. Offer options if you think there are people who will have strong preferences. But adding options just because it’s possible someone out there will care deeply, even if you don’t see how? With respect, I can’t imagine that ever being a good investment of time and talent.

            • Paul Spooner says:

              I would accuse you of equivocation, but I do it often enough myself.

              I’m more than willing to admit that most options are just that, optional. If given a choice between “more options” and “less options” I’d choose the former. Yes software takes time to develop, and lots of options make it difficult to test. I’m fine with developers eliminating options for ease of development. What I’m not fine with is them turning around and pretending they’re doing the userbase a favor by “making the right choice” for them.

              I see this kind of “save the user from themselves” attitude all over the place, both in consumer goods and in broad-base software. My response is simply that if the user can find their way into the options menu, they can certainly find their way through and out again the other side.

          • Kian says:

            I’m with MrGuy. Aside from the costs for the developers, choices impart a cost to the user. When you make a choice for that one font snob, you’re forcing every other user to wade through one more tab, menu, checkbox, etc when they’re looking for the meaningful options.

            How many times have you had to search through the options menu in search of a particular setting, while filtering out the options you don’t care about? Imagine if every option for everything was cutomizable? It would be impossible to find the choices you cared about. Option menus would be huge trees that branch infinitely. Because EVERYTHING about a program can be modified. You could even put options about how you want the options to be displayed.

            Imagine if browsers offered the option of the url bar being at the top or the bottom, the font they use for the url, the placement of the forward and back buttons, what the buttons do, etc. It would be an unmaintanable mess, and it wouldn’t improve the browsing experience.

            Yes, there’s a segment of the population that thinks they like being able to define every tiny detail. But creating a consistent experience and providing useful choices without wasting everyone else’s time is more important than satisfying their need to control every detail. Your job as a designer is to empower the user to go about their tasks, and that’s where you should focus your energy.

            • Alan says:

              Some browsers do allow you to move the URL bar to the bottom, and to re-arrange the forward and back buttons. This can be useful when an upgrade or switch to new software moves things around, especially with users less comfortable with computers. It’s hard to overstate how seemingly trivial changes, like swapping two buttons, can completely confound some users. (Admittedly, I don’t think any web browsers have put the URL bar on the bottom in more than a decade, so maybe we can retire that one :-)

              The general ability to customize the controls is useful for eliminating useless junk. I have no use for the search box, or a button that shows me my bookmarks, and I prefer to see more of the URL, so I appreciate the ability to get rid of them.

              The font used in the URL is almost certainly configurable, although usually at the OS-wide level. Those of us whose eyes are no longer young appreciate this. Perhaps unsurprisingly, accessibility is often the first victim of someone trying to simplify a system.

              “How many times have you had to search through the options menu in search of a particular setting, while filtering out the options you don’t care about?”

              The trick is that which settings are essential and which are irrelevant vary from person to person. I agree that it’s important to prune options that are deadweight. But it’s also important to identify options which may only be of value to 5% of your target audience, but is essential to them.

              • Kian says:

                Accessibility, I’ll admit, is a complex issue I’m not familiar with. It is, of course, important to provide accessibility features. But there’s a difference between accessibility and customization. Accessibility is not a choice. When you alter the colors to help color-blind users, you’re not providing it as an option because you think some users might prefer a different color scheme.

                It’s important to distinguish between choices, and simply not being able to automatically set the correct setting. If the computer could detect with perfect accuracy if someone is colorblind, then you wouldn’t need an option to enable colorblind mode. Same with font-size for poor eyesight. If we had such capabilities, the program could just switch to the appropriate mode based on the user. This is a technology shortcoming, not a design issue.

                As an addendum, just because some browsers permit some things doesn’t mean they’re right. Real world applications are plagued with bad design; its why books on design are written. If everything was properly designed and everyone made the right choices, it would be a non-issue. But even high-profile applications can thrive despite horrible choices.

        • Actually, I think that particular point in the article is in a way interesting but in another way unfortunate. It fuzzes the distinction between options and features, which I think does exist.
          I mean, I see features as being like “The robot has lots and lots of different weapons”. Here there are arguments to be made against feature creep, and so forth. Options seem to me more like choices about how the program is going to operate.
          So the article says it likes meaningful options, and then points to liking lots of features as an example of meaningful options. So if we’re talking about graphics programs, take for instance The GIMP, the Linux Photoshop-like graphics program. Now both the GIMP and Photoshop have lots of features for brush-thingies and all that. But they have (or traditionally had) quite different UI; Photoshop had a fairly traditional one big screen approach with menus at the top and so forth. The GIMP, weirdly to many, had its UI broken up into different sub-screens. Now, lots of Linux types came to like this UI, but many other people came to the GIMP from photoshop and loathed the unusual interface.
          There was always a lot of pressure for the GIMP to adopt a more Photoshop-like interface. But lots of users were dead set against this, as well. Here we have an example of a very meaningful option, rather than feature, and I believe making it an option is precisely how it was (and needed to be) settled.
          There are certainly lots of options less meaningful than that, and the question really is how far down that list do you want to go? Where does the point come where clutter in the options menu/s outweighs the advantage from the next more marginal option? How few plausible use cases does something have before spending time programming it becomes more trouble than it’s worth? How will a proliferation of options interact to produce unexpected, problematic behaviours?
          But it’s not like having an option for say changing the font the program presents itself in, in itself causes users any trouble. All they have to do is, if they don’t care about customization at all, don’t look at the options menu. If they do, don’t pay attention to that particular option in the list when they look at the options menu.

          • Kian says:

            Games are special in that unlike other programs which are basically tools, they are toys. The point of Word is not to fiddle with Word itself, but to write documents. The point of Good Robot, however, is to play Good Robot. So games are both means and end, while every other program is a means to an end.

            This means you can’t lift the same design rules verbatim for one and apply them to the other.

            As for your last point, options do have a cost for users. I may not care about customization, but I might still need to alter some way the program works when I change from one task to another. Which requires searching for a particular option in the options menu. If the option menu is cluttered, this makes my task harder.

            What’s difficult for many designers to understand is that the program itself doesn’t matter. What matters is what the user is trying to accomplish with your program. Every option that doesn’t enable the user to do the task better, is wasted effort for you and wasted time for all the users trying to accomplish their tasks.

            • Word processing, for instance, is a very broad task. It can mean an awful lot of different things. Assuming one set interface, or even very few, will work for the whole array of possible tasks that people will be approaching is wrong.
              And different people have different workflow, eyesight, handedness, and yes, taste. Some people want readily visible options and controls because they use the program occasionally for a variety of things, and have to hunt for relatively basic functions a lot. They want to maximize discoverability. Some people want screen real estate and the ability to cut clicks and keystrokes to the bone if you know what you’re doing, because they use the program constantly and/or have a fairly consistent set of tasks they use it for, so they want to save time. Taking the ribbon interface, for instance, many of the former group like it and many of the latter hate it.

              So I’d have to say lack of options has a cost for users. Often a much bigger one than the cost of “Oh, there are quite a few options in this menu” when they go to see what the options are. It’s not like they’re going to be in that screen every five minutes. Balance is important, and to me the people insisting on few options and “getting the design right” too often mean “Nobody could want things to be different from the way I like them, and if they do want that they’re wrong.” It’s a rather arrogant perspective, and there’s quite a history of design failure by people who were sure they’d produced the greatest thing since sliced bread (My most recent examples would be Windows 8 and on the Linux side Gnome 3).

              • Kian says:

                Taking your own example, the people who like stripped down interfaces use emacs or vi, while the people who prefer the ribbon approach use Word. There is no choice in Word to remove the ribbon interface, nor is there a choice in emacs to add toolbars. Because they are confident in their design, and they understand that they can’t be everything to everyone.

                If an approach that favored the amount of customization you suggested was viable, the king of word processors would be one that could be configured to behave as either. Instead, you have two camps of people that are strongly attached to the program that does things the way they like it.

                A strong design will resonate more strongly with users, even if it drives away part of the possible audience. A program designed around a “DIY” interface will not please users. Users are better served by being given a set interface they can learn than one they have to fully understand to be able to properly set up for themselves.

                If you just use sane defaults, that’s what 99% of your users will ever use, specially if they share the computer or use multiple computers. Since reconfiguring the interface is a pain they’ll eventually give up on after upgrades, formats and reinstalattions return their settings to the default.

                And I’d like to stress, this is not about the designer being right and everyone who disagrees being wrong. This is about the designer making choices that may or may not be popular, but that someone has to make. And since he’s the one being paid to make them, it might as well be him. Not pleasing everyone is not a sin. It’s unavoidable. So instead of wasting time on a fools’ errand, you get it done. Even if some users are driven away. Those users can go and find another program that fits their needs better. They’re not wrong, and you’re not superior to them for being the one to make the choices. It’s simply a matter of your product not being the right fit for them.

                With any luck, the time and effort you saved by providing a solid design that’s confident in itself can be instead aimed at providing more powerful tools, which will draw more users to your program and keep your existing users buying new versions.

                • Alan says:

                  emacs, arguably the most customizable text editor ever, may not be the best of examples. Toolbar support has been a built-in option to emacs for some time.

                  I yield that the ribbon is a very confident design. I do find it odd that Microsoft decided that modern Office is only for new users and casual users, and anyone else should go use another product. I guess they can get away with that when most of their expert users are trapped by compatibility issues, and when entire industries essentially mandate working in Word. But that’s not really an argument against Microsoft being arrogant.

                  • Kian says:

                    emacs is extensible. There’s a difference. You can load code that modifies how it works. There wasn’t a designer that had to choose what extensions can be made and whether they should be loaded at start up. Instead, any user can make add-ons and you have some facility to manage them. If you get a clean installation, and don’t add any add-ons, you won’t find a huge options page.

                    I’m not saying that just because a design is confident that it is necessarily good. I’m not a fan of the metro interface either (though more because of the closed nature of the ecosystem than the look). But they’re not likely to be forgotten easily, and that’s almost as good ;)

                • Atarlost says:

                  EMACS and VI are not word processors. They deal in plain unformatted text and are fundamentally incapable of doing what pre-ribbon Word did.

                  But pre-ribbon Word was enormously customizable. And so was pre-ribbon Excell. And they meshed. There’s no handy spreadsheet program that meshes with VI or EMACS. Nor a presentation tool. Nor a diagramming tool like Visio.

                  And all of them were fully customizable. They could bind anything they could do to a button or keystroke sequence except possibly selection and cursor manipulation, which I think may have been stuck with the defaults. And they could do pretty much anything thanks to a turing complete macro language.

                  And some people did need to automate repetitive tasks with visual basic and bind them to keystrokes.

  10. No doubt yer past this…in fact you clearly stated you past this, but fuggit:

    I – if I were capable of anything even remotely like this mind – would put missiles back in, but change their function. Instead of making them a weapon of damage output, I’d change them to make them a weapon to impair movement.

    ‘nother words, have them, upon impact with ANYTHING create a blast radius that pushes enemies away from the point of impact. Their range from said impact could inform the level of damage they receive as well as temporarily impair their ability to fire weapons at you.

    Whether that’s feasible under the hood or not is for you to decide of course, but it seems that the main distinction in most SHMUPS using the laser/missile combo is that missiles are a physical impact weapon, so it makes sense – at least to me – to have lasers be this high damage weapon that doesn’t affect mobility at all while missiles can by used to literally push enemies around.

  11. Zanfib says:

    Does killing bad robots with their own missiles fill your smart bomb meter?

  12. Alrenous says:

    I want a combat log rather than little numbers popping up.

    Most of the time, I don’t care what damage I’m doing. I just count hits. Occasionally, it’s vital I know. Then I can pause the game and go look, and consider the results as long as I want. When I’m done, I forget all about damage numbers entirely so I can focus on aim and not dying.

    One hits, two hits, red bits, blue bits.

  13. Chuck Henebry says:

    Do you have visual feedback to signal when the enemy torpedoes have armed? I’m guessing that’s something you’ve thought of.

    I’d propose a similar solution to the task of signaling damage done by the player. Not a floating dialogue with “11” or “51” but some visual feedback—perhaps the color of the laser, or the # particles spawned on impact.

    Note that the player probably doesn’t need to sort of granularity that numbers provide. 51 is more than 50, but it isn’t meaningfully different as a measure of hp done. So using color or # particles could provide a clear distinction between “21” and “51” while leaving unimportant distinctions (51 vs. 50) out of consideration.

  14. Paul Spooner says:

    Glad to hear you’re enjoying the development and innovations! We’re all rooting for you. Keep it up!

  15. SteveDJ says:

    Comments tl;dr

    Is the recharge ‘cost’ for the smartbomb something that you can spend Skill Points on, to get the next one sooner?

    And, I would expect that once charged, additional kills are NOT banked. I think that would be a good thing, and it could influence different game play behaviors: In addition to the “save the smartbomb until it is most advantageous”, there is now the “Oooh, it’s charged, fire now so my next kills are ‘wasted’ but can get back to work charging the next one…”

    • Paul Spooner says:

      Yeah, that is one of those things that requires a fine touch. If you can keep banking kills after the threshhold is crossed then you don’t feel like you have to use it right away, which is good because you can wait for a good opportunity. On the other hand, if the ceiling is too high, then you end up lugging twelve smart bombs around the whole game and never using any of them. Some sort of “smart bomb encumberance” might help here, where “overcharging” the smart bomb starts to slow you down, giving you some extra incentive to use the smart bombs, while also letting you over-charge a bunch of them if you really want to. Who knows how it will stand up to playtesting though.

  16. arron says:

    As regards the all-missile build, you could include a single basic laser on the basic droid that is barely adequate as a offensive weapon, but is better than nothing.

    This was a tactic used in Paradroid where if you used the Influence Device to take over a robot without a weapon, you used your intrinsic laser, but if you took over a maintenance or warrior bot, you’d use the weapon from that droid instead, which was usually a lot more effective for destroying enemy droids.

    • Syal says:

      I think that’s what it had. That doesn’t make it a legitimate build if you have to rely on the laser for extended periods, because during those periods you’re nine points behind every other build.

  17. Matt says:

    how about doing things a little differently, and having the hit object flash once per hit in a colour based on their new health? For example, at 100% the enemy flashes green, and this fades through to red depending on how close to 0 health they are?

  18. Phantos says:

    I do worry that the numbers over the enemies with each hit might just make it too cluttered. Those screens look pretty busy as they are, but maybe it works out okay when it’s in motion.

  19. Ozy says:

    Regarding the proposal to make the AI stand still when a missile is coming at them, I must say that my experience with this sort of mechanic that is meant to “help” the player is that it can actually be extremely frustrating if implemented poorly. For example, in Undefined Fantastic Object, there are powerups that change between one of 3 colors in a fixed order in a fixed time, UNLESS it is about to change color and the player is close by and headed towards it, in which case it will not change color. Presumably, this was meant to keep it at the desired color when a player was just about to pick it up and prevent the player from just barely missing the color they wanted. In practice, it makes it extremely frustrating once you get the timing down, because then you can not time your movement so that you collide with the powerup just as it changes color, because if you try, then your approach will delay it changing color. You kind of have to stay a half of screen away to avoid movements towards it from triggering the delay, (and since this is a Touhou game you will be moving in every direction to stay alive) and then only start moving towards it after it changes.

    Much better if it just followed a set pattern. Unless, of course, it was designed to antagonize the player, in which case, mission accomplished.

  20. Hawkstrike says:

    Have MIRVing missiles been suggested? You know, missiles that, if they don’t hit something after a short time of flight, split into three separate missiles with different trajectories and smaller warheads. So there’s high payoff if you hit at short range, and a potential to increase probability of hit at longer ranger. This is perhaps a way to add a missile weapon that doesn’t require homing.

    A powerup for this could be viral missiles … each missile that successfully destroys a target causes the target to launch a missile (or three) out of its death explosion. Gives a whole new meaning to “death blossom”.

    Loving this series, BTW.

  21. Kevin Reid says:

    An idea for revising the “arbitrary rule” about smartbomb explosions vs. others:

    All explosions hit or miss immediately. However, a robot which is hit by a smartbomb does not itself die and explode immediately; instead, those effects are delayed briefly, and during that time the robot doesn’t move/shoot (so it is dead for gameplay purposes). The robots in this state could even take on a special “fried” or “glowing with unstable energy” look, which would help indicate what’s going on as well as looking awesome.

  22. Phantos says:

    Oops, I appear to have dropped some more fan art in here.

    How clumsy of me.

  23. John says:

    It seems a bit pointless commenting on here when you have already decided. Anyway…
    “He frequently ran out of missiles and found himself unable to fight. The build was broken, but there was nothing to indicate to the player that this wasn’t a reasonable way to develop their character.”

    I think the indicator is in the previous sentence:
    He frequently ran out of missiles and found himself unable to fight.
    That seems like a pretty solid indicator to me.

    The problem is that a lot of people come from games with different characters (RPGs, Diablo, etc) where, for PVP and combat effectiveness, each character has to be just as good as every other character at every level. So these people come into a game like yours and see the two weapons as two possible distinct paths.

    You have already fixed it. Another fix might have been to really indicate how you saw the weapon. e.g. by not having many level ups associated with missiles to they are forced to spend some on lasers; by not having missiles available from the start; or by not having many powerups for missiles so it is a rare occurence when they get to let loose with them.
    i.e. Answer this question for them: “You’ve got two weapons, why is one the “main” weapon and not the other?”

    Another symptom of this is showing the amount of damage being done. This really encourages min-maxing and breaks the fourth wall. Another way, although harder to program, is having a visual indicator that makes sense in the game world. e.g. smoke, dents, erratic movement, etc.

    The game looks great, thanks for all these posts.

    All the best,


    • Alan says:

      “This really encourages min-maxing…”

      What’s the problem with min-maxing in a game like this?

      • Paul Spooner says:

        Or, in any game? I mean, that’s the objective of the game right? In soccer you want to score goals, and prevent scores against your team, so you get a team together that is good at that. You probably tweak the positions, composition, training, etc to minimize your opponent’s score and maximize your own score… I can’t imagine a situation in which a game should not encourage this kind of behavior.

        And, before anyone jumps on this, the normal case where “min-maxing” is bad is in role playing games. These are strange beasts because, while the ostensible goal is “role playing” nearly all of the mechanics are often clustered around combat… I’m looking at you D&D. This results in two separate simultaneous games with differing goals. Min-maxing is excessive focus on the mechanical combat side to the detriment of role-playing. I haven’t encountered a common term for the opposite problem, but I tentatively call it “Barding”… for obvious reasons.

        In any case, Good Robot has, as far as I can tell, no such internal conflict of goals, and therefore “min-maxing” both does not exist and (if one insists on using such terms) must be accepted as an entirely positive mark.

        • Kian says:

          Nice analysis.

          Going off on a tangent, I think one reason RPGs focus so heavily on combat mechanics (aside from having evolved from wargames, which are all about combat with no characterization) is that while people are willing to concede that someone could best their character physically, they’re loath to concede defeat on ‘social’ challenges.

          Even if their character has the stats of a fool, and plays the fool on occasion, when it really matters they won’t want to fall for an obvious lie if they themselves can see through the lie. Doubly so if the person trying to manipulate them is another player.

          • Paul Spooner says:

            Yes, it is an odd dichotomy. Of course, the lack of mechanics for social interaction could just as easily be a result of the lack of interest than vice-versa.

            I think nearly all of this discrepancy in percieved ability Re: physical vs social capacity would be eliminated if players were required to use a different language when speaking “for” their characters. It would very quickly become apparent that the players have just as different abilities in the mental and social space (both from eachother and their characters) as they do in the physical space.

            It may also be a result of the disproportionate emphasis on mental and social skills in the table-top gaming scene. Anyone with actual real world physical prowess would probably be playing sports instead of RP, so the kind of people who RP will generally be the ones who are keenly aware of their physical limitations. I wonder if the dichotomy would be reversed if we got a bunch of sports stars to do RP. Would they refuse to admit physical inferiority, even on their character’s behalf, but readily concede social contests to the roll of a dice? Who knows?

            • WJS says:

              I’ve heard that complaint so many times, and I still don’t get it. Combat mechanics are something you have to simulate in tabletop, because if you try to do them yourself, you’re LARPing. Character interactions are something you can just do yourself; indeed, isn’t that the whole point? Strange that it always seems to be people who profess to be into the roleplaying part that complain about this, you wouldn’t think they would want to replace that with rolling dice.

        • Alan says:

          It occurs to me that people aren’t actually against min-maxing in tabletop RPGs. They’re unhappy that someone is min-maxing toward a different goal than the speaker prefers. It’s particularly common in RPGs that claim one goal, but mechanically reward achieving different goal. As you say D&D can be very problematic.

  24. kdansky says:

    Damage numbers:

    Why does everyone and their mother insist on having floaty damage numbers since WoW? Most egregious example would be Warframe: where you have dozens (if not hundreds) of numbers floating over enemies, to the point where you can’t even see the enemies. Damage numbers also break immersion really badly, and instead of looking at the fight, and counting how many shots an enemy takes to kill, one starts fixating completely on the numbers. Binding of Isaac or Nuclear Throne are refreshing in that they forgo the numbers as an explicit design choice (source: Interview with McMillen). Damage numbers are fine for excel-games (WoW). Hiding the innards from the player is generally not a bad idea to keep the magic alive.

    Permadeath: How come a major game design choice is a menu option? Either the game is a better experience with permadeath, or without. Leaving that choice to the player is questionable, they have a 50% chance of choosing something worse, and no idea which one it is (Skyrim with Permadeath would suck, Spelunky without Permadeath would also suck). It’s as if Scorsese didn’t bother directing the whole movie, and left the viewer with a choice what to watch, with some of the outcomes being less interesting. To put it another way: If one could influence Alien in a way to make the crew leave the infected first member behind, the movie would be much worse, because it ended after 15 minutes.

    You write about wanting a stronger designer voice, but make the most important part of the game (“how do you handle failure of the player?”) optional.

    As for the usual suspects: Please don’t start with the eternal “the player knows best” crap. It’s incorrect, and it has been shown countless times to be incorrect. Players will ruin their own enjoyment if you let them (for example, powerful abilities are what the player wants to get, but nobody actually enjoys a game for any length of time where you are invulnerable and have infinite smart bombs), and “fun” is not the only criteria for quality (or else Schindler’s List would be a really shitty movie).

    • Alan says:

      If it helps, think of permadeath as a difficulty setting. For games that are best suited to permadeath play, the ability to disable it can be a useful training wheels mode. I certainly appreciated it in Nethack. For games best suited for non-permadeath play, the ability to enable it can be a fun extra challenge for someone who has mastered the basic game.

    • Kian says:

      Some excellent points. Although I’m of two minds about the permadeath thing. On one hand, I agree with you completely. On the other, I think about how the recent X-COM had an option for Ironman mode, which didn’t allow you to reload and try again. I liked playing on Ironman mode, forcing every single step my troops took to be a decision I had to think about carefully. But I know a friend of mine that (at least claims) would have hated it if he was forced to use it. He had enough trouble with the regular mode and thought I was crazy.

      I think it’s akin to a difficulty slider. They affect huge portions of the game, but you let the player choose because each player will have different skills. If you accept that enjoyment is derived from the challenge the game presents, then if the difficulty is fixed, different players will have different enjoyment. You can thus maximize fun by allowing players to set the game to a difficulty that presents an equivalent level of challenge.

      On the other hand, it’s tempting to say “this is the way the game is meant to be played”, and expect the player to work and develop his skills for his enjoyment. It won’t be as popular, perhaps, but it makes a much stronger statement.

      There’s also a middle ground I’ve seen some games take, where one difficulty is assumed to be the standard, and lesser difficulties are explicitly training wheels. On a game I’m playing now, New Game+ only works on the same difficulty or lower, for example. So once you’ve beat it once, if you want to challenge yourself with a higher difficulty you have to start from 0 again, no items to make it easy. Once you beat it at that difficulty fairly, though, you can start over with endgame items and breeze through the beginning stages (it’s a branching RPG, so it’s cool if you want to explore other paths).

      • WJS says:

        That… doesn’t sound all that great, TBH. Wouldn’t you want NG+ to be harder? If you’ve got an end-game character, won’t the early stages be painfully dull if you don’t increase the difficulty?

    • Syal says:

      Damage numbers also break immersion really badly, and instead of looking at the fight, and counting how many shots an enemy takes to kill, one starts fixating completely on the numbers.

      Agreed, for a game like this they should probably be disabled when the game starts. But a lot of people would rather fixate on the numbers than have immersion, and an option to turn damage numbers on is going to be appreciated.

      (for example, powerful abilities are what the player wants to get, but nobody actually enjoys a game for any length of time where you are invulnerable and have infinite smart bombs)

      Invulnerability and infinite ammo are some of the most popular cheat codes in games. It doesn’t ruin the game to have them, because players get bored with it and turn them off.

      Leaving that choice to the player is questionable, they have a 50% chance of choosing something worse, and no idea which one it is (Skyrim with Permadeath would suck, Spelunky without Permadeath would also suck).

      Here’s the problem; you’re assuming the player will never have the chance to change their mind. If someone turns on Permadeath mode, they’re not stuck with it forever. It lasts until they realize they don’t like it (i.e. they die and have to start over), and then they turn it off and play without it.

      Also it’s not 50%, as the majority will just go with the designer’s default setting.

  25. wererogue says:

    Don’t make it an option.
    Make it a powerup!

    On second thoughts, don’t do that.

    Personally I’d rather have visceral feedback for most users – more damage *feels* more damaging. But definitely some players are going to prefer to see their numbers go up. It’s a tough decision.

    What do you prefer to see?

  26. Cuthalion says:

    Yay you answered my question about smartbombs. Or at least, I think I was one of the people who asked…

    I’d prefer to have the numbers off by default for a game like this, though I can see myself turning them on for strategy. But overall it would just seem less immersive, I think.

  27. sofawall says:

    I’m curious how you plan on doing level transitions. The obvious options I can think of are continuous levels, where the player just flies to the next screen and is in the new level, with no obvious boundary marker. Another similar idea would be the Metroid style, where level transitions often look like just another door or elevator, but when you arrive the decor and music are all different. Seamless from a gameplay perspective, but obviously marking the end of a level. Another possibility would be an arcadey sort of level transition, where you zoom off the end of the level and then reappear at the start of the next level, possibly with a screen in-between.

    It’s the third one I’m curious about, mainly because it would be an awesome place to put a level stats screen. Something like “Enemies killed, Enemies total, % of enemies killed, Largest Clusterbomb” etc. Alternatively, one could have a little combo counter somewhere when a clusterbomb goes off to show how many enemies were kill in the bomb. Bragging rights that you can screenshot are always fun, after all.

  28. SyrusRayne says:

    I’m not sure if this has come up yet in the thread here, but… You could potentially link the two systems you mentioned in the post. What I mean is something like this: You kill a Bad Robot with one of their own missiles, and that in turn gives more than the usual number of points towards your next Smart Bomb.

    That seems like it could push the good old ‘risk vs. reward’ buttons, maybe in a good way.

    That said I can understand why you might not want to implement such a thing. It might end up a bit tricky to balance – having it be so useful that you want to always use it isn’t really ideal, like you say above, and the opposite is also true. I guess there’d also need to be a bit of feedback for the player as well, to let them know it’s even happening.

    Post Script – Reading this over before I post it, and I’ve determined that I need to go sleep. I’m cognizant enough to know that a lot of what I’ve written above could be put much more intelligibly. I am not cognizant enough to do so. Hopefully it at least gets my point across.

  29. Chris says:

    My motto is “more options = more gameplay” which equates to more fun or, alternately, more game longevity (i.e., I’ll play it longer).

    I completely and ridiculously disagree with not giving the player as many options as possible and that there could be ANY possible negative to doing so (with the one possible exception which I don’t think even applies to this discussion of coding time and/or cost).

    And how could it make your game “gutless”?! Wtf? Make the game YOU want to play and then, when you’re done, make everything configurable.

    If somehow you believe that the majority of your users are idiots who can’t wade through an options menu or would spend more time fiddling with options than actually playing your game…put the non-default options in a config.txt file! Problem solved, and you’ve just increased the longevity of your game.

    I’ve read every post in this discussion and still have absolutely no clue how anybody could be against more options in a GAME. I’d like to point out that several of you anti-options haters apparently are assuming there is only one way to do options: a cluttered menu. That is so not the case, as several others have pointed out (i.e., a config.txt file). “Mission Critical” options go in the Options Menu, everything else (and the kitchen sink!) go in the config.txt file.

    How could that possibly, ever, be a Bad Thing?

    Love the series. Wish you wrote your programming blog(s) more often. Everyone take care!

  30. Paul Spooner says:

    I was trying to get back to this post, so I clicked on the “programming” heading on the side-bar… no Good Robot links! It’s already the longest programming series you’ve written. Any chance it’s going up there soon? Or, were you thinking of devoting an entirely new section to it? Just wondering how we should be planning on browsing Good Robot posts in the future.

  31. defaultex says:

    I was just thinking while reading this of those gamer posed challenges like “beat the game without using any potions”. It gave me the idea that instead of exposing every parameter, find some combinations that work well together. Expose a single option called “Flavors” which let’s the user pick from those combinations. Provide a means of importing and exporting flavors so that players can use them as a way to generate challenges for each other.

  32. Thom says:

    Another idea to keep both lasers and missiles (or whatever you call them now) interesting:
    Make different types of enemies more or less vulnerable to the different weapon types. Sure, you can kill this boss with missiles, but he’s quite vulnerable to lasers, so you’ll be more effective that way.
    Call it some kind of shield

  33. Neil Roy says:

    You remarked that they had a pure missile build where they ran out of missiles and had nothing left to shoot. Why not have a minimal powered laser in all builds? A pure missile build would still have a laser, but it would be as weak as one could get, but it would give you SOMETHING to shoot until you got more missiles.

  34. WJS says:

    Wait, so your missiles didn’t home in without this power-up? A little silly to call them missiles then, isn’t it? (Yes, Metroid, I know…)
    A binary “homes/doesn’t” seems a pretty poor way of handling it, IMO. I would expect basic missiles to have a huge turning circle, which gets tightened up as you upgrade it.
    (I would probably split the level trees into two, one for missiles and one for lasers. There are a whole mess of things you could improve about missiles, after all. The answer to “why is one weapon my main, and one not?” can just as easily be “they’re both viable”. Obviously there’s nothing wrong with choosing to make one your main, though, so long as the mechanics support that and make it obvious to the player)

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>