Gonna Catcha v.0.8 Post-Mortem (Oh no, somebody catch its spirit!)

Gonna Catcha is gonna be shown in the Arcade at the Bit Bazaar Winter Market on December 7 (the day after this post was originally published). Being an arcade-style game played in an arcade-style environment; Gonna Catcha will be put to the ultimate test in its own element. I’ve been working hard to get it polished up for public playing. Here’s a list of changes and improvements I made between v.0.7.4 and v.0.8.2:

High Score Tables and Name Entry

Your name registrated

This is no doubt the biggest change to the game since the latest update.  Instead of only keep track of one high score value, Gonna Catcha now keeps track of twenty high score values: the top ten for single-player and the top ten for co-op.  Not only that, it also keeps track of the highest round reached for that playthrough and, of course, the player’s initials, so that your valiant efforts will be remembered forever for future generations to admire, until someone bumps you off the list. Hmm, better stock up on quarters and snacks.

AAA – the undisputed champion

Instructions Screen

Crash course in spirit catching

As I mentioned earlier, Gonna Catcha will played in an arcade-style environment at the Bit Bazaar. As such, players won’t be able to read the manual to figure out how to play the game. Heck, they won’t even get the luxury of instructions printed on a cabinet. Sure, I’ll be there to help people out if needed, but frankly, after explaining the rules to the many new players to the game in previous playtesting sessions, I’m getting tired of it.
To minimize confusion and delay, I added the above instructions screen, which is shown just before the first round starts. This explains the basic rules and goal of the game: what you can touch, what you can shoot and what the heck is going on. The game’s “hidden” rules can be learned through experience. Hey, at least I’m not charging anyone multiple payments of 25¢ to learn the game by trial-and-error.

The Fourth Maze and Endless Play

How high far can you get?
After much procrastinating, I finally added a fourth and final maze to Gonna Catcha. This also means the game can finally be played endlessly, as it was intended to. Rounds 1 to 16 have a fixed distribution of spirits and pretas. Beyond Round 17, however, the distribution of spirits is randomized for each round, likewise with which pretas decided to show up in a round. In addition to that, spirit and preta movement gradually speeds up each time the maze changes after Round 17. Speaking of rounds, next we have…

Rearranged Rounds

I’ve probably played Gonna Catcha more than anyone else in the world, and because of that, I’m probably the most likely person to get bored of it. One problem I’ve noticed in my playtests is the round progression. Originally, you needed to play four straight “regular” rounds of spirit catching before you hit the bonus round, and then afterwards the maze changes and the cycle repeats. In all my playtest sessions, I was playing co-op with another player, and I felt fatigued at the fact that I had to endure four rounds of pretty much the same gameplay before two major gameplay changes happen one after the other. It’s not as bad in single-player because the character you control, and therefore the gameplay, alternates between rounds. Still, I knew something had to be changed for the sake of co-op mode.

The solution was simple: in each existing set of five rounds:

4 regular rounds → bonus round → (maze change) → rinse and repeat

I just moved the bonus round into the middle, i.e.

2 regular rounds → bonus round → 2 more regular rounds → (maze change) → rinse and repeat

This way, instead of having two major changes to gameplay every four regular rounds, now there is one major change for every two regular rounds. Hopefully by spreading out the changes, it will make the game more interesting to play for longer.

Pause Function

ザ・ワールド!時よ止まれ!*
One minor annoyance I had with Gonna Catcha while playtesting it was that I couldn’t pause the game when the other player had to attend to something else for a moment. After all, why would I need to put a pause function in an arcade game? There’s no time for pausing in the arcade business, time is money. However, since I’m not really interested in extorting quarters and attention from people in exchange for making it on the high score list, and the fact that I’ve already violated a few limitations and conventions of early-1980s arcade games, I decided to put a pause function in the game for the sake of convenience. Actually it was more like taking he pause code from Rise & Fall (shader and all) and plopping it into Gonna Catcha, hence the black-and-white blurry effect.

*ZA WARUDO! Toki yo tomare!

(Yes, it’s actually “Toki yo…” not “Toki wo…”.)
Copyright © Quadolor Games. All rights reserved.

Two-player action!

This week, I switched gears and went back to mainly working on Gonna Catcha, in particular the co-op mode. Things have been more difficult than I imagined. You’d think that with a game that screams “CO-OP GAMEPLAY!!! (Oh, and you can play solo too.)” I would have designed and coded the co-op part first or at least made the single-player mode in a way that would be easily expanded to co-op gameplay.

Well apparently I didn’t.

For the sake of simplicity, I designed and coded many of the features in the game around the single-player mode. It turned out that the code was so intimate with the single-player mode that it made coding the co-op mode difficult. To give you an idea of what I had to do, I pretty much had to tear out the code for various features from the game, smack the co-op version of that code onto them, then shove them back into the game. The results seem to be working so far, aside from a few hiccups:


But now the code design isn’t as pretty. Oh well, so much for my idealism.  It probably won’t matter in the end; I don’t think Gonna Catcha is resource-intensive enough for a few pieces of unoptimized code to have any impact on the performance of the game. When the co-op mode is working properly (for the most part), I’ll upload a video it, but for now, I give you the above. 

In other news, there was some footage of a “whoopsie doodles” in the development of Rise & Fall that I forgot to upload last week. I think this is a rather common graphical glitch, but I find it amusing nonetheless:

Copyright © Quadolor Games. All rights reserved.

Where Is That Thing You Were Working On Several Weeks Ago Now?

Okay, I’ve held off publishing this post for two days now, time to stop writing and actually do it.

(But there just this tiny little thing I want to ad-)

Nope. We’ve live. Wait, who are “we”? I’m talking to myself again. Anyway…

On this episode of Where Is That Thing You Were Working On Several Weeks Ago Now?, or W.I.T.T.Y.W.W.O.S.W.A.N.? (“Witty Woss Wan”?), we have a gander at Rise & Fall. You know, the thing I worked on as part of the team Robots Mashing Keyboards for the ROM Game Jam. (Oooh, that thing.)


Quite a few things have been added or changed since the ROM Game Jam prototype. The biggest change is the inclusion of jump-through platforms (i.e. platforms that can be passed from below but not above). The original prototype only had completely solid platforms, but to have a greater number and density of platforms in the level, my team decided that we need to have jump-through platforms as well. Seeing how something like this should be Game Programming 101, I should have learned how to do a long time ago, but never did until now. Still, I had to learn it from the source code of this demo by Bill23. Even then, it took me two attempts to get it working right. Other changes are relatively minor, such as adding mercy invincibility, or bug fixes. We will also be changing up some the graphics and adding more levels before the playtest session at the ROM on October 19.

During the development of Rise & Fall, I had encountered the weirdest glitch I’ve ever seen in all my time using GameMaker, even weirder than the ones I’ve seen while working on Gonna Catcha. Furthermore, I don’t think it was (entirely) my fault:


It looked as though GameMaker didn’t rebuild the asset cache after I deleted some objects from the project, so the game ended up drawing the wrong sprites and even creating the wrong objects (i.e. the projectiles seemed to have been replaced with experimental wall section object I had been working on). Clearing the asset cache and rebuilding the game once more fixed everything.

Speaking of Gonna Catcha, nothing visually interesting has happened with it since the last update, so no video or screenshots for you. However, I did completely overhaul how the game handles round progression, now incorporating the NPC speed multiplier I talked about last time. Alright, that another task down for Gonna Catcha, what left? I really should make a list of these things.

Copyright © Quadolor Games. All rights reserved.

They’ve gone to plaid!

Today is the Mid-Autumn Festival and also various other full moon-related holidays in other parts of the world.  I thought it would be appropriate to post something about Gonna Catcha today because:

Mid-Autumn Festival –> harvest festival –> harvesting of souls –> psychopomps –> Pohena and Donum
Full moon –> werewolves –> wolves –> Pohena and Donum
Q.E.D.

Actually, I lied; this has nothing to do with any holiday, it’s just a coincidence. Anyways…

A week ago I posted a video of gameplay from the playable alpha of Gonna Catcha, and since then I’ve gotten some useful feedback and suggestions. One of them was the to increase the speed of the spirits and pretas as the game progresses. I thought this was a good idea, so I did just that: put in some code that allows the game to scale the enemy movement speeds:


16x speed is the maximum the game can handle; any higher will cause the spirits and pretas to break free from their imprisonment of the maze and shoot off into oblivion. However, anything higher than 2x just becomes too difficult and frustrating to play (even 2x was pushing it for me).
With this, I now have two ways of increasing the difficulty of the game:

  1. Increasing the speed of NPCs, and 
  2. Increasing the number of NPCs required to be captured and avoided in a round.

With the former, I think I won’t have to rely on the latter as much to scale the difficulty as the game progresses, I can ramp up the latter much quicker and make the early rounds less boring.


P.S.  On a serious note, today is also a sad day with the passing away of former Nintendo president Hiroshi Yamauchi: http://www.bbc.co.uk/news/technology-24160150
As someone who started gaming on the Famicom and Game Boy and now the owner of a Wii U and 3DS, this news hit me hard. May he rest in peace.

Great, now I feel awkward for publishing this post today.

Copyright © Quadolor Games. All rights reserved.

Alpha demo gameplay video thingy

The part of my brain that comes up with clever titles is out of office today.

After some thought, I’ve decided to make the Gonna Catcha playable demo a closed alpha for testing purposes, as I think it’s still too early for me to throw the game up on the internet for open testing.  As a consolation prize, here is a video of the playable demo in action:

So what else do I need to do to move this game from alpha to beta?  Well let’s see…

  • More rounds. Which maze the round takes place in and the number of spirits, rocks, preta and bonus items (in bonus rounds only) in it are manual determined by me for each round, rather than determined by some algorithm. Even though the game will have 256 rounds, I’m only going to create round data up until a certain point, then either start repeating the last few rounds or randomly generate round data to fill in the rest.
  • Co-op mode.  It might have modified round data compared to single-player mode to balance the game.
  • Attract mode. How else will you know how to play the game?
  • High score table
  • Controller support
  • Bug fixes and code optimization.  Even when I thought I’ve squashed most of the major bugs in the game, a new challenger appears:

And here are the features that would be nice to have, but not entirely necessary:
  • CRT shader. The game is setup up to use it, but it’s no longer a required feature to me anymore.
  • Demonstration cutscenes. Whether or not I need these will depend on how much info I can cram into the attract mode.
  • Bezel art. Artwork to put on my virtual arcade cabinet.
Well, looks like I’ve got my work cut out for me. …Wait, haven’t I already said that before?
Copyright © Quadolor Games. All rights reserved.

Home stretch to the playable demo!

The last gameplay video I showed of Gonna Catcha was kind of boring since it only showed the game at it’s easiest (since I only wrote the round data for the first few rounds). Yesterday, I uploaded a new video showing the latest version of the game played at a moderate level of difficulty, moderate-hard for the bonus rounds: 
Some changes since the last video:
  • All the pretas (“ghosts”) are now in action, each with their own unique behaviours:
The Hungry Ghost will seek out and consume any items it finds.  If not, then it will just wander around the maze aimlessly.
The Vagrant Ghost prioritizes shelter over hunger.  It slowly drags itself towards the shelter or jail.  Once it gets there, it will enter the shelter/jail and scare away/release two spirits (who go back into reserve), disappear for a while, then respawn to repeat the process.  The player can shoot the Vagrant Ghost to temporarily chase it away from the shelter/jail.
This guy, the Vile Ghost, is new.  Like the Hungry Ghost, it will seek out items and consume them. However, unlike its gluttonous cousin, it will chase after the player if it can’t find any items.  They are mainly found in Pohena rounds as an implacable danger much like evil spirits are to Donum.  The good spirits’ slowing effect on Pohena makes it easier for the Vile Ghost to catch up with her, so better stay away from all of them.

  • Re-evaluated the point system.
  • Implemented a “three strikes” system in regards to shooting good spirits.  If the player (as either character) shoots a good spirit, they will be penalized:  -500 points for the first offence, -1000 for the second and one life for the third.  The strikes reset whenever the player loses a life.

The only thing the game needs before I release it as a demo are additional mazes and data dictating what spirits and preta spawn for each round. The end is in sight!

In other, related news, I made a few updates to the Gonna Catcha and related info pages…

…and here’s a black wolf staring into your soul…

“You should be drawing more.”
… and a white wolf who somehow managed to clone himself accidentally:
Copyright © Quadolor Games. All rights reserved.

ROM Game Jam Day 3 Report – “Rise & Fall”

The ROM Game Jam is over and my team, Robots Mashing Keyboards, actually managed to create a fully-functioning game prototype by the deadline.  The fruits of our labour is Rise & Fall, a 2-player dueling action game based on two ancient cultures (which was the topic of the jam).

In Rise & Fall, one player takes the role of  Roman soldier while the other takes the role of an Egyptian soldier…
…who fight by launching projectiles at each other.  They each have four broken artifacts on their side of the arena.
If either player gets hit three times, they “die” and the opposing player gets a point. Each point half-fixes one of the player’s artifacts.  In the picture below, the pottery on the Roman (left) side is half-fixed.
When an artifact is fully repaired, it can interact with foreground objects, i.e. players are impeded by and can stand on it and it can block projectiles.
When an artifact is fully repaired for the first time, it’s name pops up on screen so you’ll know what it’s called and you can recognize it when you see it at the Royal Ontario Museum (that was their idea, by the way).
To win, a player must attain nine points: eight points for a full set of repaired artifacts…
…and the ninth point from the “coup de grâce”.
To the victor, goes his/her soldier running across the screen.
Here is a breakdown of who did what for Rise & Fall:
Idea guys (Game concept):  All of us
Pencil-, paper- & pixel-related tasks (Concept art, pixel art):  Shmuggly, Goombaguy

Computer keyboard masher (Programmer):  M.S.T.O.P.

Electronic keyboard masher (Music and sound effects):  M.S.T.O.P.
With us in spirit:  Saffy

We received lots of positive feedback from other jammers and, to my delight, the archaeologists that were helping us with the historical details of the ancient cultures we were making games about.  They all got really into it.  Also, due to all the hubbub in the room and the crappiness of my laptop speakers, the game’s music wasn’t heard very well. Here it is for you listening pleasure:

So what’s next for the game?  Well, the Royal Ontario Museum said they would like to demo all the games made at the game jam to museum patrons in October, giving us two months to work on and polish our games further.  Given the positive feedback we received, we are interested in pursuing this further. During the playtesting, we found a few bugs and gameplay balance issues that need to be ironed out, so it looks like we already have an idea on how to move forward with the project.  🙂
Copyright © Quadolor Games. All rights reserved.

Congratulations! Your game has evolved into Alpha!

Up until today, Gonna Catcha was nothing more than a collection of protoypes, loosely connected together and couldn’t work together as a whole game without changes to the hard code. 
Well that ends today. 
I’ve taken care of all the little things and filled up the holes to make Gonna Catcha a playable alpha (yes, I know I’ve called the previous versions of the game “alpha builds”; in hindsight I think that was jumping the gun a bit). It still has some game-breaking bugs, but at least the game progression is there now:

And just in time for Ghost Month, the 7th month of the lunar calendar, which starts tomorrow I believe. According to the various superstitions surrounding Ghost Month, I shouldn’t be working on Gonna Catcha at all for the next 30 or so days, unless I want to be pestered by evil spirits.  Well, if anything goes wrong in the coming month, such as me losing all my work or my computer catching on fire, then I’ll have a convenient scapegoat:

lolololol
On the 15th day of Ghost Month is the Ghost Festival. During the festival, the Heibai Wuchang 黑白無常, the Black and White Guards of Impermanance, supposedly appear and give people free money.  Depending on your cultural background, you may know them by different names:

  • Fan Wujiu and Xie Bi’an, 范無救  謝必安
  • Qiye and Baye, 七爺 八爺
  • Da Boye and Er Boye, 大伯爺  二伯爺
  • Pohena Das and Donum Dono 魄伊娜・達斯  當納睦・當儺
OK, I made that last one up. 😛
There’s more to Ghost Month and the Ghost Festival than that, but I’ll save it for another day. Also, the ROM Game Jam is next weekend; I need to brush up on my HTML5 GameMaker skills.

P.S.  I updated Gonna Catcha’s info page with a new screenshot and the video above.

Copyright © Quadolor Games. All rights reserved.

You have encountered Abstract Art.

Has it been two weeks already?  Tracking the Steam Summer Sale and playing around with shaders in GameMaker: Studio can really make you lose track of time.
Sometimes I tweet stuff on Twitter if the aforementioned stuff isn’t substantial enough to be turned in a full blog post.  If you haven’t done so already, you can keep track of those tweets on the sidebar on the right side of this blog or follow me on Twitter.
If you have been following on Twitter, then you’ll probably already know that I signed-up for and got into the ROM Game Jam, the first ever game jam to be hosted by the Royal Ontario Museum (ROM) in Toronto on August 9-11.  I am part of the same team that was making That Which Binds Us.  I say “was” because we’re focusing our efforts on the ROM Game Jam now, so That Which Binds Us has been put on hiatus for now.
Another tweet I made was about shaders.  Wait, I already mentioned that above. Anyway, I downloaded some shader scripts from this forum post on the Game Maker Community forums and, just for fun and curiosity, applied them to Gonna Catcha‘s drawing code. Although it wasn’t its main purpose, but the graphics code modifications I had previously done also allows me to apply a shader to the entire screen, but I wanted to do that anyway.  Two birds with one stone I guess.  

Here are the results of my shader experiment:

Once you’ve regained your composure from watching the trippy and completely unnecessary graphical effects, you may notice something new in the video.  The game randomly places rocks in the maze that act as destructible walls. (Rocks?! I thought they were just blobs!) This is to slow the player down and allow the spirits to better disperse throughout the maze.  However, the rock impede the spirits as well, making the whole thing kind of pointless.  Of course, they’re spirits; so my plan B would just have them, you know, pass through the rocks unimpeded. Preta can stay impeded by rocks, being corporal beings like the players.

One other big change I made to the game that might not be obvious in the video is the player movement code/rules.  Previously, the players had free movement; now their movement is restricted to the grid much like the spirits and preta are.  I did this to make turning around corners easier for the players. My previous solution had the players snap to a corridor if they were “close enough” to turn into one; it looked a bit weird and was a bit finicky.

Re-writing and messing around with the movement code did produce some amusing bugs in the process, something that hasn’t happened in a while.

(Wow, this post was longer than I thought. And I was worried that I wouldn’t have anything to write about! Harumph!)
Copyright © Quadolor Games. All rights reserved.

Well isn’t this a motley crew of small updates.

In the past two weeks I’ve been mainly doing a little work here, some more over there and a tiny bit all the way over there.  The updates are a bit difficult to stitch together into a coherent theme for a post, so I’m just going to list and itemize everything.

Item #1

Implemented the Hungry Ghost enemy into Gonna Catcha:

It’s current behaviour has it wander aimlessly in the maze like the Wandering and Straying Spirits.  However, if there is an item in the maze, it will move towards, consume it and then resume wandering and feeling remorse.  Also, you might kick yourself for not grabbing the item first. The Hungry Ghosts are harmful to touch at all times; they can be stunned or knocked out for a short period of time, but they cannot be captured, so they remain a permanent fixture in some rounds.
Item #2
Modified some of the rules for Pohena rounds:  if Pohena comes into contact with a good spirit, her movement speed will be reduced until she is no longer touching one.  They will slow her down enough for evil spirits or preta to catch up with and kill her.  Hopefully (or disappointingly for Pohena) this will make good spirits more of an obstacle as evil spirits are for Donum.
Item #3
New music for Gonna Catcha: Bonus Round!

Item #4
Rewrote some of the graphical and garbage-collecting backend code. The new graphics code fixes some minor graphical glitches that occur when upscaling the game window.
Item #5
Updated various parts of the blog:
  • The rules section on the Gonna Catcha info page has been updated with the info in Item #2.
  • The descriptions of the non-player characters from this post are now on their own page, with the addition of the two new spirit types and slightly updated artwork for the spirits.
  • Rearranged some stuff on the sidebar on the right.
THE END
Copyright © Quadolor Games. All rights reserved.