Last Tuesday, we gently announced Deadnaut to the world. Well, to friends on Facebook and Twitter followers. It's the first time myself and developer-in-crime David Kidd had really talked or shown the game to anyone beyond a select few. We weren't immediately chasing media attention; more we wanted to show people what two game developers living hermit-like existences can do in the space of six months.
It hasn't been as bad as that, certainly, but when you start making a game you're passionate about, it will eventually encompass almost every thought you have, until you're desperately trying to shut your brain off at two in the morning because you need sleep so you can wake up later the same day and... make a video game.
I've mentioned Zafehouse: Diaries more than a few times during my time as weekend editor of Kotaku Australia. Zafehouse is a game I developed with David over nine months, from December 2011 to September 2012. It wasn't until we hit Steam in September last year — and the success that followed — that we could justify embarking once again on the adventure of crafting a new game... and even then it took time to feel comfortable with that decision.
Deadnaut is that new game. (Surprise!)
Deadnaut borrows a few elements from Zafehouse — mainly the concept of relationships between characters and the focus on psychological horror over cheap scares. The idea behind the game is the humanity has reached the stars, but took its sweet time getting there.
Everyone is dead. The universe is empty, save for us. It's a mystery as to what happened, but sure as heck, us Earthlings are going to find out... even if it ends in a gory death fighting creatures from an alternate dimension. Or genetic experiments gone topsy-turvy. Perhaps supernatural beings are to blame, or Lovecraftian unmentionables determined to suck the life from every soul in the galaxy.
And that's the crux of Deadnaut — each mystery is procedurally-generated from a series of hand-made, yet variable templates, the result being a crazy amount variety in who you fight, what you find and where you do it. So in two separate campaigns you could be sealing an accidental rift between realities, but the monsters you tackle could be flaming demons in the first and mutant zombie rats with 13 eyes in the second.
At the current stage of development, a campaign consists of four missions, each one requiring your deadnauts to board and investigate a derelict space craft. As you travel from room to room, you'll find crew logs (again, dynamically-generated), advanced technology and clues as to what happened to that particular species. You can then trade the knowledge you find with Earth to get better weapons and equipment.
Because the ships are so old, their structural integrity is compromised, so you can't just shoot everything that moves. Deadnaut involves careful, tactical gameplay where hacking a console to kill power to life support can be as effective a weapon as a grenade launcher (and safer).
Under the Hood
Deadnaut uses an complex database to generate not only the player's team, skills and individual back-stories (if you decide not to import pictures of friends and create your own team of miscreants), but the alien species and enemies. There's an important distinction between those last two. The aliens are responsible for their own demise (fools!), while the enemies are the result of whatever they were dabbling with (or unintentionally discovered).
Along with the dangerous horrors lurking on-board, you'll have to deal with the ship's built-in security in the form of virtual "Watchers" and the more physical "Sentinels". Watchers roam network tracks, represented by white lines suspended over rooms, searching for unwanted computer activity. If a deadnaut tries to hack the system to open a door, alter power distribution or take control of a Sentinel, it'll pique the interest of one or more Watchers.
In essence, the AI is doing what it was designed to do — protect the ship from threats — despite the fact the crew is long-dead.
Watchers can't technically hurt your deadnauts, but they will interfere with the signals — audio, video and data — being transmitted between them and you, the player. The amount of interference is shown visually, as screens become distorted and filled with noise. As a stop-gap, the player can use a booster dial to divert more power to one signal, re-establish contact and attempt to rectify the situation.
If extreme circumstances, your view could end up looking like this.
The deadnauts also have a "stability" rating, which determines how well they handle certain situations. One might not like confined spaces, another could have a thing with dead bodies. If you continually toss a deadnaut into conditions they're psychologically unfit for, they'll start to freak out, causing them to work less effectively or even disobey orders.
There's more to Deadnaut than what I've written here, but I'll leave that for another time. For now, this covers the fundamentals.
Moving to Unity
Technical jargon warning! With the exception of SlimDX to access DirectX features such as Direct3D and XAudio 2, Zafehouse was coded entirely from scratch. The core "engine" was written in Visual Basic .NET, while the majority of content was written in C#. For Deadnaut, we wanted a game we could release on multiple platforms and considering out experience with .NET and C#, Unity was the natural choice. We also wanted to spend time building a game, not the underlying technology.
I'd toyed around with Unity before, but the straight move from 2D to 3D, from basic image manipulation to vertex and fragment shaders, was a — albeit fun and educational — trial by fire. I remember six months ago staring at shader code like this and making regular deposits in my underdaks:
I also had to take a crash course in 3D maths — vectors, quaternions and the like. The last maths test I ever did in high school I scored a measly two percent. No, that's not a typo. Fortunately, computers do most of the heavily lifting these days, so if you know what you want to accomplish, you can usually achieve it with enough persistence.
Now I'm mostly comfortable with writing shaders from scratch, figuring out the direction of one point in space to another and related 3D tasks. I'll never be amazing at this sort of thing, but that's OK — part of indie development is being the proverbial jack of all trades. Being a generalist isn't just preferred, it's mandatory.
The Understated Announcement
As expected, there wasn't a huge reaction to the announcement, though we did received a few interesting comments regarding the fate of Zafehouse. The tweet below sums it up best:
@ScrewflyStudios So is Zafehouse Diaries dead then? Haven't been updated since October I think?
— Matthew Vanisko (@MatthewVanisko) July 29, 2014
Zafehouse was definitely rough around the edges when it was released in September 2012 and David and I worked almost non-stop over the next year to bang it into shape. As of the last patch, Zafehouse had three game modes (up from one in the first version), an item editor, extra dilemmas, relationship events and locations, along with improved performance, visuals and other tweaks. Sadly, with the popularity of Early Access, there's the expectation that no indie game is truly "done" and that purchasing a game on Steam means you'll receive free content updates for eternity.
To be fair, this is an impression we unintentionally cultivated by releasing patches for the Zafehouse every three to four weeks. It wasn't until we saw people referring to the game as "Early Access" or "in beta" — words we have never associated with Zafehouse in any capacity — that we realised our mandate of constant updates had given people a false perception of its state.
In the perfect world, we'd continue adding content to Zafehouse forever, but with just two people, we have to pick our battles. With almost two years of our lives dedicated to the game, we made the decision to put our energies into Deadnaut and make it the best game possible.