Abomination

This is a blog post about one of my projects – check out the showcase page for a full list.

How often in roleplaying games does an attractive, friendly NPC come begging the attractive, capable player-character for help? They’re like strangely violent Disney movies, with the obligatory strong Christian overtones and happy endings. You’re always the hero: even if you’re a far cry from any paragon of virtue you’ll still be greeted with open arms and expected to save the world from a greater evil than yourself. The characters you meet may not all love you, but they’ll generally at least respect you, and, if you’re given any choice at all, it’s generally between an obvious “good” (helping those in need) and “evil” (helping yourself).

I find myself thinking though: what if instead of loving you, everybody hated you? What if nobody gave you the benefit of the doubt? What if you were shunned? It’s not such a no-brainer to help those in need when they’re the same people who were spiting on you five minutes earlier. The point is that it’s easy to be “good” when you’re loved, but it’s just as easy to be “bad” when you’re not. I’d like players to explore this dark side a little further in order to discover something about themselves: “are you the sort to forgive, or do you exact just vengeance?” In my opinion this is a far more interesting question than: “are you a hero or a villain?”

It was with these ambitions in mind that I started work on Abomination. The design takes heavy inspiration from Frankenstein, The Satanic Verses and Edward Scissorhands - I wanted to ask the question: “What makes a monster? The individual or society?” The beauty of the concept is that the player answers this question simply through their choices in the game.

Abomination Screenshot

Setting

Abomination is set in a Gothic Castle in the 19th Century, where a brilliant Scientist experimenting with electricity has created all manner of automatons to serve him. He wants a friend though, and as such creates you, the Abomination, from scrap-metal and body-parts. On the eave of his success his retreat is attacked by an angry mob intent on ending his heretical work. The Scientist has time to activate his booby-traps before being killed, leaving you, orphaned, to escape from angry bigots and deadly traps.

The player can earn the trust of either of the two factions (the mob and the automatons) trapped in the castle, or go their own way. Depending on who they kill the story will vary slightly, while remaining fairly linear as the player moves through the various part of the castle, helping or hindering either party. Credit where it’s due: Iji was clearly a great inspiration for this kind of progression, as it show what can be done with the limited resources of an indie programmer.

Gameplay

I worked on Supersoldat for years, but because I was learning as I went along (not just how to use Gamemaker but how to program) the whole thing was built on extremely rickety foundations, and often patched and hacked when it really should have been completely rewritten from scratch. As a result the code eventually become impenetrable, and it no longer made sense to keep working on it.

Abomination was born of a desire to do Supersoldat “right”, using everything that I’d learned, but rather than simply rewriting the game I decided to put a slightly different spin on a platformer, in the vein of Kyntt: the player can climb up walls and across the roof, making navigation and exploration a primary part of the game. I’m clearly a lot more violent than Nifflas though, and wanted to add some mostly stealth-based combat: the plan was to let you jump onto enemies like the Hunter from Left 4 Dead.

Keeping the number of controls to a minimum, and making that minimum highly intuitive, were primary concerns: the whole of Supersoldat is basically one huge tutorial, and I wanted to spend less time explaining how to perform the various actions. Making jump and attack the same button was one way of doing this. Also unlike Supersoldat, the game was planned out in advance and well structured, so development went very smoothly through a number of milestones. Another improvement was that Abomination used about 80% GML (Gamemaker’s C-type language), making it a lot more maintainable and allowing me to do a few things far more cleverly. For example, rather than manually placing “cliff-edge” objects, I had the game detect when you touched the edge of a cliff automatically: this made level-design a lot quicker.

Abomination Screenshot

Unfortunately I decided rather late that I’d need moving platforms, something I hadn’t thought of in the beginning. I figured they’d be trivial to add to what I’d written but doing so proved to be impossible. Because of this I went back to the drawing board, and rewrote the code with moving platforms in mind. But I lost all my motivation when, even starting from scratch, I was defeated by the moving-platform problem. It didn’t help that the guy who said he’d look at my source code didn’t get back to me for weeks, then finally suggested I use his engine instead of mine.

Thus all that I’ve got to show of Abomination is a little demo, with a series of simple puzzles requiring you to find a place-holder Teddy Bear. Your wall climbing abilities are rendered more interesting by variable surfaces: metal is too slippery to climb unless you’re magnetised, while wood provides enough grip to climb even upside-down across the roof. The game is already quite interesting with these mechanics in place, and I full intend to come back to it when I’m good enough with C++.

Presentation

One of the things I really wanted to improve on after Supersoldat were the backgrounds and tiles. Supersoldat was quite ugly, except for the animation. As such I spent a lot of time on Abomination’s tilesets, both for back- and foreground. What I realised is that with a small number of highly modular tiles and a bit of artistic flair, you can make some really interesting-looking levels!

I also wanted the animations to be 100% “mine”, with no reference material, only imagination. Not that there are many references for strange “robot-zombie-dog-monster” creatures. The addition of particles also made the walls seem that much more tangible, rather than just being the level’s boundaries.

I never got round to making any music or sound effects for Abomination: sound design is the one thing I’ve never really made much ground with, probably because I don’t understand how music is read or written. If anybody has a track they think might fit and wants to donate it, it’d definitely be appreciated. It would also push me to actually finish a game: sometimes you need a stick and not just a carrot (some quality C++ game tutorials would be handy too).

Make sure you check out the game’s ModDB page for whole bunch more screenshots, or the original thread for a more detailed look at how it was developed. You can download the Windows executable from MODB, or from TheGameHippo. Abomination was made with Gamemaker so is Windows only, unfortunately.

5 thoughts on “Abomination

  1. Striker

    Hey dude, I run a freeware gaming website and I just reviewed your game. All of the games I review are hosted on my site, so feel free to use it as a mirror if you’re in need of bandwidth!

    http://www.thegamehippo.com/game.php?Game=736331

    If you have any comments or would like some game development help, feel free to email me. I know GML, C++, and C# along with a multitude of web development languages.

    Reply
    1. wilbefast

      Cool site Striker! Definitely something to bookmark. And thanks for the review – I’m honoured. Great to have the mirror too: it’s hard to find reliable hosts.

      I’m getting into C++ at the moment so your offer is certainly welcome. At the moment I’m using SDL with C and learning C++ at university, with very little free time, so work is likely to be sporadic. I’ll write to you if I run into any problems though – so thanks again!

      Reply
  2. Henrik Roslund

    Depending on what stuff you need for music, I might be able to help out! Feel free to contact me, and I could send you some of the things I’ve been working on, and get a feel for what you’re looking for.

    Reply
    1. wilbefast

      Awesome – I’ll write to you this evening Henrik: if I can get a track I might re-release the Gamemaker version, add a few more levels and maybe do a some fixes. Want to break out of GML though – it’s very restrictive.

      Reply
      1. Striker

        I’ve been playing guitar for about 5 years, both classical and contemporary. If you need some quality guitar samples, don’t hesitate to ask. I’m good at playing by ear so just send me a song and I’ll figure out whatever part you need.

        Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>