Great work Gabe!
Incredible job, love the breakdown and can't wait to see what you make next!
The developer of Dead Static Drive Michael Blackney talked about the way he is able to build his huge driving exploration game on his own.
The whole development of Dead Static Drive, actually started from another game, called Creature. Creature actually had two phases – first I was making it as a 3D free-roaming game in a game engine I was making myself from scratch. It was a huge undertaking and I got as far as an editor with game launching, support for massive terrains (64x64Km), time of day system, and physics integration. But the amount of work left before I could even start working on the game was staggering. Thankfully UE4 came out and I decided to try switching over to it. (I’ve attached a few images of the engine I was working on! Like with Dead Static Drive, I was working on it entirely alone – both started just as a hobby but picked up steam pretty quickly!)
When I started porting Creature, I decided to limit the game to a smaller space, so I changed it to Kreature, converted some of the game from 3D to 2D, and I gave it a Russian Cosmonaut theme. It was space exploration and had a lot of the same creatures (many Cthulhuesque) and themes (lots of existential horror and detachment from the real world), but after working on it for only about two months I felt like it wasn’t brave enough. Browsing the net I saw an ad that was for I think a SatNav or traction for cars – I don’t remember exactly what – but it was a video of a car driving, and it was overhead. A car driving along an empty road, traveling through a forest. That’s when I remembered an old prototype I made in UDK in 2010 that was an isometric horror game. I was working in a studio as a technical artist at the time and I’d made the demo mostly to sharpen my game design and feature coding skills, since I was working for months straight on shader-based UI, and hair, skin and uniform shaders for sports games. I thought – taking that isometric horror game and adding driving, that’s what I needed to do.
The Mechanics of Dead Static Drive
It’s kind of hard to say if there’s a core loop yet – the game has a lot of mechanics so far, but I don’t want to talk too much about them until I have one or two really important features added (specifically sleeping, which is going to be a big deal in the game). I’m trying to make Dead Static Drive more on the adventure side of action-adventure – and in part a relaxing driving experience. I want players to enjoy driving and to enjoy the road trip. There’ll be lots of scenery to explore and a lot of variation in the kinds of environments you drive through. This driving will be punctuated with moments of real tension, where you won’t know what’s going to happen and you won’t feel safe.
A lot of my target right now is making the player able to play without needing to get into combat. Which is funny because I’ve spent months getting combat in for both the player and a lot of enemy types – but I want the game to be both playable and fun (and fun for casual gamers) without having to spend hours mastering combat. Exploration needs to be rewarded; being observant, investigating NPCs and the environment, and engaging with the other mechanics – this is what I’m currently focused on. Sleep, fatigue, gas and other resources all play a part, but there’s also a big dash of survival in the game, including some crafting of talismans and using protective items specific to certain types of enemies.
I really love the style of comics and how they can give this real impression of a world without great detail put into any single element. It’s in a big part because of the necessity – you don’t have a team of artists for each comic, who can spend six months on a single page. You have maybe three artists: one doing the pencils, one doing the inking and a third doing the coloring.
Well, I thought about this when I started on this project. I thought, “It can’t blow up to too many artists because even if I get some funding, it will probably be enough for maybe two or three people on the project.” So I looked around at other art forms — poster art, comics, advertising — and one thing that kept standing out is that these artforms kept choosing a simple style that focuses on signal over noise.
I decided that flat, blocked-in colors was the way to go, but because I had experience in technical art, I also knew I’d have an edge over some other indie games. I could do the maths I needed to make the game look different. Initially I added flat colour but with shadows, and immediately it looked like something I hadn’t seen before. Then I added tone mapping, so shadows were coloured, and dark areas lost definition. This made nighttime far scarier, and shadowed areas in particular. Since then it’s been a cascade of incremental additions and improvements to the style, and I think I’m basically stylistically locked right now.
I don’t think of myself as an animator at all. I’m really close friends with a lovely guy I met back at IR Gurus who has since moved on to film, and now works as an animator at a big film studio in New Zealand. He has been a constant source of inspiration, and seeing him work on animations has driven me to learn the basics.
I’m trained in Max and Maya, but I’m on a tight budget so I create my animations in Blender. Whenever I’m about to start an animation, I always get reference and then make the animation pose-to-pose, blocking in maybe three to seven key frames – and then I put it in game with linear interpolation between these frames and just see if it feels okay.
For a lot of the environmental animations (specifically the foliage), I’m using Speedtree. It’s just a fantastic tool, and it’s extremely affordable. It lets you make trees and bushes using whatever meshes you specify, and then you can really easily animate the whole thing. It’s really powerful and flexible, and UE4 supports it natively. I can’t speak highly enough of this tool – especially for indies.
Lighting is probably the biggest way I try to tell the story of an environment. It sets up the feel of a place, and it’s so critical for a game like mine in establishing the volumes and local context of structures – what items are nearby, what is their depth into the screen? I think I’ve nearly spent about as much time coding and setting up the lighting as I have creating the 3D assets for the game!
It’s definitely a benefit to my project that I’ve chosen an isometric camera — that lets me use 100% dynamic lighting, so I don’t need to bake anything in, and it’s always entirely consistent from frame-to-frame. The newer builds of UE4 also have light caching, so it’s even faster than ever. This means I can iterate on lighting so much more quickly, but also that I naturally don’t need to feel hemmed into a set of predetermined lighting configurations. So I’ve been able to add in dynamic lighting and weather systems really easily, and I just make a new set of curves for dynamic, ambient and fog lighting setups over a single day cycle, and I’m good to go!
This is actually an ongoing issue for me. I’ve had two branches of Dead Static Drive – one with my own hand-coded vehicles, and the other uses the built-in UE4 vehicles, which are based on PhysX. Right now I’m using the PhysX vehicles as the ones I’m demoing, but there are a lot of parameters that need tweaking to get a stable result, and there are some pretty substantial issues that I will need to address myself before release. Issues like how to deal with collisions with pedestrians and other vehicles, car mass issues when impacting each other, and responding to overlaps with non-simulated objects: right now UE4 tends to fire vehicles off at high-speed after overlaps, which is hilarious once or twice, but demoralising as a dev.
This is probably the most fun part of the game design. I love world-building – I used to play a lot of roleplaying games when I was younger, and getting to set up a world and take people on a tour through it was just so invigorating. My biggest challenges are cramming in all my ideas while also ensuring that there’s sane progression of challenges, player-required-skills, and enough variation that it never becomes stale. And I need to do all this inside a game where at any point you can skip towns, or take one of many paths.
There’s an element of linearity that I’ve achieved because the initial location and initial destination of the game are always fixed. That means I’ve got three towns that I know the player must travel through first, before the world begins branching and the player can start having more of a say on what happens to them. To make sure it felt good, I actually made an ASCII prototype of the world map, so I could test which directions players more often took, and how decisions made impacted which directions they tended to go. Things like needing sleep and gas, and how much mileage their cars had all had much more of an impact on the path of least resistance than I originally planned, so I’ve been able to place more difficult challenges in just the right places!
Okay, so right now I’ve finished some of the driving and combat basics, but what I know I need to work on right now are three features: the game introduction, sleeping, and NPC interactions. I know really well from my demos at PAX Aus and recently at PAX East that I need to give players a clearer introduction to the game. I played the wonderful Ooblets demo at GDC and everything they do to introduce you to the game is just perfect – it’s a quick introduction that also lets you explore, but that gives a clear direction to the player while they’re getting their bearings. Compare that to the Dead Static Drive PAX demo, where players were placed in a vehicle and told nothing. A lot of players didn’t even realise they could get out of their car, because it was never explicitly told to them!
Right now I’m pre-alpha, so I’ll be entering alpha testing once I’ve gotten the major features at least blocked-in. I’ve been working on the game solo until now (aside from a little audio work and music by Jeremy Dower, a really amazing musician). That means it’s been pretty slow-going. I’m in talks to ramp up to three developers soon, and that will mean I’ll get things done much more quickly… but I’m probably looking at another four months before I hit alpha. I don’t want to disappoint people who are itching to try out the game, though, so the best way to play will probably always be at conferences or by running into me in person on the street!