Page 1 of 6

It's all in your head, Part 20

Posted: Tue Aug 03, 2010 12:32 pm
by Chris
Yikes, part 20! This is starting to get serious now. I’d actually been meaning to keep writing at a target rate of one Subversion blog per month, because I wanted to keep up the momentum and I think this long running blog series is a fascinating experiment in itself. But it’s a strange thing - it’s harder now than it was when I started this process. At the beginning of the Subversion project back in 2006, when I was spending most of my days on Darwinia for Xbox, Subversion was all about technology, and often involved highly experimental game development. I spent months just tinkering with procedural city generators, and the results were often staggeringly cool to look at, and therefore to show off. It made for great blog material, and was very satisfying to write about. The game itself was very thin on the ground, just ideas slowly forming into plans. Now things are different - Subversion is actually a game now. Whereas previously I might have spent a couple of weeks writing a river generation algorithm, I now spend a couple of weeks writing AI code to make guards surrender when they fear for their lives. It seems somehow much more mundane - something you can see in other games, and it’s much harder to write interesting blog material about it.

Am I telling you to stop reading this blog? Certainly not, the truth is that tons of really interesting and exciting stuff is going into the game now on a regular basis - it’s just different to the massive procedural city stuff of a couple of years ago. Until we bridge the gap between the mid-game logistics-em-up in the procedural cities, and the core game in the sites themselves, there will always be a gap.

Since the last Subversion blog (May 4th) I’ve adopted a new working method based on Sprints - fixed short time intervals of 1 or 2 weeks, during which time I work on a single area of Subversion at the exclusion of all others. It’s a guided, formalised way to rapidly prototype and produce working systems, perfect for a project like Subversion where there are tons of areas that all need work before even basic gameplay can happen. The rules of a Sprint are set down in advance, and bring the order to this chaos:
- A sprint must occur for a fixed real time interval, 1 or 2 weeks.
- The aims of the sprint must be set beforehand. Deviation from the original aims can happen, but should be minimised as much as possible.
- During a sprint no other part of the game may be worked on, unless directly related to the sprint
- Once a sprint has started, it has to be finished
- Once the time is up, the next Sprint topic is chosen and the cycle continues.
- If a Monday arrives without a clear plan for a Sprint that week, you instead use the week to plan your next few sprints, starting next week. You aren’t allowed to invent sprints in realtime.

You tend to have the next 2 or 3 sprints already planned out at any one time. As you work you come up with new ideas for Sprints and add them to the queue. It’s a very satisfying way to work, because you see rapid progress in all kinds of different areas, and you have none of the stress of worrying about what you should be working on next. Working on a single Sprint gives you ideas for 2 or 3 more that could directly follow on. You also get short term goals to aim for - when Sprints are planned you are careful to design jobs that can realistically be completed in two weeks, and it always ends in a little bit of a rush on the last couple of days to finish everything you started. You know that if you don’t finish the Sprint on this last day, by next Monday you’ll be onto something else. That’s quite a motivator, especially on a project where the final end date may be a long way away. In my experience it’s actually possible to plan two weeks of work very accurately - much more so than longer time frames lasting several months, so you actually end up feeling like things are more organised and more on track than normal. Also, the two week limit stops you from going off on a crazy long tangent - you are forced to pick sensible Sprint targets, and make decisions that result in finishing during the time limit, rather than endlessly polishing and re-engineering non-critical stuff (as has happened to me several times before, I have to say).

Here’s some of the sprints I’ve worked on since the last blog. These descriptions are taken directly from the Sprint plans I used:

Human Rendering (1 week): People are rendered in the world as stylised outlines. Their equipment is rendered in place on their outlines, allowing the player to see what equipment and weapons guards/staff on site have equipped. Injuries are shown in position on these outlines. The outlines change shape to reflect core changes in state - eg Surrendered, Unconcious, Terrified.
Future upgrades : Character animation.

Image

Instincts (2 weeks): Low level behaviors that apply to all human beings to varying degrees. Eg Curiosity, Suspicion, Aggression, Fear, Intimidation. Different entity types are more/less susceptible to different instincts. Players can mess with instincts of NPCs for their own ends. Highly intimidated/co-erced/manipulated NPCs can be controlled by the player. Player’s agents also susceptible to instincts - they are not robots. Display of instincts through colours, and through text/speech bubbles to signify intent.

AI Module (2 weeks): Foundation for a Behavior Tree based AI system that will drive all NPCs higher level behaviors. Includes a tool for visual creation and debugging of Behavior Trees.
This sprint was completed in two weeks, but has zero direct bearing on the game at the moment. It provides an AI framework, but no actual content - ie no NPCs are using this system yet. A follow up sprint lasting two weeks will create behaviors for NPCs using this system. I’m planning to write a more detailed blog about this AI module once i’ve completed that followup sprint, because it’s going to be awesome.

Image

Theft (1 weeks) : Some items have value, some items are extremely valuable and are rendered differently (gold, glowing). Your team can collect valulable items. Total plundered is shown visually.

Image

Complex Security Systems (2 weeks): Server rooms contain racks of hardware wired together appropriately. Camera control systems drive CCTVs around the building, recording results onto hard disks. Routers and switches connect all devices to the Local Area Network, and telephone exchanges (outside the building) wire the phones and LAN into the national phone network. Security systems power sensor grids, laser trip wires etc, and wire directly into alarms and Police auto-diallers, which are also plugged into the phone system. Keycard scanners and Keypad locks connect to central computers with access lists and logs of use. Everything can be tinkered with, rewired, hacked and cracked.

Image

Multi-track Music (2 weeks): Upgrade the SystemIV sound system to support multi-track music. Stereo tracks of differing but compatible lengths can be mixed simultaneously during the game, with the volumes, ADSR envelopes and DSP filters all adjustable in realtime depending on the game situation. A direct continuation and extension of DEFCONs ability to crossfade multiple music tracks and to alter the playback frequency based on your surviving population count, to produce an endless stream of varied music linked to the world state.

Image

This is the most recent two week sprint. We’ve got a new Audio guy - PJ Belcher - doing our music and sound effects for us right now, as sadly our previous audio hero Alistair is unavailable. The results so far are excellent - Each emotional element of the music is separated out and played on its own audio channel, and we can adjust the volumes based on your game situation. So if a guard becomes suspicious of you, we fade up a musical element to represent that. If you get into a fight, we fade up some heavy scary drums and guitar. When your guys are hiding deep inside a high security area, we bring in some tense cellos and percussion to nail it home. We’re mixing about 10 different tracks together to form the game music right now, and it’s sounding really great.

This is all built on the Audio system originally written by myself and Andy Bainbridge for Darwinia, many many years ago. It was originally designed to handle the hundreds of audio events and ambiences that make up the sound in Darwinia. It was then extended to support DEFCON’s haunting cross-fading and frequency dropping music tracks, and then used again in Multiwinia and Darwinia+ on the Xbox. In fact, an earlier version of this audio engine (including the audio tool you see me using in the video below) can be seen in our Darwinia and Multiwinia source code, for those that are interesting in seeing how it works internally.

Here’s a video of the new multi-track music tool in action, showing me mixing the different tracks together in-game. The music is the current early draft of PJs first music track for Subversion, designed to evoke a strong feeling of tension in the player.

Image
(Requires Xvid codec, headphones and high volume)

Pretty cool stuff! I’ve always loved audio, it’s probably one of my favourite areas of game development, and I got a lot of satisfaction out of working the audio into Darwinia and DEFCON. Without the audio those games would never have had the atmosphere they have. I used to joke to Alistair that his sound effects made our animations look better - because that’s how it felt to me. Something like the Refinery building in the Mine level in Darwinia has a really simple rotating cog visual effect, but a massive reverberating metallic clang that makes the building sound huge and epic, and genuinely “sells” the animation to the eye. I’m hoping we can continue punching above our weight with the game audio on this project as well as the previous ones - I’ll probably write more on this as we progress.

So the other great thing about the Sprint working method is I know what sprints are (potentially) coming up in the future. I look at this list and think I have the best job in the world. If you are anything like me, or you are at all interested in Subversion, you’ll find this list as exciting as I do :)

NPC AI routines (follow on from AI Module sprint)
Climbing and Acrobatics
Computer Hacking
Character animation (follow on from Human Rendering)
World object interaction
Primary User Interface
Inventory
Equipping gear
Characterisation - differentiating Agents and their Skills/Abilities/Equipment
City level integration : Merging the core game missions with the mid-level city

The very next two week sprint? A much needed holiday in California with the wife. Essential to the project, I think you’ll agree.

In the mean time, you can check out a two-page article in Edge Magazine this month, all about Subversion.

Posted: Tue Aug 03, 2010 12:50 pm
by Xocrates
Man! I have the impression that if I ever considered creating a game as complex as this I would give up on the spot :P

This is starting to get truly interesting.

Posted: Tue Aug 03, 2010 12:59 pm
by shinygerbil
Woop Woop! Saw the spread in EDGE Magazine yesterday and guessed a blog post was round the corner :D

This game is truly hotting up. Keep up the good work, and enjoy the holiday :)

Posted: Tue Aug 03, 2010 1:24 pm
by Serialtinus
Getting to tinker with all those complex systems sounds absolutely great; both inside and outside of the game. Keep it up lads, very inspiring stuff!

Posted: Tue Aug 03, 2010 2:01 pm
by vanarbulax
Nice randomly chosen names for the infiltrators ;)

The music sounds fantastic, my only concern was it might be a bit too busy but I'm guessing that's because it was a demo and will be subtler in game.

Subversion looks absolutely awesome, every one of those sprint points are enough to get excited about on their own.

Posted: Tue Aug 03, 2010 2:12 pm
by TheRealWazzar
Nice to know it's coming along well. And I look forward to seeing this project continue to come together. Just remember to hide something awesome from us until we all get to play it :)

Now I should probably start saving for it :P

Posted: Tue Aug 03, 2010 2:13 pm
by Ace Rimmer
I've been interested in Subversion from the start, but now I'm engaged. :D

Have fun in California.

Hot damn!

Posted: Tue Aug 03, 2010 2:30 pm
by HarveyNick
You ARE releasing this for Mac as well as Windows, right?

Posted: Tue Aug 03, 2010 3:26 pm
by MaW
Brilliant stuff. The music sounds like it's going in an excellent direction, and all the different elements mix together beautifully. I can see it could get extremely busy and frantic if everything goes up the spout! I can imagine playing the game and realising through the music that something in the world has changed, which is just a wonderful thought.

Really excited to know that there's another fantastic-looking (and fantastic-sounding) Introversion game on the way.

Posted: Tue Aug 03, 2010 3:57 pm
by Xeon06
Holy crap, I'm so excited about this game, it's unbelievable.

Is that security stuff and cracking stuff all randomly generated to give infinite challenges? If so, this is incredibly awesome.

Posted: Tue Aug 03, 2010 4:22 pm
by Jordy...
thanks.

Posted: Tue Aug 03, 2010 4:38 pm
by Ace Rimmer
Just watched the video and all I can say is Awesome (loved the guitar!).

Posted: Tue Aug 03, 2010 5:44 pm
by HarveyNick
Addendum to previous post: Because it looks awesome and I want to play it. :)

Posted: Tue Aug 03, 2010 8:55 pm
by martin
This video can't download fast enough! It's looking very exciting, keep the blog posts coming (1 a month would be great :wink: )

Posted: Tue Aug 03, 2010 10:10 pm
by Romanu
Wow. Interesting that what grabbed me the most was both the music and the system wiring in the screenshots. Curious however that the screenshot with the components wired together is indentical to the server room at my last job O.O