Suisoft's Gravity Core
Game Project Postmortem by Gary Marples
Released: November 2007
Publisher: Suisoft Limited
Genre: Retro Shoot-em-up / Inertia
Platform: Windows PC
Project Duration: Too Long**
Team Size: One Developer
Software: Microsoft Visual C++, Cinema 4D, Goldwave, Jasc PaintShop Pro (prehistoric edition)
* Realistically if assuming a small salary and business setup costs, around
20,000 dollars (10,000 pounds). In reality, I didn't pay myself anything during
** 12-15 months, although only around 10-12 months full time.
The initial spark of Suisoft (and Gravity Core) stems back many years to an
eight year old obsessed with computers and arcade games. The concept of being
able to write code into a machine and make it do 'stuff' by itself was a concept
much too intriguing to ignore. The typical modus operandi for family holidays
would be to spend too long in darkened arcades playing the latest games (Ikari
Warriors and Tiger Heli spring to mind) then arriving home clutching scribbled
game designs and constructing imitations of the games.
Many years later, following an IT Qualification and 15+ years in the Information
Technology trenches, a corporate takeover (with associated disgruntlement and
voluntary redundancy) provided a time to reassess direction and ultimately
choose a new path. Gravity Core already existed as a multiplayer gameplay
prototype. Playing the game was a regular lunchtime pursuit in which normally
peaceable colleagues brutally gunned each other down and rammed each other into
walls. The gameplay was inertia based, in the spirit of home computer favorites
such as Thrust and Oids, albeit with a more combatative, violent nature.
After much soul searching and weighing of Pros and Cons, I decided to form a
company and develop my prototype game into something to sell. My very supportive
wife agreed (and indeed encouraged - more on this later) my lunatic plan to take
out the best part of a year and try to launch my company and first game.
What Went Right
Iterative Development Process
A core principle I stuck with throughout the entire project was to maintain a
working, playable game all of the time and add one feature at a time. This
really paid off because code quality problems were kept to an absolute minimum
and playing a working game is fun. I would have lost heart with the project very
quickly if the game had been in a broken state for most of the time.
Procedural Level Generation and Artificial Intelligence
From the very start, I set out to make the maps random. I've been fascinated by
procedural generation of maps for many years. I created a dungeon game on the
BBC during my school years. It was pretty flawed, as the map was generated as
you moved around and corridors didn't join back up. You reached the next level
of the dungeon after travelling through a certain number of rooms. I love games
that have random elements and emergent gameplay. My favorite game genre is FPS
(first person shooter) but the majority of these games are scripted to a
ridiculous degree, in that you can draw a bead on an enemy before he even walks
around the corner. I could pretty much play the first few levels of Quake 2
With Gravity Core, I started out with a blue print generated from caverns
(circles) with adjoining corridors and a mechanism to prevent overlaps. The map
structure is then converted into a tilemap with contour tiles applied. Enemies
can then be spawned into the rooms (caverns/tunnels). Some caverns are marked as
special (for example Factories, Sphere etc) and are populated with more enemies.
The number of enemies in a 'room' can be tracked to prevent them from clustering
The blueprint is retained for enemy navigation. This allows the enemies
to roam freely around the environment, rather than sitting and waiting for the
player to turn up. The enemies randomly patrol around when they aren't
chasing the scent of the player.
Overall, I've been really pleased with the way the level generation turned out.
I'm sure I will be able to take the concept much further in a future game.
My approach to sprites (ships, bullets, explosions etc) was to create them in a
3D package and render them using a ray tracing engine. You may ask "why, oh why
didn't you just make a 3D game?" This is a perfectly valid point... for me,
making a 3D game is much more time consuming and complex. The skills required to
make realistic looking models and maps that will be efficient enough to be
usable in a realtime 3D are far too specialised. As a sole developer, building
every aspect of the game, I didn't want to bite off more than I could chew.
Creating the sprites using the 3D package, led to nicely shaded ships and
spectacular explosions and particles that were complimented in some reviews. A
fringe benefit, is the ability to resize the graphics very easily by adjusting
the outputs and also render some of the graphics for use on the title screen.
Although some reviewers criticised the lack of in-game music in Gravity Core,
the reception to the sound effects was good. This is amazing really, considering
I created all of the sound effects from samples of sounds in my home
environment. Cap guns, fireworks, thunder, electrical motors from vacuum
cleaners, gas rings, blowing into the mic, you name it. Looking back, this was
pretty bloody-minded. My mindset with Gravity Core was to keep expense to an
absolute minimum, to the point of avoiding spending a few hundred dollars on
some sound effect libraries. I've enjoyed messing with tape recorders and
sampler software since I was a kid. I think I enjoyed it a bit too much...
I recall getting up in the middle of the night and recording rain and thunder.
This came in very handy when adding depth to explosions and gunfire but didn't
greatly amuse my wife at the time. (By at the time, I mean at the time of
recording, rather than 'wife at the time' - she hasn't left me... yet).
Support and New Contacts
I had a huge amount of support from my wife, Rebbekah. She had a lot to put up
with, as I endlessly rambled on about the game and later stressed out during
business setup and first release, not to mention financially supporting me.
Friends and family were also extremely
supportive. My Mum and Dad had fuelled my computer obsession since I was seven years
old and continued to support my crazy endeavour. Paul "Guffaw" Turner played
Gravity Core until his eyes melted and his fingers curled into crippled claws.
My inlaws in particular never lost faith in their wayward son-in-law.
I received plenty of support from online gaming review sites, download sites and
blogs. Support also came from unexpected quarters, such as other Indie's giving
me suggestions and feedback and Micro Mart printing several snippets of news
and ultimately a review - my only review in print, I believe. Hopefully I will
be able to build on this support with my future games.
What Went Wrong
My greatest failure with the game has been my complete misjudgement of the
gaming market. Gravity Core (in particular the first release) requires a certain
amount of effort to become comfortable with the controls. This has led to many
players giving up very quickly and never reach the point of enjoying the game.
The conversion rate (sales versus downloads) of Gravity Core has been very poor,
though there are some hardcore fans out there.
My next game will be much more immediately gratifying. I intend to start with
simple, easy gameplay and pile on the toughness further into the game and on
higher difficulty levels.
With Gravity Core, I have really struggled to get any mainstream coverage (i.e.
printed gaming press). I think this is due to the traditional retro style of the
game (i.e. it is not a quirky or original game that stands out) and distinctly
average production values. These elements coupled with the lack of immediacy has
made for a very pale blip way under the radar.
I've had far more success with niche Indie review sites and somewhat bizarrely
(but much appreciated) in the gaming section of Micro Mart.
I think even if Gravity Core had received a four page spread in PC Gamer, an
interview and a run of full page ads, the game would still have been a slow
Inability to Give Up
Once I had released Gravity Core and a couple of online reviews had been
published, I acted on the feedback received and began a series of releases with
selectable difficulty levels, alternative control schemes and significant work
on balancing the difficulty. I spent months improving the game but without
making fundamental changes to the style of play I never managed to make it
accessible. I had gone way beyond tenacity and drifted into obsessive (something
of an OCD computer programmer stereotype).
In retrospect I should have written off Gravity Core and started another game.
Even now, more than two years after the first release, I am still tempted to
create a sequel and tackle the shortcomings. That way lies madness...
Because Gravity Core grew from a multiplayer game / engine experiment into a
full game, I put an enormous amount of effort into coding and testing the
multiplayer aspects of the game. Testing a multiplayer game is much more labour
intensive, as the number of situations and glitches are much increased.
Additionally, in order to carry out proper testing, you need to pull together a
group of players. Throwing this into a test/fix cycle really drags out a
Unfortunately, the majority of players never tried player versus player or co-op and
the game received much criticism in reviews over the lack
of matchmaking, internet and wireless performance. My efforts would have been
much better redirected to content and variety.
Too Many Hats
Every bit of code, graphics and sound in Gravity Core was my own (with the
exception of music - I love listening to it, but Rob Hubbard I aint).
Additionally, I had a business to set up, website, marketing, support and
anything else that goes with developing and releasing a piece of software. This
lead to a lot of stress and 3am moments. On several occasions I laid awake in
the middle of the night with my head refusing to switch off, wondering why I would want to do
this to myself and not just crawl back into an office job.
Having battled through to the bitter end, I feel a sense of achievement having
finished Gravity Core and booting it out of the door. The weakest area (aside from
immediacy) is probably the art direction, both music and visuals. The ships and
explosions look nice enough but the title graphics and backgrounds and pretty
plain and underdeveloped. The maps were described as 'lacking a sense of use' in
one review, which is pretty apt. I had piles of sketches and ideas for mining
equipment, buildings, crystals and wall decorations that never made it into the
3D package or paintshop.
In terms of commercial success, Gravity Core has been a misfire. On the plus
side, there are a number of fans out there enjoying whizzing around the caverns
and revelling in their skills and that's something I really get a kick out of.
The end result has been a huge (often brutal) learning experience for me, proof
to myself and others that I can get a game out there and a stack of
re-usable code and business bits.
I have lots of ideas (more ideas than time, like most game developers) and have
a hybrid retro game coalescing in my brain. Something may well emerge next year.
In the meantime, you can try out Gravity Core here: www.suisoft.co.uk/gravitycore/