Portfolio Update – Game Behaviour

Hello!

I recently put up pages for two projects from the Game Behaviour module undertaken in the final year of my BScH in Computer Games Programming at the University of Derby, which I have now fully completed and received a very pleasant classification for.

You can now head over to the pages for Crispis and DropCakes, and The Frozen Firepits of Generic Dungeon Name for information on these projects, or to download the source code and executables. The former is simply a 2D physics sandbox built upon Box2D and a custom Entity/Component engine, and probably isn’t or much interest to many. The latter, however, you may find interesting if you’re into game design, classic roguelikes, fantasy games, and such.

The Frozen Firepits of Generic Dungeon Name (TFFGDN) was an experimental game design implemented for an artificial intelligence (AI) assignment; it did well, though the AI isn’t too interesting in my opinion. It’s a fusion of turn-based, physics-based mechanics similar to Snooker or Pool, and classic fantasy dungeon-crawler games where a party of adventurers of traditional achetypes such as Warrior, Wizard, Rogue, etc. enter into a monster-infest labyrinth seeking treasure. In its current state it’s not too thrilling; I had intended to implement magic and special abilities for player characters and enemies, which I think would make things a lot more exciting, but I just didn’t have time. I also feel like the physics could be tightened up a lot to increase the pace of gameplay, but I had to do a lot of fiddling with Unity just to get it working in the first place.

Come next week or so I’ll try to have some more information up regarding my dissertation project which was an investigation into AI for Don Eskridge’s The Resistance. Then I can get onto undertaking some small personal projects while I look for work.

SplashDash

Ho! Another delayed post; I said I’d get to this before the semester was up, but this semester hit really hard, and I just haven’t had the time or energy for it. Well, it’s not Christmas yet, so I guess that’s something, no?

The real killer module this semester was Game Development, which consisted of a single group project with three other programmers and seven(!) 3D artists. I started to put a page together for the game we created, “SplashDash”, today; I still need to go over what I’ve written with furrowed brow and fill out the Freerunning Implementation section, but there are already download links for Windows, OSX, and Linux builds, a gameplay trailer, and lots and lots of screenshots to see!

splashdash-title-001

SplashDash is a 3D, freerunning, score attack game, drawing inspiration from games like Jet Set Radio, Tony Hawks Underground, Mirror’s Edge, and de Blob.

Robots have taken over the world and subjected it to their ideals of order and optimisation. They’ve whitewashed all the walls and broken the spirit of the human population, who now go about their daily chores like mindless drones. The player is a teenager gifted with the ability to bring colour into objects with a single touch, and must use it to paint as much of the city as possible in the given time limit to inspire a human revolution.

My main responsibility was the implementation of the player movements, including running, analogue jumps, wallruns, ledgegrabs, vertical wallruns, wallrun jumps, and wall rebounds. I also worked closely with the programmer and artist responsible for the animations to try and make sure things looked as smooth as possible, and though some animation glitches remain I’m pretty pleased with the way things turned out.

The freerunning implementation is, honestly, pretty unrefined, as I’ve never coded such complex 3D movement mechanics, nor used Unity before, and time constraints on the project meant that I could not afford a lot of research or iterate as much as I would have liked. I opted to go with a system which did not require any hints or triggers to be placed into environment, so as to minimize the workload of environment construction. Let’s just say there are a lot of raycasts and a lot of vector maths involved; you can read more about it (once I’ve written it) and my other contributions on the SplashDash page.

We’ve all learnt a lot from this project – mostly about working with Unity, its flaws, quirks, features, limitations, and best practices, but also more transferable skills. We had some communication and organisational issues (which I’ve written about at length for a post-mortem as part of the assessment, and shan’t post online yet) that I think are easily solvable once identified; some simply by picking the right tools and channels, and others by encouraging certain practices. The project was also a good insight into the importance of sorting out your methodology and workflows out early on in a group project – I feel that with time invested in the right places at the start, things would have progressed more quickly, and in a more organised fashion.

splashdash-tutorial-wallrun-002

Anyway, I think it’s pretty effective as a proof of concept – or not, as the case may be. We all agree that the movement is the most fun part, and that a linear time trial or racing mode, on maps similarly constructed to the tutorial level, would probably be more fun (especially with some nice acceleration mechanics thrown in to reward good freerunning flow). But it is quite fun, all the same, and I think the concept deserves further investigation which, if I ever find the time to experiment with a proper non block-based painting system, I might just be tempted to conduct.

Edit: P.S: Mute the game and go listen to the Jet Set Radio OST while you play :P

A Note of Intent

Aaargh.

I decided I wasn’t going to bother posting another update here until I’d settled back into uni and sunken my teeth into some fresh projects I could write about. I suddenly find myself almost two-months into the final year of my degree and I’ve been rather too busy to give it a second thought.

So here’s a note of intent: I will, sooner or later, make a proper post about this semester’s projects, before the semester is concluded, including my dissertation project, which was signed off by my supervisor last week and is now awaiting my full attention…after two more urgent deadlines. For now, I’ll just leave a brief list of what I’m currently working on:

1. An essay on the sufficiency of services provided by modern operating systems for accessing detailed information about gaming peripherals [due two weeks from now – yikes!].

2. A Unity game about parkour and painting. Think Jet Set Radio meets Mirror’s Edge meets Tony Hawks Underground. This is a team project with three other programmers from my course, and seven artists from the University of Derby’s Computer Games Modelling and Animation course [due sometime around the end of the semester].

3. For my dissertation project I am to be investigating the posibility of applying various AI techniques to the board/card game The Resistance. This may include search trees and evolutionary techniques, and I will be using the competition framework and bots provided by AiGameDev.com last year.

These are the things I’ll be posting about and/or creating new pages for here when I get chance. All the other stuff I do I’ll likely post about elsewhere if I even have the time to continue doing things other than eat, sleep, and code.

I cook some nowadays, and bake a little; I still study Korean, and I’m trying to snatch back the graphic design and art skills I used to have. But I’d like to keep this blog focussed more on programming, and the larger projects I undertake.

What a Pitch!

If you’ve dabbled in games developmentĀ  at all, chances are you’ve come across Game Maker. Depending on the circles you run in you may have heard good or bad things about it – you may even have tried it yourself and formed your own opinion. Personally, like anyone else I ever remember talking to about it, my opinion on Game Maker is largely negative, and while I could see it being viable prototyping tool, I would always prefer to use something like XNA or LWJGL with a simple, ready-implemented framework.

I’ve also seen many a terrible Mario clone and other poor Game Maker game – probably a result of the application’s ease of use making it attractive to young or unskilled creatives. But I’m not spending my time typing this just to beat a dead horse, no. I’m here to introduce you to a shining example of what any tool can produce in the right hands.

Hyper Princess Pitch Review
Daughter of the Goddess of Explosions, cannon in hand and an unending supply of explosive bricks as ammunition, Pitch sets off to the North Pole with her flying, legless companion Cat Strike to give the good Mecha Santa and his robotic elves what for. What for? For not giving her any presents, that’s what.

Hyper Princess Pitch is a top-down arcade shoot-em-up in the vein of Smash TV and Operation Carnage, created by Daniel Remar and distributed for free alongside his other work, including Iji, and the fantastic Hero Core. It, like most of his games, was created using Game Maker, but you’ll see no shabby handiwork here.

As you probably guessed a paragraph ago (unless you’re skip-reading) the setting, and general wackiness of the characters play a big part in making the game so entertaining. Pitch is a likable anti-hero – even if her motivation is somewhat disagreeable – and her mother, who resides in a secret place, is an absolute riot. Pitch makes vocal remarks during gameplay of just the right frequency and variety to be entertaining rather than annoying, while her mother… uh – things explode when she talks. Mecha Santa is also pretty rad.

The graphics portray everything aptly with a bright, pixely style and no visible flaws. They’re not ground breaking by any means but they’re certainly attractive, and never bland. Explosions are very nicely drawn and animated, which is good since they’re a central feature. I don’t think I really want to play a game ever again unless re-spawning after death causes an explosion. There are rainbows, sparks, varied projectiles, colourful props and different tile-sets per level. Overall there’s a lot going on; over-the-top is the name of the game, but it never seems out-of-place

Enemies are also colourful, varied, and a little more creative than might be expected from a Christmas-themed game: shiny baubles, trains, UFOs, gun-turrets, tanks, sleds and insane, metal doppelgangers to name but a few. In some rooms you are assaulted by swarms of elves, while others contain only three or four larger enemies. Bosses are especially impressive; they’re the standard, room-filling fare, but their attack patterns are well-refined, inventive, and very interesting – more-so when final attacks are enabled for the hardest two difficulty settings. The third boss – whatever the hell it is – makes good use of the environment, advancing on you constantly and occasionally blasting the central platform with a massive laser, forcing you onto the sidelines.

That is, unless you make use of a special trick. Pitch may be all for explosions and general, long-ranged carnage, but she’s not above wrestling moves when the situation calls for them. Your main arsenal consists of an explosive-brick machine-gun, an ice-thrower (which also destroys yellow projectiles), and a slow-firing gun that fires little, bouncing bits of rainbow. These are all useful under different circumstances, but if you get in a pinch you can also hit up-down-left-right or up-down-right-left quickly to execute a block. Projectiles that hit you during a block won’t hurt, but large enemies will. Interestingly though, if a smaller enemy touches you, you’ll execute a pile-driver on it, culminating in a powerful explosion when you and your foe impact the ground. Various power-ups will aid you along the way, including obvious candidates such as power, triple and speed, hyper, and the super-rare x, y,z power-ups. Some of these override your main weapon completely, while others differ based on what weapon you have equipped. All of this can lead to a very tactical form of play, or just a whole lot of awesome-looking fun.

At this point I’d like to say that Pitch even controls well, but that’d be pushing it. Instead I’ll emphasize that she doesn’t control badly. You move her using the arrow keys on your keyboard, fire with x and cycle weapons with z. Your weapons fire in the direction you last walked in, but by switching direction while firing you can continue to fire while back-pedaling or side-stepping. This is a bit strange at first, but something I’m familiar with from some older games (don’t ask me to name any). Although it takes a while, this actually feels quite natural once you get used to it, but I still haven’t gotten the hang of the key combination for a pile-driver. Up-down-left-right, up-down-left-right. I actually like the fact that it’s difficult to execute this powerful move, but it is endlessly frustrating when you fail, especially since you have to be right next to enemies already in order for it to be effective. Wielding a hyper power-up actually enables you to perform a pile-driver at the touch of a button, but it isn’t often useful once you have a golden bricks or a rainbow laser.

Actually, that’s my only minor gripe with Hyper Princess Pitch, and it hasn’t hindered my enjoyment of the game past the first five minutes or so. There’s enough variety, challenge, humour and content here to keep you busy for quite a long time, and it’s all delivered for free, not even requiring an installation. Level design is solid, and non-linear, as you usually have two doors to choose from at the end of each room. The difficulty curve is perfect, and the game comes with a large selection of difficulty settings, each of which unlocks a new pro tip upon completion. I can almost complete the last regular difficulty setting, and I’ll probably still draw enjoyment from the game until I can complete it fully. There is a hidden difficulty setting harder than that, but you need to have some pretty l337 skills to even get through the front door.

I highly recommend Hyper Princess Pitch. It’s hard not to recommend free games, I know, but if you remember Smash TV, enjoy retro arcade shoot-em-ups, or just want to cause a lot of cool explosions without any complicated premise, you should check this out. If you want a simple, challenging arcade experience, and have fond memories of limited lives and real GAME OVERs, you have to check this out.

I’m a Night Owl

Can I cram the third of my Humble Bundle Reviews into that last thirty-six minutes of Boxing Day? Probably not – I’m too much of a perfectionist. But that won’t stop me. I have other things to do too, and the night is young.

NightSky Review
Physics-based action-platformer NightSky by NICALiS (awesome website) will test your reflexes, your mind, your skill, and your determination in ways you would never imagine possible, while constantly luring you further into its dreamlike world of silhouettes and ambient music. The gameplay ranges from supremely relaxing to incredibly frustrating, but is always satisfying whichever the case.

In NightSky you play a ball. I won’t go into the specifics of how you control this ball in case you, like me, decide to play Alternative mode from the get go. In Alternative mode you are dropped into the world with a list of the buttons required to play, and are given no further instruction. Since getting to grips with the game I have given it to my mother to try out the normal game mode, which spaces tutorials throughout the first few levels in the form of helpful hints at the bottom of the screen, and features less challenging obstacles throughout.

For the first few screens you’ll simply roll to the right, then you’ll encounter your first jumps. Dropping off the bottom of the screen resets you to the last checkpoint you passed; these are generally every three or so screens and are indicated by a simple fade-to-black. It’s a little while before the physics puzzles are introduced, and this is done very gradually. The most important thing to me though, is that the physics never become the definitive aspect of the game, your concentration is almost always squarely on controlling the ball.

The physics are, however, what separates NightSky from other platformers. Without the physics the game would not be what it is, and it’s actually quite unusual for me to like a game so dependant on its physics engine. Puzzles are worked expertly into the incredible level design in a way that, sadly, checkpoints are not. There were a particular sequence of levels that seemed to have been designed specifically to follow-up a time-consuming or pure-chance obstacle with a difficult, skill-based jump, only to throw you back to the beginning every time you failed the jump, and these really got on my nerves. Still, far from the frustrating grind of Super Meat Boy, NightSky somehow always makes me feel like I’m heading somewhere, and I’m still compelled to complete the game after already pushing through some really hellish levels. Perhaps it’s the reward system? NightSky usually rewards you after each challenge with a peaceful section, something new and creative, or a different type of challenge. Meanwhile, Super Meat Boy rewards you after each level with another incredibly difficult challenge of the same type, using the same tired obstacles (there’s only so long before I’m not impressed by saws and fire, okay?).

No really, NightSky constantly surprises you with things you just weren’t expecting? Did I expect to begin this level in a balloon with fans powered by my rolling? No. Did I expect this entire room to rotate with my weight? No. Did I expect to have to balance atop a log while it rolled through those obstacles in the first bloody level? No! I’ve been constantly amazed at the amount of creative and original obstacles I’ve encountered in this game, and these are interspersed with standard jumps and old obstacles in such a way that it’s never even overwhelmed me.

One thing I’ve barely touched on so far is the graphics. These are in a sort of silhouette with minimalist use of colour, so you don’t always know what something is until you roll into it. Backgrounds are usually all you get colour-wise, and they’re pretty enough to stop the game being bland. There are moving critters in some worlds (which I’m not too fond of), trees and grass that blow in the wind (lovely) and various other features. Overall the game is pretty, not stunning, but its aesthetics compliment the atmosphere well.

The atmosphere is one of peace, mystique, and a little danger, perhaps. This is enforced by the high black content and subtle use of colour; the experimental soundtrack provided by Chris Schlarb; and crisp, lifelike sound effects. The sound effects were my second surprise in this game. Knock on wood, rattle chains, move something heavy and large, or fall onto some rocks, and you’ll hear the purest incarnation of the sound you’d expect. This can be useful for identifying objects, but it also lends the world some living quality, and emphasises the lonely atmosphere, as the loudest, sharpest sounds in the world come from your interactions with it.

I don’t have any criticisms for the game really, apart from some of the cruel checkpoint spacing, so I’ll spend this paragraph talking about The Void, my favourite level so far in NightSky. The Void is beautiful, features some of the most satisfying (though by no means hardest) puzzles in the game, and no less than two fantastic vehicles for you to master. I really enjoyed playing through this level, and I hope that you will too.

Positive thoughts for this one then; well done NICALiS. This is probably my favourite of the Humble Bundle so far, so now I’m off to play some more NightSky. At night.

Goodnight!