|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|