Monday, December 26, 2011

Progress bars & load screens

Bad Game Designer, No Twinkie! has a new installment up at Gamasutra. As always it's pretty great! I agree with a lot of the criticisms made. However, there is one in particular that caught my eye:
Giant Internet Explorer's little circle goes 'round and 'round, telling me nothing. Yet the tiny, free xScope browser for my Android phone includes a progress bar that shows me how much of the page has loaded. It's invaluable.

[...]Put in a progress bar that fills up, once, until the load process is complete. It doesn't have to be perfect; if you load 2 files and one of them is 10KB and one is 10MB, but you allocate half the bar to the first one and half the bar to the second, that's tolerable. We don't really care as long as we can see movement.

The "donut" of the spinning progress circle gets a lot of shit. I just feel compelled to mount a brief defense of it, since the justification makes sense to me. If I were designing a loading screen, I wouldn't want to draw ire for making an entirely justifiable decision.

First, let's look at IE vs xScope to understand how a donut and a progress bar serve slightly different uses. Internet Explorer is normally on a desktop machine, whereas xScope is a mobile browser. It's safe to say that in the author's case Internet Explorer is more likely to be hooked up to a high-speed internet connection, while  xScope is most likely on a 3G mobile connection. The differences between the two are important. If IE listed out every single element on a webpage and calculated how long each would load, it would probably spend more time on those calculations than actually acquiring the data through its fat pipe connection. On a mobile device, however, two things are important: You send out a mobile useragent, which often gets you a simplified version of webpages, and you have a laggy, slow, fairly unreliable connection. Less elements + higher chance something will hang = better reason to do the calculations to show what's left in the loading process.

Now let's look at the suggestion to fake progress bars with the naive approach of grouping files into buckets and just showing rough estimates progress. In this example, the two files differ by four [Three? - ed.] orders of magnitude. Let's be unrealistic for a second to illustrate a point and assume that it takes 1 second to load a 10KB file. So, you sit at the loading screen, and after 1 second of watching an empty progress bar it goes up by half. Very nice!

Now, let's take our naive loading algorithm and assume that it is linear with regards to file size. 1 second for a 10KB file means to load a 10MB file would take... Oh.

(1 second / 10 kb) * (1000 kb / 1 mb ) * (10 mb) = 1,000 seconds.

After waiting for 1 second to see the progress bar move, you are now waiting 16 minutes to see it move again, according to our naive algorithm. The point is not "this would take 16 minutes to load", the point is that files can easily differ by orders of magnitude, so tying progress to file size means your progress bar will have gaps with orders of magnitude. An experience with large time gaps calls the conclusion ("we can see movement") into question, since the majority of time the progress bar is not moving.

Furthermore, there is user research  on the subject of progress bars - ever watch something hit 99% complete and sit there for a while? It's annoying. Much more annoying than, say, waiting for something to go from 0% to 1%. If you want to do loading "right", you need a non-trivial algorithm to display this information to the user.

So now we have two pieces of data from our thought experiment. One is that a naive approach to progress bars is ineffective and doesn't always give the user an assurance that their box hasn't crashed. The other is that users prefer certain algorithms to displaying progress. This is becoming a complicated issue! If you look at documentation, even the MSDN page for progress bars is full of caveats about usage.

Sims2: Pets loading screen. Progress bar with caption:
"Scolding Splines for Reticulating" [Source]

The reason for the spinning donut is simple. It doesn't give the user information to guess a time to completion, so the user can't be frustrated by that last 1% on a loading bar or a fake progress bar that has no relationship to actual completion. Progress bars, in the context of a game, don't really provide useful information to the user. Showing files and categories loaded might be interesting to some, but The Sims shows complete nonsense to the user and no one I'm aware of has ever complained that "reticulating splines" or "Dividing by zero" is misleading - so how useful can accurate information be? The user, as No Twinkie! cedes, is only interested in making sure their console hasn't crashed. So what additional benefit does a progress bar provide over a spinning donut?

My point isn't that progress bars are always bad. My point is that for progress bars to be effective, they need to be carefully considered in context and implementation. It's not just a matter of hacking together the first thing you think of. It's possible to implement load bars properly, but it takes time and effort and risks aggravating your load times even further. All that time and effort spent will need to be revisited when assets are added or removed. Why not just show a spinning donut instead? Users are always going to be frustrated by load times. A donut is not "accurate", but your loading bar isn't going to be accurate either. If you're working on a game, wouldn't you like to fix 5 or 6 more bugs instead of hyper-optimizing something for no benefit?

Edited to correct minor typos, including "an assurance that their box has not crashed" and an off by one on the orders of magnitude involved. Oops.

Wednesday, December 14, 2011

Mega Man Generations

This video explaining why Mega Man X is actually a great sequel was making the rounds (warning: is a YouTube video about video games--jump to 12:11- 15:45 for the relevant bit), but one claim in particular stood out to me. The author says, “Mega Man X is about growing stronger,” and he cites evidence from the game-play and the scripted sequences. It’s true! The Mega Man series has a lot of hidden depth that tends to get ignored. The games are separated into sub-series, each of which takes place about 100 years apart. While the games evolved to keep up with (or even define) modern conventions, the progression of the Mega Man games when examined together also tracks the optimistic rise of a new technology, the unforseen side effects, the struggle to control and contain technology, and the rejuvenation that comes at the end, starting another cycle.

Mega Man, Dr Light and Rush stand on a ruined highway beneath a clear, blue sky as Dr Wily taunts them with his magnificent mustache.
Source []

Mega Man 7 - 20XXAD. Mega Man 7 was the first Mega Man game that took plot as something more than a few words on an interstitial screen. In this game, Mega Man is a bright character in bright world, and the game even starts with a bit of slapstick as Mega Man dons a met hat instead of his helmet. Oh, and let’s not forget the wince-inducing naming schema of Rockman, Roll, Blues, Bass and Treble. The sky is pure blue even with the temporary devastation of yet another Dr. Wily jailbreak. Mega Man is a new creation, a new technology, fighting against those who use the same technology for evil. The comically-evil bad guy always goes to jail at the end, even if he breaks out in the next game.

X leaps above a torpedo shot from a giant flying bee under a dark sky. Some Blade-Runner-lookin skyscrapers rise up in the background. 
Source []

Mega Man X - 21XX AD. The X series was a major tonal shift. It was on the same hardware as MM7, but the palette is completely different. No mention is made of the world previous to this one, except for Dr. Light’s ghostly hologram. X is a bright character in dark world. He literally glows with energy, and his armor upgrades turn him towards pure white, even as the highway collapses in ruins under his feet.

According to the plot, X is lost technology rediscovered by Dr. Cain. Cain clones the technology he finds from X to revolutionize industries across the world. However, the Sigma virus rewrites this poorly understood technology and destroys the earth just as the new automation has finished building it. The future is grim. X sees a future with constant warfare and wonders at the futility of his goal. Does he have to fight forever? 

Zero sits in the rain, alone. A ruined city is in the background
Zero chills out in an underground ruin while a giant robot hand grabs Ciel.

Source Gallery []

Mega Man Zero - ~22XX AD? The Zero series starts with a dark character in dark world. The techno-utopian Neo-Arcadia (literally: a new place where people are believed to live peacefully) sentences dissident robots to death while the city’s humans remain mysteriously out of view. Technology is wielded by the entrenched hierarchs of Neo-Arcadia, who use their endless supply of Pantheons to maintain power through complete control, in this case, of energy supplies.
The shining optimism of new technology present in Mega Man is gone. The struggle to control existing technology in the X series has been lost. Zero is from the past, and he is the only one who can dismantle the tight control of production maintained by Neo-Arcadia.

The game emphasizes Zero’s brutality. Unlike X, he gets up close with his sword for the kill (rewarded in boss fights with a shot of your enemy split neatly in half, revealing their inner circuits before they explode). The Zero games have a scoring system which emphasizes Zero’s remorseless killing--levels where you finish under a par time, kill lots of enemies and don’t take any damage get you higher ranks. This leads to a guerilla-like approach to combat: move quickly, exploit terrain to your advantage, only engage when necessary.

Zero’s mobility is reinforced by the nomadic nature of his allies, who travel in caravans and attack remote bases in the desert. They are outcasts, struggling for survival and hoping Zero’s ancient technology can lead them to victory.
ZX (look, I don't name 'em, ok?) is chilling in a verdant forest fighting a snake-monster thing. The trees in the background have faint traces of wiring sticking through. Well, except that one tree, which has a big-ass wire wrapped around it. 

Source []

Mega Man ZX - ~24XX AD? The ZX series got weird. It was the shortest series and probably the most reviled*. It was about technology regenerated, as the palettes started shifting back towards bright. Z and X have become “biometals”, merged with a human, and their collective angst has been toned down.
You explore cities and wilderness meshed together in an open world. It illustrated the tension between this happy safe world of technology but also the wilderness of unchecked Reploids.
However, the game is also about the influence of the past. You collect the remnants of the last series’ Big Bads, and their ghosts guide you. Technology has been tamed again, but will the ghosts of years past let it sleep peacefully? Where will this world be in another 100 years?


*Well okay anything past X4 or X5 is really the most reviled since the whole thing with Keiji Inafune having his creative authority overridden by Capcom’s insatiable desire for sequels really got out of control after X5 (the series went up to X8, unfortunately), but there were only two ZX games, and they were largely hampered by an inscrutable map screen and a blandly designed, forgettable world.

Thursday, December 8, 2011

Assassin’s Creed: Revelations

Hey look, if you’re going to make a by-the-book game, then I am going to write a by-the-book look at it. With bullet points.

  • Pacing problems: the Desmond plot is urgent while the Ezio plot is languorous. The game works better when you feel like you need to explore the ancient memories while Desmond poopsocks in the Animus because otherwise why are you reliving an ancient male power fantasy when you are actually dying?

  • Plot problems: Not really “about” Ezio or even Altair. It’s about filling in a few blanks and spending some time on the Apple of Eden subplot instead of cramming said subplot into the last five minutes of the third act.
    • The more we learn about these crazy time-travelling aliens, the dumber they seem. “Fragmentation of society due to the massive unchecked power of the Apple” would have been a lot more thematically appropriate than “unstoppable natural disaster”. 
    • Even the Ezio plot didn’t have the elaborate conspiracies and double-crosses I’ve come to expect. Instead it was, “Hey, grab six Macguffins. Now here is a bad guy. The end.”
    • Actually, it’s not really fair to say that the plot is about filling in the alien subplot. It’s also about the philosophical battle between the Templars and Assassins. Ezio kills a man who turns out to be innocent. Altair deals with the corruption of a friend. Desmond has just killed his mentor and almost-girlfriend. The Templars, in contrast, claim to be seeking knowledge. They fight in self-defense against the Assassins who invaded their city. The Templars aren’t all good, of course, but neither are they entirely in the wrong this time around. It’s like Ezio’s age has tempered the message of the series. It’s no longer “Templars Bad, Assassins Good”. It’s “Who Do You Trust With The Apple?”

  • Mission structure: I really enjoyed the missions where you had to hold down forward and A, almost as much as I enjoyed the missions where you didn’t have to do anything except walk up to a person and put down the controller.
    • There was ONE infiltration-and-assassination mission. That’s ridiculous.
    • The game has a ton of trouble sticking to its core strengths. It’s not that additional systems are diluting the experience, it’s that for a game about assassination, there were an awful lot of horse carriage chases and walk-and-talks.
    • The Desmond scenes really illustrate this perfectly. The Animus “island”, which I suppose is a poorly explored, clich├ęd metaphor for “the ocean of the unconscious”, has none of the climb-and-explore game-play AC is known for. The Desmond missions are a first-person jumping puzzle game.
      • Which I don’t even. I got turned around so many times that I lost sight of where I was supposed to go, and I didn’t have any access to any of the tools I would normally have in an AC game (like a minimap or eagle vision) to help me out. It was abstract for the sake of being abstract. Desmond’s whining retcons* about how he didn’t listen to his mommy and daddy doesn’t exactly inspire confidence in his moral fiber. I ended up rage-quitting** the second puzzle just so I could get on with my life.

(*) Seriously, didn’t he wake up in an Abstergo building and play dumb about Templars and Assassins? The entire point of Desmond--as I saw it--was that he was the “everyman” who gets swept up in something larger than himself. He is the player vessel, meant to guide the player through a complicated plot. To say that he was secretly aware the entire time (and trained!) not only means the player cannot relate to him as well as before, but it also means that the Animus’s bleeding effect, which supposedly was serving to train “everyman” Desmond in the ways of the Assassins, was a waste of time.
(**) It’s worth noting that I am the guy who rage-quit Ico and Shadow of the Colossus. I am not a patient gamer.

Fiddly Bits
  • The game starts with the Ubisoft logo glitching out, implying a sort of digital corruption. Then Ezio hallucinates that he sees his ancestor in a callback to the bleeding effect. Then you see Desmond is in a coma, wherein his subconscious is dealing with the scrambled personality of the previous Animus test subject and is struggling to regain his sense of self. These elements are perfect for a ghost-in-the-machine type of story about Desmond’s shattered conscious, Ezio’s aging mind, and Sixteen’s shattered sanity. Instead, we got a story about a Strong Male Character who seduces a sexy librarian.
    • The bleeding effect itself is an extremely powerful element. We’ve all gone to bed and dreamed of the games we’ve just marathoned. When Desmond is first confronted with the ghosts of guards in AC2, I about jumped out of my skin while mashing the attack button. It’s something that connects to the player in an instinctive way. To hint at the glitch in the Matrix in the intro and then drop it completely is the biggest tease in the series so far. 
    • Incidentally, will Desmond ever explore his matrilineal memories? Hahahahah no.
  • The assassin deployment mini-game is improved, making map territories more meaningful. I complained about that in Brotherhood, and it’s fixed now. Okay.
  • Too many fiddly bits with the bombs. Finding treasure, especially early in the game, is less about, “Sweet! A much needed infusion of cash,” and more about, “x2 impact shell IMPACT SHELL FULL.”
  • It’s one thing to have a unique control mechanism that is slightly quirky and unpredictable for your first game in the series. By the time you get to the fourth installment, you should really prevent the button for “use the hookblade to swing up a building really fast” resulting in “wall jump backwards from the tallest building in the game and go flying into the void”.
  • The god damn bug where parachutes randomly disappear is still fucking present. You buy fifteen parachutes, do some missions, and when you come back, try and jump off a building before noticing your parachute counter is at zero.
  • It's worth your time to read what Corvus had to say about the game as well