I’m back and ready to update everyone on what’s been happening since I went to Japan last month, which was an awesome holiday where I got to go to the cities of Tokyo, Kyoto, Osaka and Sendai, with highlights including seeing foxes at the Zao Fox Village, walk around Akihabara’s arcades, game and electronic stores, dressing up as a Samurai, going to the Ghibli Museum and Nintendo’s Old Headquarters! Despite being in very humid weather, and both my sister and I carrying our bags from hostel to guest house to hostel almost every night, we were able to see so much and yet miss out on quite a lot. We talked with other travellers and heard about seeing Mt Fuji and Sumo Wrestling in Nagano among others, but I think I can see them another time.
Around the same time I was in Ireland was the 4th GBJam, a games jam where all games made had to fit to the graphical and audio limitations of the original Gameboy. People who follow me might remember the previous GBJam where Galaticus was developed, and did surprisingly well in the voting period where it got in the top 20 overall, and top 5 in the gameplay category. I really enjoy gbjam for the simplicity of the challenge and the creative games that come out of it.
So when thinking of game ideas, I thought I’d add my own theme in the game by making it Irish themed, and so some of my friends joked about their being a lot of drinking or potatoes, the usual TV stereotypes. While I didn’t want to go down to offending locals, I figure the setting of an Irish pub would do nicely, and for some reason the idea of the Irish Red Deer beating up other local animals came into my head, which lead to Kilkenny Pub Brawl.
The idea was a One Finger Death Punch style fighting game, where drinking alcohol helps you last longer, but makes it visually challenging the more you drink…kind of like drinking in real life. This was achieved in the game’s framework, HaxeFlixel, using the FlxWaveSprite to create a disorienting wave effect, however this wasn’t easy to include the way I wanted to. I wanted to apply the entire effect to the bar setting in the background, but I also wanted the bar to have parallax scrolling using the FlxBackdrop (see left), but because of how HaxeFlixel is structured, you cannot simply include one or a group of FlxBackdrops to work with a FlxWaveSprite, as either you get no wave effect, or a wave effect but with no scrolling whatsoever (see bottom right).
However after a single night of hard work, coding with assistance from Twitter in a hotel a few miles from Dublin, I managed to achieve the effect with the use of an external FlxCamera being used to render the FlxBackdrops, and then the entire scene being copied into a FlxSprite which held the image data that is used by the FlxWaveSprite. Half of this trick is explained in an official HaxeFlixel Tutorial but I’m also giving shoutouts to Tim Hely and Nazywam for their suggestions which helped lead me to the solution for the other half.
While the parallax background was done in Photoshop, being a graphics tool I’m quite comfortable with, I also decided to try a more specialised pixel art tool for the character animations. This is where I used Piskel, which has a really comfortable interface and several features that make handling pixel art and animation really easy, such as managing your own palette, mirror drawing, as well as exporting as a HaxeFlixel ready spritesheet or an animated GIF.
While I managed to get as much art, audio and gameplay in, I did struggle in some areas as the deadline drew near, even with the surprise 24 hour extension. I was hoping to add some foreground wave or glitch effects to the enemy sprites using a similar technique the background used, however neither the FlxGlitchSprite or the FlxWaveSprite were acting friendly with the enemy class I developed, especially when the effect’s strength value was being adjusted in runtime. I couldn’t even include a proper death animation to my sprites without some thrown exception or the sprites being properly killed afterwards, so they simply vanish.
Despite those nightmares, I enjoy the final game. It’s silly, I got to achieve some creative effects and I had some fun with the concept. This may probably be another game which I would like to spend a day touching up and updating to make it work better or include it to more platforms, as the game is currently playable on both Flash and HTML5.
With that said, I’ve also got some more things coming up, such as Ludum Dare but also a new job, as I’ve since Graduated and moved into the realm of professional work, so I was fortunate enough to be offered a Junior Programmer job, which as far as I can tell will still allow me to work on my own personal game projects as they would not compete with the company.