One of the most important (if least mentioned) aspects of game design is how smoothly the game operates. Your game can have snazzy features and a great concept, but for it to be really fun to play, it can't handle like a constipated tank. Unfortunately, avoiding this issue isn't exactly easy. Smoothness of a user interface is something that's difficult to quantify, but I'm going to give it my best shot.
First off, let's take a quick look at a game that gets it right. A couple weeks ago I raved briefly about the delightfully smooth experience that is Frogatto. What is it, exactly, that makes Frogatto so smooth? There are a couple of things. First, the engine runs well on typical modern hardware, so it has an excellent framerate. Nothing feels smooth when you're chugging along at five frames per second, and Frogatto avoids this issue entirely. More than that, though, it's Frogatto's design that makes it smooth. For instance, if you've downloaded the game already, try walking around, and watch what happens when Frogatto changes directions. Seriously, go try it right now. I promise this blog entry will be here when you get back.
Now, did you notice the amount of time it takes for Frogatto to turn around? It's not abslutely instantaneous, but at the same time, it's very responsive. If it took him too long to turn around, the game would be annoying to play -- that much is obvious. But here's the kicker. If he turned around instantaneously, the game would feel klunky. That small amount of time it takes for him to decelerate and begin moving the other direction adds a level of immersion to the game that wouldn't otherwise be there, because Frogatto acts physically the way you might expect him to in the real world -- a way your brain is already hard-wired to understand. As a consequence, Frogatto's controls feel very "real" and natural.
Some of you may be thinking, well, my game is a turn-based strategy game, so none of this applies to me. If that is, in fact, what you are thinking, then you are incorrect. That touch of physical realism that makes Frogatto fun to play can also be applied to your user interface. Consider the lowly drop-down menu, for instance. The easiest way to implement a drop-down menu is just to have it appear instantly when the user clicks on a certain item. Unfortunately, this is also the least pleasing to the eye. If you want the menu to feel natural, you need some sort of transition, perhaps sliding it out. But that's not quite enough! Not only does the menu have to slide out, it has to slide out in a believable way. This means that it can't just slide out at a constant velocity, but rather, it should start slowly, get faster, then slow down again, and finally stop, and it should do all of this quickly enough that the user doesn't feel like they're waiting for it.
Now, perhaps this is all just glitz and flash -- and you can certainly make a pretty amazing game while ignoring these things altogether -- just look at Dwarf Fortress, for instance. People don't spend countless hours playing it for the smooth and intuitive gameplay. Nevertheless, if you want your game to have that finished feel, take some time to work on making the controls and UI as smooth as you possibly can. Keep your transitions fast but not instantaneous, and you'll do well.
Bart
P.S. We're still looking for 4 more new subscribers this month. If you can spare 3 bucks a month and want to help us buy new art for the community, hit the "Donate or Subscrube" button on the right. :)
Comments
Just a little smoothness adds a magnitude of credibility to a game. It's usually the difference between uninteresting attempt and indie hit.
Additionally good sounds and music are often underrated in indi game design, but IMHO are probably almost the most important part of a game.
Exactly! That's what I felt when writing the movement functions for my tile based engine. I saw a few other engines, but moving the character would happen one tile at a time, which made it feel very jumpy.
I remembered the smooth walking feel of the "Pokémon" games from back when I was young and decided to implement something like that.