Making Game “Feel”

22 October 2013

Game “feel” is hard to explain. It is, literally, something you have to feel for yourself: the tactility of a feedback loop that just works. And yet it’s not magic; it’s made, by a person, or by a team, and refined. There’s a good book on the topic. And no developer hits game feel right the first time, every time; it takes work.

I really liked this interview with Jan Willem Nijman from Vlambeer over on Rock Paper Shotgun. Graham Smith pins him down a bit and asks him to talk about why Nuclear Throne feels so good. Vlambeer always have great feel to their games – just think about Super Crate Box! – and it’s something they’ve become practiced at.

Nijman explains, and Smith presses him more and more for specifics. Which is great journalism, as Marsh Davies points out: if you want to talk about the “magical” responses of a technical system, why not interrogate those technicalities? Why not try to understand the medium in its own terms?

In the end, Nijman breaks down the various routines – primarily related to visuals and rendering – that happen when the player fires a single pistol bullet:

When you fire the pistol in Nuclear Throne, first of all the Pistol sound effect plays. Then a little shell is ejected at relatively low speed (2-4 pixels per frame, at 30fps and a 320×240 resolution) in the direction where you’re aiming + 100-150 degrees offset. The bullet flies out at 16 pixels per frame, with a 0-4 degree offset to either direction.

We then kick the camera back 6 pixels from where you are aiming, and “add 4 to the screenshake”. The screenshake degenerates quickly, the total being the amount of pixels the screen can shake up, down, left or right.

Weapon kick is then set to 2, which makes the gun sprite move back just a little bit after which it super quickly slides back into place. A really cool thing we do with that is when a shotgun reloads, (which is when the shell pops out) we add some reverse weapon kick. This makes it look as if the character is reloading manually.

The bullet is circular the first frame, after that it’s more of a bullet shape. This is a simple way to pretend we have muzzle flashes.

So now we have this projectile flying. It could either hit a wall, a prop or an enemy. The props are there to add some permanence to the battles. We’d rather have a loose bullet flying and hitting a cactus (to show you that there has been a battle there) than for it to hit a wall. Filling the levels with cacti might be weird though.

If the bullet hits something it creates a bullet hit effect and plays a nice impact sound.

Hitting an enemy also creates that hit effect, plays that enemies own specific impact sounds (which is a mix of a material – meat, plant, rock or metal – getting hit and that characters own hit sound), adds some motion to the enemy in the bullet’s direction (3 pixels per frame) and triggers their ‘get hit’ animation. The get hit animation always starts with a frame white, then two frames of the character looking hit with big eyes. The game also freezes for about 10-20 milliseconds whenever you hit something.

You just have to watch Nuclear Throne in action to see how meaty it is, how chunky it feels, and how clear the link between action and outcome is. The reason for that isn’t magic; it’s all the decision-making – both human and code – outlined above.

I’d argue that it’s neither science or art – it’s something more profound, that combines the two. It’s craft: the desire for a particular, sensual outcome as an artist; the technical capability to implement it; but above all, the craft of adjusting and readjusting, taking time, taking care, understanding that every possible detail is a thing under your control, and then just doing the work until it’s right.

Ugly Games are Finished Games

25 March 2009

Matthew Wasteland’s writing is always worth a read, and I really enjoyed The Madeleine in Eight Bits recently. One quotation from the comments thread, though, got me thinking:

That was an interesting article. I was playing the indie game “Don’t Look Back” today and although I enjoyed it couldn’t help but wonder if it really needed to be so blocky. If it couldn’t have expressed it’s themes without the old school affectations.

This coincided with reading Leigh Alexander’s Video Game Hipsters, considering the convergence of “indie” and “lofi” viewed through a lens of cultural knowing.

And this all got me thinking about the lo-fi aesthetic, and “programmer graphics”, and “ugly” games.

Because, to respond to the commenter on Magical Wasteland, I’m not sure how “old school” its affectations are. Yes, it has a retro look-and-feel, and a simple mechanic (not to mention an old-school difficulty curve). But there’s something about it that’s incredibly next-gen to me: it was made by one programmer.

Now, of course, once upon a time, all games were made by one programmer; there’s nothing new about bedroom pgoramming. But what’s truly modern is the distribution: that one game, made by one programmer, already has a huge potential audience; it plays on any browser, and can be played anywhere in the world, at any time.

“Next-gen”, for me, exists at two ends of a spectrum. At one end of the scale, it is 1080p at 60fps, complex shaders and normal mapping, realistic cities, licensed soundtracks, multi-million dollar marketing budgets.

And at the other end, next-gen is empowerment. Making games is easier than ever before. And not just the programming part – the “making games on your own computer” part of the equation. I mean making games that other people can play. Flash is a wonderful tool, readily available (because let’s face it, how many Flash developers have – or at least, start out with – a legal copy of Flash CS4?), powerful, and it’ll work a) on anything and b) anywhere. The barrier to entry is lowered by better tools, higher level languages, and more powerful clients that mean you don’t have to optimise so much; but the real magic is that Kongregate and similar portals have lowered the barrier to distribution.

I think that the reason it appears blocky and crude is so that it could be in the world.

Matt‘s T-shirt stands as a point of reference: “Get excited and make things“. And: make things that are in the world. Applications I can use, t-shirts I can wear, games I can play. If you’re no good at graphics, maybe a pixellated look is all you’ve got time for – but is that enough to make your point? Because if it is, get that game into the world, watch the feedback, make another. Don’t bog down the ideas with asset workflows.

Right now, the predominant aesthetic in indie isn’t just a memory-saving exercise, or a nostalgic tip of the hat to the games we learned from. Yes, it is definitely both of those things, but to my mind, it’s more important that it’s a way of lowering the barrier of getting ideas into the world. Because until it’s a game I can play, it’s nothing.

The most significant change is not the better tools, it’s the better distribution. Compare XNA to the Net Yaroze. The idea of a home console you – as a consumer at home with appropriate skills – could actually make “real” games on was remarkable, at least to me. But what about a console where not you can not only make “real” games, but also sell them, and distribute them to every living room in the world? That’s what XNA Community Games is offering.

That, right there, is your “next-gen”. That’s a service crying out for games to be built for it, so they can be played by anyone. And if that means we take a hit on the art, then so be it. Ugly games may not be great sellers, or to everyone’s tastes, but they are a great way to get more games into the world. And who knows: some of those games might not be pixellated, 8-bit throwbacks. The more you do something, the better you get at it; a year of low-fidelity, two-week games, might make that blockbuster a year later. Look at how Blurst prototype. Look at Gregory Weir’s game-a-month. Even if the games they’re making are not always great shakes, the experience they’re gaining by practicing their craft in such a condensed, rigorous, and demanding manner is far better than a year spent making brick textures for a game that will never, ever, be fun.

The way games get better is if there are more of them, and I’ll do anything to ensure we get more games in the world, that programmers, designers, and artists can make more games, not fewer. If that means resorting to “old-school affectations”, or “programmer graphics”, or any other synonym for ugly: so be it. Yes, the “retro” aesthetic is, I’m sure, as much a trend and aesthetic decision as it is a conscious choice – but it’s not just videogame hipsterism; it’s a pragmatic choice made by those not just interested in making things, but making real things.

More games in the world. And, over time, one would hope: more good games; more important games; more significant games; more remarkable games. Not all of them will ugly, but they’ll be better for the more games that have gone before them. And so, to Terry Cavanagh, and all those like him, I say: keep going.

You keep going, and I’ll keep playing, whatever your games look like.