Portfolio Update – Game Behaviour


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.

A Note of Intent


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.

Summer 2012

Since handing in my last assignment of the year, I’ve had a good amount of time to recover from the previous stressful semester and make a start on some of the things I wanted to get done this summer. This’ll be a short post outlining these mysterious things, mostly for my own benefit, though I guess it may be of interest to any passing traffic.

For the most part my efforts so far have been centered around finding work, and following a small series of WebGL tutorials based on the popular Nehe OpenGL series. I’m using WebGL to brush up on the OpenGL I covered last summer, and to serve as an introduction to JavaScript and general web development. Working with JavaScript has been relatively painless given my previous experience with ActionScript 2.0, and the useful developer tools included with Firefox and Chrome. Still, an environment which doesn’t crash when you call a non-existent function has it’s pitfalls.

Expanding my experience with a variety of languages is a priority for me at the moment (I’ll be starting some Python tutorials later today), but ideally I’d also like to move back into C and bring my OpenGL experience up to par with my DirectX experience so that I can make an attempt at some sort of deferred shading system. Graphics programming isn’t my favourite of subjects, but it’s challenging and the results can be very satisfying. The implementation of a renderer using deferred shading seems quite intuitive to me and could be a lot of fun to experiment with. To this end, I’ve also been brushing up on some maths, as I’m aware my lack of A-level puts me at a disadvantage in the eyes of some employers, and It’ll really help to fully understand more advanced techniques in graphics and other 3D programming tasks.

I found a decent book to help with my maths studies, but it’s part of a larger stack of books I’ve yet to wade through, including one on API design, and another one on x86 assembly programming. Assembly programming is something I particularly enjoyed during the first semester this year, but it remains to be seen whether or not I’ll get back to it this summer. I’ve resolved to get hold of a decent graphics tablet as soon as I’m sure I have a little time to burn – I may be a programmer now, but there’s only so long you can suppress your creative routes. I never really got into digital art before, but working with pen and pencil for so long has gotten me into a bit of a rut, and I feel like I need to stretch over into new mediums to escape it. While we’re off the subject of programming, I’ve also been studying Korean a lot more since the semester ended – even if the majority of that has been reading 루쿠루쿠 (Lucu Lucu) and playing Pokemon White. I should get back to Lang-8 and make a post there sometime soon to try out the new grammar.

At the moment I’m still living with the majority of Pillowdrift, and watching as they work away on Mega Driller Mole. I’ve even joined in with the effort this past couple of days, lending them my technical and artistic abilities to enhance the mineral system and throw in some new enemies (yes, there are demon cats now). Mostly though, I’m proud to say that they’ve had little difficulty adapting to my original code-base, and twisting it to their needs. I wasn’t even here during their initial work – they had to figure it out all on their little own!

I also worked with Bombpersons following a quirky little framework he threw together for a discontinued Mini-Ld attempt. He used SDL to create a very lightweight graphics module which allows the setting of pixels, never clears the screen, but blurs its contents every frame. I threw together an equally light weight (and not really well coded) game framework over the course of a day, and implemented a controllable player, just to see what it looked like, while he developed a simple particle system, which it turns out looks really freaking cool in such an environment. That’s as far as we got with this quick and dirty prototype, but we definitely think there’s room for a decent game implemented around the blurring gimmick.

Coming Soon
I mentioned something a while back about decent games made in Game Maker, and how I wanted to write something about that. Well, I’ve been playing a lot of Hyper Princess Pitch recently, and instead of tackling the subject head on, I figure I’ll come at it via review instead. Expect something up in the next day or two.

Updates, Updates Everywhere

Spent a good amount of time in the last two days putting up more videos and pages around the place. Most changes have occurred over on my YouTube channel and on the Year2 page. I also have new pages for all of my Console Development projects, and my first attempt at a DirectX game engine, DacquoiseX. Hopefully this place is presentable enough for now, and I can get back to applying for jobs, and doing actual work.


Kick Demon Cats to the Curb and go Beyond the High Score ◥▶̸̱◀◤

Okay. So there aren’t any demon cats yet, and that was my most desperate reference of the entire project, but this is a post about Mega Driller Mole, and I shall weather no more digressions.

Mega Driller Mole is a prototype Android game created for the Mobile Development module of my course at the University of Derby. The objective is to guide the mole around the screen using your finger, collecting minerals and avoiding mines, enemies (such as typically giant worms or the aforementioned demon cats), and other hazards. Combos build up as you collect more minerals without taking damage, and you must drop off your current load on the surface if you want to get any points out of it at all.

Moley McMolemole (doesn’t actually have a name) can currently run into three mines and then it’s game over, but if you’re good then the game could theoretically last forever, and your combo can get ever higher. Currently the difficulty doesn’t scale as the game progresses, and this is one of the things that will need fixing if the game is ever to hit the marketplace.

See, some friends of mine are setting up as a company this coming year while I’m (hopefully) off on placement, and while I won’t be joining them, I told them they can have this prototype and, if they wish, make something special out of it. I’ll probably end up helping them out, if only in an artistic capacity – since I’ve set such high standards – but it’s really up to them whether this goes forwards.

You can see some gameplay of the current version in the video above, where I show off awesome things, like, jumps and flips and stuff, and the awesome parallax scrolling, and the highly optimised, threaded particle system, and- and…just watch the video.

There are some obvious things missing – mineral varieties are one, along with graphics for the minerals and mines. Difficulty scaling will also be entirely crucial.  I’d also like to hide super valuable minerals in the bedrock and make it tunnelable (slowly), implement a ‘dug-out’ graphic for where the player has been, add second means to get more air (and hence more height bonus), enemies (demon cats and giant worms!), other power-ups, perhaps, and bonus score items.

Obviously I won’t be putting up source or downloads for this project since it may one day be put to commercial use, even if it may be released for free with ad support. Oh I should also mention that the game uses LibGDX, which is why it can be run under Windows, which is why you can see a mouse on the video up above, stepping into the shoes of touch control.

For now I’ll leave you with a little vector graphic I whipped up for the title screen, and head off to bed.


The End of a Short Year

Not to say that it’s been an easy one, but this year sure has flown. This last semester was a particular challenge due to dealing with five modules at once, rather than the usual four (or the three we had in the first semester). What’s more, I really poured a lot of effort into every assignment, which has left me completely drained after the last five or so weeks of pure work.

I’m back at my parents’ place right now, catching a bit of rest before I engage in any personal projects, or go on the placement-searching-rampage that will be needed if I’m to find something good for next year. That said, having only handed in my last assignment yesterday, I’ve already set about grinding through my backlog of Anki cards and reading one of the many programming/maths books I’ve had on my shelf for some weeks.

This ‘blog’ has been long neglected while I’ve been working on my Interactive 3D and Console Development assignments, so I’ll try and overhaul it at some point with a proper Console Development page and information about my latest works. While I’d like to have a proper personal website, I’ve no experience in web development and it’s not on my agenda right now. I’ll even put up source once we’re a safe distance away from assignment submissions, though I’m not sure how much of my work with the PSP SDK is mine to broadcast, and I won’t put up source for my Android game, Mega Driller Mole, because my friends at Pillowdrift are considering taking over that project.