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

Moley Moley Moley Mole

It occurred to me yesterday that one of my major projects from this year was lacking it’s own page, so I spent a little time today typing up some info. There aren’t pictures yet, because I’m away from my desktop at the moment (actually its in pieces too) and I could never get the Android SDK running on my laptop, but at least there’s something there.

Head over to the new Mega Driller Mole page to check it out, if you like.

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.

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.

G’night!

Of Video Editting and Modules Past

In the first year of my degree at the University of Derby we studied a module named Ludology, which was all about the theory of games and game design. The final assignment for the module was to create a clone of an 8/16-bit era game using Game Maker (urgh) and pitch it to two of our lecturers, who were posing as 80s publishers. Despite having to make the game in Game Maker, choosing a challenging target, and being stubborn enough to use only blocks for the game logic, what I created for this assignment was actually an incredibly faithful recreation of the first level of Sunsoft’s Gremlins 2: The New Batch for NES, including all game mechanics seen in the first level, except for money.

Why do I bring this module up now, a year and a half after the fact? Well, Gremlins 2 is a gem from my past, a huge part of my childhood as a NES gamer (yes I know I’m too young to have been brought up on an NES, but being poor had its advantages I guess), and a game I still enjoy to this day. I’ve played it to death, and previously even uploaded a video of me playing one of its hardest levels without taking a single hit (see below). I distinctly remember other students last year telling me how closely my clone resembled the original game, and having recently come across its exe, I couldn’t help but be proud of how authentic it felt, even if it was made with something so childish.

 

This brings me neatly on to two issues:
The first is simply the heritage of Game Maker, it’s flaws, misuse, potential, and the fact that it actually is possible to make good, respectable games in Game Maker – people just don’t. I’d like to make a post about this subject later, but in case I don’t get chance, I want you to check out two people: MESSHOF and Remar. In particular I want you to download and play Remar’s games Hyper Princess Pitch, and Hero Core. They’re free, and if you truly have an interest in gaming, you will thank me.

The second is the one I want to discuss now: Video editing. I’ve always found this to be a tricky subject. My experience with the various free software solutions has been poor (no decent export settings, formats, unstable, lost work, poor interface, unintuitive, poor video/audio synchronization), and I have never been able to justify splashing out on something more professional. Add to that I’ve always found it quite difficult to find information on how people managed to capture and compress high quality gameplay videos so effectively, and you’ll begin to see why the video before the previous paragraph is so poor, with the audio gradually drifting out of sync as it runs.

Since making that video, I have discovered VirtualDub. VirtualDub is a simple, linear video editor which is perfect if all you want to achieve is some simple cropping, resizing, dubbing, appending and recompression, however, it does not provide the slick GUI or advanced non-linear features that other editors do. After a little bit of poking around and following a lovely video tutorial for high quality, small file size exports on YouTube, VirtualDub allowed me to create reasonably sharp videos for my recent projects, Battenberg and Pastry3D. However, I ran into a brick wall when I set about my latest video editing endeavours.

 

Back in January I recorded the two playthroughs seen above, of Gremlins 2, level 1. One of these is running on an NES emulator, while the other is my Game Maker clone, and the point of the video was to position the two side by side so their resemblance was truly put to the test. But the playthroughs were recorded separately, so how would I go about merging them in this manner? VirtualDub is too linear for this – it does not provide functions to merge videos in such complex ways.

The answer, as it turned out after three to four hours of research and work, was to download Avisynth and VirtualDubMod. Avisynth, as best it’s creators describe it, “is a powerful tool for video post-production”. As far as I’m concerned though, it just provides a scripting language which can be used to manipulate videos in a non-linear fashion by utilizing a number of simple functions, such as StackHorizontal, which fitted my purposes to a tee. Again, as far as I’m concerned, VirtualDubMod is simply VirtualDub with added functionality, and integration for Avisynth, including syntax highlighting.

The short story is, the solution to the problem was simple, but the information I needed was so buried, and so tricky to put to use that it took a considerable amount of effort to achieve my end goal. Still, it was interesting to see how programmatic a solution to a problem such as video editing could be (seems obvious now I write it down), and I’m considering laying down a nice tutorial if I find the time – though a tutorial on merging videos like this may be too specific, and I’m no general master of the tools involved.

PSP Demo Video!

So I had a chat with one of the Techs from uni yesterday and managed to get a video capture of my PSP Demo from Console Development last semester. It’s not the greatest quality rip, but then the PSP’s screen is pretty crappy too. That said, it is much darker, grainier, and more contrasty than the demo appears when running on a PSP.

I overlaid the music from the closing titles on which the demo was based in VirtualDub while I was fixing the aspect ratio and tweaking the contrast, since I didn’t get time to actually figure out audio streaming on the PSP. Yes, the frame rate is poor because of the high-poly hummer model I used for See-Through, and a few bits of code which I’m going to look into optimising on monday, since this semester’s Console Development module is all about optimisation, and I get to play with the PSP tuner for monitoring the performance of my applications.

I’ll embed the video below and get back to work on the here and now. Maybe I’ll be back later to post about Battenberg. Maybe I won’t.