Subversion Development Diary
It's all in your head

Chris started developing Subversion in December 2006. Originally slated as Introversion's second game and due for release shortly after Uplink, Subversion exploded into an epic and highly experimental project, and is undoubtedly our most ambitious game to date.

In fact it turned out to be a little too ambitious and in October 2011 Chris announced that he had suspended work on Subversion and something new was on the way...

Want to be notified when new updates occur? All updates go straight into our Blog, so use the RSS feed on the left of the page.


Subversion gets Suspended
October 17, 2011
 


Around June last year, we pushed ourselves as hard as we could and made a playable slice of the game, and demonstrated it publicly at the World Of Love conference in London. The demo went well, but was heavily scripted. Internally we had come to realise that somewhere along the 6 years of part-time development, we had lost our way. We couldn’t even remember what sort of game it was supposed to be anymore. We’d ended up with a game that looked and sounded brilliant, classic Introversion with its blue wireframe and sinister faceless characters. But there was a massive gaping hole where you would normally see a “core game”. We’d tried and tried to fill that hole with ambitious tech and experimental systems, but you couldn’t escape it. 

Read More

 

Part 20
August 3rd, 2010
 


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.


Read More

 

Part 19
May 4th, 2010
 


Everything takes a long time in this project, and i'm not entirely sure why. Even something simple like allowing the user to plant a bug on a cctv camera has turned out to be a massive job, with interface redesigns and heavy rethinking on how the player interacts with the world. I'm overthinking everything, always looking ahead to situations that won't become problems for months, trying to design and implement everything correctly first time. This is usually a bad idea. Iterative improvement and replacement often gets you to a better solution faster than aiming for the perfect solution first time. And even if you write a system and then totally replace it, you still learn a huge amount - writing a system wrongly is often the best way to learn how to do it right.


Read More

 

Part 18
February 21st, 2010
 


Subversion is going to be set in a modern High Tech environment, with you taking "mission control" over a team of skilled operatives in a hostile High Security building. You will be using Sabotage, Social Engineering and Grifting, custom Electrical and Mechanical devices, Distractions, Hacking, Stealth, Acrobatics, Precision demolitions, Trickery, whatever gets the job done. In the best case scenarios your enemies will never know you were even there. When things go wrong, a well prepared escape plan and well timed precision violence will get you out of a tight spot - or maybe not.


Read More

 

Part 17
May 26th, 2009
 


When your guys open the safe on the 25th floor and find this time bomb inside, and the timer is ticking down from 30 seconds, that’s how long you have before the whole thing explodes in your face. Do you cut the red wire, or the blue wire? Cutting the right wire will stop the timer and disarm the bomb, cutting the wrong wire will set it off. With the system described above, this would become a genuine choice based on the actual operation of the components used to build the bomb. A little bit of rapid research will tell you this particular type of detonator is activated by sending a 1 signal to the 2nd pin. So you cut the 2nd wire, stop the timer, and complete the mission.


Read More

 

Part 16
May 21st, 2009
 


Continuing on from Part 14, I’ve been attempting to write a generic Forces simulation system for the game world. My aim has been to handle all the basic collisions and forces that you naturally find in a game world – ie I want to stop people walking through walls, or each other, and I want people to be able to walk into Elevator cars and be lifted up when the car lifts up, that kind of thing. There is a ton of work already done in the area of real time physics, and I’ve no intention of writing a full physics simulation system – it’s not required for Subversion, and it’s the kind of job I could just vanish into for a year and emerge at the other end with some software that pretty much every other games company under the sun has already written. I believe a simpler solution is appropriate for Subversion. Nevertheless, I’d always been curious how hard it would be to bring some rigid body physics to the game world, and I’d been investigating a free 3d physics library called BulletPhysics.


Read More

 

Part 15
March 23rd, 2009
 


Would you believe i've been writing about Subversion for over two years? Over that period of time it's become difficult to find old postings and videos about Subversion, so today I decided to change that.


Read More

 

Part 14
January 22nd, 2009
 


I’ve been having a lot of fun with Subversion recently. I’m heavily into the Simulation task now, and I’ve been working on the supermarket sliding doors for a while. I started thinking ahead and decided it was time to implement some proper collision detection, so that the doors would crash into each other if pushed too hard, or would crash into their outer mountings if opened too far. Of course I then started thinking about situations such as placing a bin in-between the two sliding doors – the doors would push the bin inwards until it blocked both doors, at which point the doors would jam and then re-open. And before you know it, we’re into the deadly realm of realtime physics.


Read More

 

Part 13
January 3rd, 2009
 


I want to design a system in which I can build highly complex systems made up of lots of smaller Common Components. I took a shot at this with the Elevator Systems last year, but I was too focussed on getting the script system working well. So in the elevator system almost every component is running a custom script – the Sensors, the Doors, the Buttons, and of course the control computer. I now believe I can build almost any system for Subversion out of a few standardised components – specifically Sensors, Actuators, Emitters, and Controllers. Sensors detect an object or event in their zone – such as Motion, Proximity, Heat, Light, whatever. Actuators are basically motors, and move other objects around. Emitters are things like lights, lasers, speakers. And finally Controllers are the computer systems that make everything work – and these are the only objects that really need custom LUA scripts.





Read More

 

Part 12
December 23rd, 2008
 


Subversion has had a tough ride during the latter half of 2008. During that time we shipped Multiwinia and we also did the Chronometer project, so time has been short. Work has still occurred on Subversion, but a lot of it is internal – difficult to demonstrate, and more concerned with the inner workings of the project than externally flashy stuff. So I don’t have a huge amount of cool new stuff to show, but this blog was never about showing the polished finished article – it’s about the development process of an Introversion game.





Read More

 

Part 11
May 12th, 2008
 


One of my intentions is to create a really swish graphical user interface – the sort that everyone wishes computers really used, and the sort that you only ever see in films. One of my ideas is to do away with the traditional 2d interface and project everything onto the inside of a sphere. Focussed windows can be brought closer in 3d space, and you effectively have a huge desktop extending 360 degrees around you. Looks kinda swish, so long as you have 4xAA. Otherwise the jaggies get you. I’m not 100% sold on this interface idea yet, but it’s a fun experiment.



Read More

 

Part 10
March 24th, 2008
 


A couple of weeks ago I had a very strong image of a particular type of map editor for Subversion, that would be extremely easy for me to create, and (far more importantly) extremely easy for pretty much anyone to use. I was thinking about older games like Dungeon Keeper, and newer indie stuff like Dwarf Fortress, and they don’t bother with any complex geometry – they restrict the whole game world to squares, and do everything on a grid. It’s like drawing on graph paper, and every square can be empty or it could be a wall, or water, whatever. Initially this might seem extremely limiting, but both of those games manage to exhibit lots of possibilities to the player and don’t feel particularly restrained because of their grid like nature. I decided to run with this concept for a while and threw together a simple graph-paper prototype in a few hours.



Read More

 

Part 9
February 8th, 2008
 


I’ve started working on some of the simulation aspects of Subversion. It’s a huge and daunting area, and a big part of the problem with taking on such mammoth tasks is often not knowing where to start. The building generator in the previous blog post generates relatively simple external facades based on the traditional tapered Manhattan skyscraper, then fills in some minimal structural detail on each floor – the floor itself, the steel supporting columns that run up the centre of the building, and an elevator shaft.



Read More

 

Part 8
January 27th, 2008
 


Subversion is at a crossroads right now – it could go in several different directions. My gut tells me I’ve spent long enough generating cities for now, and the results are pretty good – it’s time to move in a level and start thinking about the buildings themselves. I’m actually thinking of starting work on the Simulator next. In other words, the system that simulates the activity of the world and lets you interact with it in interesting ways, otherwise known as The Game. It’s become obvious that some people within Introversion – Mark in particular – are nervous there is no game to show for all this blue-sky work so far, and are probably quite-rightly worried we’re dealing with another Darwinia. But my mind is pretty clear – I can see the game playing out in my head – it’s just a very long way off, almost impossible to create at this point even after all the work that’s been done. It’s very easy to get lost in one particular area – like fractal tree generation in Darwinia, which I spent weeks working on while ignoring the major problems with the game itself. I can feel Subversion solidifying, but it’s a slow process, as anyone who’s been watching the evolving city shots will know. Subversion is undoubtedly the most ambitious game we’ve ever attempted to create – massive in scope and totally uncompromising in it’s requirements. But every day I work on it I’m even more convinced - this is the big one, Introversion Software’s Magnum Opus, and it’s going to be the best game we will ever make.



Read More

 

Part 7
December 12th, 2007
 


Subversion's procedural city generator system has been coming along very nicely, as a result of a few breakthroughs and sudden flashes of inspiration. The system is currently capable of building a city covering a 10Km square area of ground. I've now written procedural generators for every single step of the process, meaning you can now start with flat empty land, click "Generate All", and come back in a minute or two without any human involvement required. It can take several minutes sometimes, depending on the complexity and density of the city.




Read More

 

Part 6
May 18th, 2007
 


This work is a direct continuation of the prototypes I showed in Part 3. Those prototypes have now been rewritten (properly) and lots of extra progress has been made. We now have a system that can generate a complete city from the satellite view down to individual buildings, and you can step in at any stage of development and add your own customisations, or you can just let everything generate itself randomly. You can create huge volumes of content extremely quickly, by layering generator on top of generator on top of generator. Each step of generation feeds into the next, producing incredible levels of complexity.


Read More

 

Part 5
April 14th, 2007
 


After playing around with some really simple wall layouts for a few days, it dawned on me that I could make a fairly major progress leap by importing some map data from somewhere else (for testing purposes of course - not as the actual game levels!). All of the test offices that I’d built in my simple editor were extremely basic, because I’m not going to waste time building complex maps when the format is changing all the time. But there are hundreds of games out there with similar map data structures, and thousands of levels that have been made before, sometimes in incredible detail. So I had a little think and came up with the obvious answer – Doom maps.


Read More

 

Part 4
January 15th, 2007
 


The second Subversion prototype has been started, and this time it’s all about Buildings. Specifically, procedural generation of Office Buildings. The first thing that was obvious is how similar the algorithms are to the previous prototype – the same fundamental code that generated those large cities and street networks can be used to generate office layouts. Instead of extending streets we are extending walls, and instead of searching for blocks (surrounded by streets) we are searching for rooms (surrounded by walls). It’s also exactly the same code that can convert a city block into a set of allotments, with each allotment containing one building.



Read More

 

Part 3
January 2nd , 2007
 


These screenshots represent the first weeks work in writing a procedural City Generator. Just a few incredibly simple rules govern the growth of roads in these prototypes. By making small changes to those rules, you can vastly change the result. Encouraging roads to run North-South or East-West results in Manhattan style street grids, whereas encouraging roads to circle population centres results in lovely radial street patterns. These are obviously very early prototype shots but I wanted to show the incredible power (and beauty) of procedurally generated content, even at this early stage.



Read More

 

Part 2
December 21st , 2006
 


To fully understand the history of Subversion we have to look back at the history of our company. A few months after Uplink’s release, work had just been completed on the 1.2 “Nakatomi” patch and fans rejoiced at the newly explorable LAN dungeons we’d created. Feeling we’d done enough to support Uplink for the time being, we pushed on and began work on our next game. The date was the 29th of July 2002, and the project codename was Subversion.

Read More

 

Part 1
December 19th, 2006
 


Our fourth game is going to be called Subversion.


Read More

 

 

 

 

Help & Support Uplink . Darwinia . DEFCON . Multiwinia . Darwinia+ . Subversion . Prison Architect