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.

London Posting

So a couple of months ago I made this post about what I planned to do with my summer. Well, summer was shorter and busier than I thought it might be, so my best laid plans kind of fell to pieces. I don’t mind of course – I found a decent placement for the year after all – but the chaos that’s dominated the last month or so has left me kind of disorientated.

So where do I stand? I’m in London now, working full-time for a company named ‘Feral Interactive‘, and have just come off of a three-week stint without internet, during which I’ve walked too many miles, watched too many TV series, and played too much Ys. Before that, and before all of the effort that went into arranging the move, I did manage to get through those WebGL tutorials, read a good deal of the Python documentation, and dig through the internet in search of information about network programming for games (without much luck). Mostly though, I just studied Korean and house-hunted. I also bought a small graphics tablet – a Wacom Bamboo Pen and Touch – but I’ve had no time to look into digital art, so I’ve barely gotten used to controlling the thing.

The apartment I have here is small, but nice. It’s essentially two rooms with an entrance down a back-alley – what would be the kitchen-bathroom extension on a terraced. I don’t really spend much time here, what with my working hours, but what I do spend here is comfortable. Once I’m settled I want to get to work on the things that got put off this summer. I’m four chapters in on this maths book, but I’ve yet to get around to doing any OpenGL programming and still haven’t regained any confidence in drawing. To be honest I’ve also considered just taking advantage of the Korean presence down here in London – making language study my extra-curricular priority for the year. Work is tiring, life is complicated. Time will tell.

Right now, I’m watching 원스 어폰 어 타임 임 생초리 (Once Upon a Time in Saengchori). Next? Maybe I’ll hammer out another chapter of this maths book.

Something smells good. I think I live next door to a takeaway.

MIPS code, 저는 너무 바빠요!

I’m so busy this semester. Five modules at once, lots of assignments, and we’re already so far into the second semester. I want to post a few updates on what I’m up to, I just need to tie up a few loose ends before I have anything decent to show to…whoever is reading this.

Anyhow, I thought it was about time I uploaded the MIPS assembly code for the first console development assignment from last semester, so I’ll be dropping in a link below and amending this page with one too.

Check out that page if you want any information about the project, or click here to see the assembly code. If you have MARS then you’ll be able to run the demo, unlike my snake game which crashed unless you could be bothered to look up the threading issue in the Keyboard and Display Simulator included with MARS, and fix it, like me and my friend did one fateful night.

While the demo may not be too impressive, and there aren’t many drawing functions, writing PrimLib was great challenge. I really enjoyed my time spent with assembly programming – optimizing things at such a low level is surprisingly compelling, implementation of the logic forces concentration, and I generally found the whole experience quite relaxing (except for the debugging – that was horrifying, but still kind of fun).

The greatest thing about my work in MIPS was that it was directly relevant to my work in Introduction to 3D Graphics at the time, where I also had to write Cohen-Sutherland line clipping and Bresenham’s algorithms in C++. It may surprise you to know that I wrote the Cohen Sutherland algorithm in MIPS first, then converted it to C++. Honestly, I might not mind working in assembly professionally if the opportunity ever arose, and my desire to throw down some 6502 for the NES is still as strong as ever.

[Assembly Code]

Enough about that though. I want to give a quick shout out to one of my current time-holes and then head back to more important matters.

Ever heard of Lang-8? If you’re learning a language at an intermediate or advanced level, Lang-8 could be an incredible way to boost your motivation, confidence, and get accurate corrections for real, native speakers. The site is free to use, and relies solely on the kindness of others. Simply put, you make an account, tell it what language you speak, and what you’re learning, then post entries about whatever you like in the language you’re learning. Random strangers from around the globe (preferably native speakers) then post corrections and comments on your entry, and the site even attempts to match you with your language counterparts and suggest friends.

I’ve been using Lang-8 to practice my Korean, even though I’m at a very basic level. There are a lot of Korean people on there learning English and, it seems, not many the other way round, so I’ve been inundated with friend requests. Although I’ve only found time and energy to post three entries of my own, I’ve found crawling and correcting other people’s entries to be almost as addictive as crawling YouTube – albeit in a more altruistic way…

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.


What Grinds My Gears

If there’s one aspect of the games industry that’s always annoyed me it’s the endless parade of rehashed puzzle games with polished graphics and un-inventive themes being sold on the internet for only £14.97! Usually it’s a company pushing these things out, be they publisher or be they developer, and while they’re always well made, and occasionally a lot of fun, I just wish that these same people were putting their time and creativity into more original games.

But what happens when an indie studio like Lazy 8 Studios decides to show them how it’s done? Time to get started on the second of my Humble Bundle reviews.

Cogs Review
Remember those sliding tile puzzles? I’m sure you’ve seen them before, but probably not recently (unless you’ve already played Cogs, in which case I wonder why you’re reading this). Well I hate those things. They’re hard, pointless, and you’ve usually already got the finished picture in a little panel on the right, or a piece of paper, so what’s the point? The whole thing’s a bit too much like jig-saws. However, Lazy 8 Studios somehow managed to make the damn things fun, compelling, satisfying, and rather pretty.

Cogs is an original, though decidedly steam punk take on the sliding tile puzzle. When making the transition into 3D the obvious concept would be to use a 3D model divided up into cubes. Obvious, boring, and ugly. Cogs takes a unique approach: The surfaces upon which your tiles exist are the sides of contraptions like rockets, tricycles, and other steam punk machinations. Your goal in most of these is not to create specific arrangements of tiles, but rather to make the contraption function by linking up the gears and pipes which are attached to the tiles. This makes the game fresh. This adds immense depth, and ensures from the get go that this is not just another rehashed puzzle game.

In the level above, for instance, you have, I think, only one source of gas, and you need to link it to every booster on the bottom of the rocket. Each side of the rocket has only a 2×5 grid for you to manoeuvre your tiles on, and in that space you must not only power that side’s booster, but also pass the gas on to the next side using the t-junction pipe. Don’t worry: this is one of the later levels; the early ones are much, much easier.

I can’t really comment on the learning curve personally – I took to the idea like a squirrel to nuts (…), but elements like pipes, chimes, and cogs of different heights and sizes are introduced gradually so as not to overwhelm the newcomer. I’ve gotten my parents and aunt to try the game out – they all loved it by the way – and while it took them longer to get used to the idea than me, once they got past the first few puzzles, new tiles and ideas didn’t seem to faze them at all.

I feel I should probably explain this second picture also. Here you have to coerce the device into playing a specific tune, which you can preview by clicking the bottom-left button. You do this by aligning gears with different arrangements of notches on them with the bells’ hammers, then switching them in and out to sort out the timings.

It should be emphasised here that puzzle games really aren’t my forte, and yet I really enjoyed the time I’ve spent playing this game. There’s something much more compelling here that other puzzle games should take note of. You’re not just completing puzzles on the same, bland, 2D board over and over for points, you’re making something that does something. There’s no set goal, you need to figure it out for yourself. That’s the magic here.

You’ve probably got the idea by now, so I won’t explain this one. Instead I’ll talk about the graphics. You can judge for yourself, but I think they complement this game well. They aren’t stunning, there’s no real flair in the design or execution, and some of the contraptions could have been more interesting, but the graphics are functional, pretty, and will run on a pretty low-end PC. I certainly can’t fault them, and don’t get me wrong, they may not be thrilling, but they are nice: pipes shine, wood is dull, brass looks polished, and steam looks like steam. One thing I would have liked to have seen are more interesting backdrops, though I think this might have detracted from the game’s aesthetic unless properly executed, and it would certainly have pushed back performance on low-end machines.

As I hinted just now, not all of the contraptions are as interesting as those described above. Many of them are simple shapes with devices planted around them, or even flat panels with items on one or both sides. I really would have liked to have seen more rockets, flying machines, trains and cars. Larger devices would also have been very interesting – perhaps multi-level devices that you can see materializing as you construct them in intricate detail. Hey Lazy 8 – Cogs 2?

Still, this was a very interesting game, and well worthwhile playing. Just to feel that way about a puzzle game is a novel experience, and I highly recommend you pick this up if you have any taste in games – be you casual, hardcore, mainstream or hipster. C’mon, you can pay whatever you like if you go for it within the next couple of days. Don’t miss out.

Belated History Poke

Well that week went by quickly. I’ve been considering renting some sort of server to host this blog and any files I want to put up for download, especially since wordpress here won’t let me embed .swf files in my posts or elsewhere. I won’t be getting around to that immediately though, so for now I’ll just post a link to my old kongregate profile.

Here you can find the three large flash game projects I completed in the last few years before I came to university.

UFO: Noir was the first large game I released. This began with an experimental control mechanism that I pieced together during a spare moment in highschool. A lot of people found the controls frustrating when coupled with challenging levels, but I’m still rather pleased with the variety of obstacles I came up with for this concept.

UFO: ATK began as another experimental control mechanism, this time for a sidescrolling shooter. Since the controls and theme were similar, I decided to make this a spinoff of UFO: Noir. I recently played this through again, and I will concede that the controls are frustrating at first. Once you learn to aim, however, it feels fairly natural, and the bosses are rather shiny!

Jetpack Paladin is the latest. I went for a retro theme with this game and really put my back out making pixel art, tiles, interesting enemies, epic bosses, and tons of levels. It took the best part of a year to put together alongside my college studies and other hobbies, but the reception was ultimately disappointing owing to the difficulty level and amount of dialogue. Still, if you go into it expecting a story based action-adventure-platformer with some challenging levels, I think you’ll be pleased.

I have a couple of other things I’d like to mention, but I’ll leave that till another post.