Nuclear Throne is an "action roguelike-like": a top-down shooter with permadeath, set in a post-apocalyptic wasteland and starring a cast of mutants who need to hoover up radiation to gain in power. It's fast, frantic, and made by Vlambeer, the two-man indie development studio behind similarly compulsive shooters Super Crate Box and LUFTRAUSER.
Nuclear Throne (formerly Wasteland Kings) is currently available in Steam Early Access, and like those other games, it already feels great. "Feel" is a poisonous word in games criticism though, and I was unsatisfied with the normal language used to describe games like this: "meaty", "weighty" and "crunchy" only gets us so far.
I wrote to Vlambeer game designer Jan Willem Nijman about how you make pixels bullets feel powerful, and about finding a better language to talk about videogames. He was gracious enough to do the hard work of explaining why Nuclear Throne feels great for me.
RPS: [I put all of the above to Nijman in an email]
Nijman: "Feel" is a super vague term to game designers as well, and while you guys have things such as "crunchy" and "meaty", we have things such as "add more bass to the sound effect" and "screen shake". I guess "feel" is something super abstract we both have to work with in a non-abstract way.
The problem with (and cool thing about) games is that we need player input before our systems become of any value. Game enters player > player puts input into game > game reacts > reactions enter player > player thinks about reactions. That last bit is where it becomes valuable. What we do at Vlambeer is spend a lot of time working on the "reactions enter player" part.
RPS: What are the most important factors in making a gun feel good?
Nijman: There's a couple of things, but the most important factor would probably be sound. On Nuclear Throne we're working with a great audio designer called Joonas Turner, who manages to produce super realistic but over the top sound effects that really suit this game. A good, punchy, bassy gunshot does wonders.
Other than that we always make sure our projectiles move at relatively high speed, look huge (the bullets in most of our games are about the same size as the players), and communicate clearly (with some animated effects) when hitting something. There's also screenshake. Just moving the screen around a bit randomly, and offsetting the camera away from where you're aiming can be so powerful.
RPS: When you're tweaking things like fire rates, audio, bullet travel time, etc., is it a purely intuitive and iterative process?
Nijman: We firmly believe that a game is only a game when you're playing it. No pile of code/design document/list of values can really express anything as well as playing a game. That's why we spend half our development time shooting monsters. Basically this is a highly iterative, partly intuitive business. That intuition comes from having spent years making games about shooting and running around. Obviously there is some logic involved. We like designing extremely powerful weapons, and then giving them a distinct downside. Super Crate Box is sort of an exercise in this, the best example being the disc gun.
The automatic shotgun in Nuclear Throne shoots at an insane rate of fire, but fires one less pellet than the normal shotgun. Tiny differences like that are important to making sure all guns have at least some value, and changing them around is fun!
RPS: Other than those fire rates and travel time, what other properties or settings does a weapon have? Could you be specific, and maybe provide those numbers for the basic pistol in Nuclear Throne and how they impact the way it feels? Apologies if this sounds crazy.
Nijman: Alright, let's try this.
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 320x240 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.
This is just the basic shooting. So much more systems come in to play here. Enemies dying send out flying corpses that can damage other enemies, radiation flies out at just the right satisfying speed, etc. We could keep going on and on. It's that attention to details and the relationships of all those systems that matter. You might miss an enemy and hit a radiation canister, forcing you to run into danger to grab all that exp before it expires, etc. It's the mix of things that matters, not the things themselves. I guess what our games have is our view on what makes those values feel and play good. That's the Vlambeer "feel".
RPS: What lessons have you learnt from previous games like Super Crate Box that you're carrying forward into Nuclear Throne?
Nijman: Everything! Super Crate Box was a super minimalist game, and Nuclear Throne isn't, but it was great practice in action game design. It also got us comfortable working with people like Paul Veer, who animated for Super Crate Box and is now doing the art for Nuclear Throne. We just got better at making games in general.
One thing we've been working on hard lately is making the process of making games less painful and more fun for the entire team. We believe that fun we're having while making this can also be "felt" (that word again, argh) when you play Nuclear Throne.
RPS: Do things like character movement speed, or enemy movement speed, change the way weapons feel to use? Do enemy reaction animations to being shot change the way a weapon feels?
Nijman: Simple answer: yes. Cactus once gave a great talk at the Independent Games Summit at GDC, where he demonstrated how doubling both the amount of enemies and your rate of fire makes games better. Things like these are funny, because system-wise you're almost dealing with the same stuff. Somehow there's a big difference between a gun that shoots 2 bullets that deal 10 damage and a gun that shoots 20 bullets that deal 1 damage.
RPS: How important is animation and visuals versus audio in general?
Nijman: Both audio and animation can really be used to fill in details. One of our characters, Fish, is playing guitar in the main menu, while Jukio's theme song is playing. The animation and song aren't tuned to each other, but it still feels like Fish is playing.
Whenever we see still images of Paul Veer's art, we think "that's cool!", but when he starts animating stuff, it really comes alive. Things become real. He manages to cram so much personality into things. I'll use this sentence to say how much we love working with these people (Paul Veer, Jukio Kallio, Joonas Turner, Justin Chan). No one gets upset by the amount of detail we want to cram in, everybody seems to only want to do more of that. It's great.
RPS: Tangentially, what prompted the decision to launch on Steam Early Access for the game? Is that to garner player feedback, and do you worry about how first impressions will change people's perception of the game?
Nijman: We hate working on games and not being able to talk about them! Early Access is awesome, because a large amount of people are out there already playing our game. It just allows us to have our thoughts out in the open. We also simply think experimenting with things like this is super fun.
The version that's on Early Access right now is a game we're proud of. We don't worry about people's perception of it, because we think it's a good game. It'll get better, and bigger, but we firmly believe what we have there is already something that can stand by itself.
Nuclear Throne is £10 / $13 in Steam Early Access and it feels meaty weighty crunchy great.