Showing posts with label Gonna Catcha. Show all posts
Showing posts with label Gonna Catcha. Show all posts

Friday, July 18, 2014

Gonna Catcha: Steam Greenlight and future plans

I'm pleased to announce that Gonna Catcha is now on Steam Greenlight! If you would like to see the game on Steam, be sure to vote "Yes" on the Greenlight page.

In light of this occasion, I've fixed up the trailer for the game:



Regardless of the status of the game's Greenlight process, I plan on restarting development on Gonna Catcha some time in the future, adding new features and game modes. Here's a summary of what I plan to do:

Score Attack mode


Gonna Catcha's current gameplay has you play through a series of increasingly difficult rounds to see how far you can get and what is the highest score you can reach. In the planned Score Attack mode, you'll play only one time-limited round to try to get the highest score possible. My plan is to make it come in three flavours:

  • Single-player: one person plays, self-explanatory.
  • Co-op: two people play as Pohena and Donum, working together.
  • Versus: two people play as the same character (two Pohenas or Donums), working against each other.

Change in Graphic and Audio styles

Currently Gonna Catcha sports an art and audio style defined by limitations inspired by the Namco Pac-Man hardware. While it has it's own charm, I am prepared to push these limitations higher, perhaps forward half a decade to turn it into something from the latter half of the 1980s. (My baseline is a style like Bubble Bobble.)


Additional Mazes

The game in its current state has four mazes spread across 16 rounds, which cycle endlessly. I plan on adding new mazes to the game, though I still have to figure out how these new mazes will fit in with the current game progression.

Friday, April 4, 2014

Eaten... by some... Linux, or something.

Gonna Catcha v.1.1.1 has been released! And much sooner than I expected. This version also marks the first release of Gonna Catcha on Linux (so far only tested it on Ubuntu-based Linux Mint).


Minty fresh.

On the technical side of things, I overhauled the graphics code to make the game's codebase compatible with GameMaker: Studio 1.3. Up until release, Gonna Catcha was written with GM:S 1.2. When I tried to run the game in 1.3 (which was released as a beta) for the first time, I was greeted with this:


Gonna Catcha is now F2P.
You get the other 8/9 of the screen as paid DLC.
$10 for each ninth.

One of the big changes in 1.3 was the major changes to how it drew stuff on screen. I naturally assumed that the update broke my graphics upscaling kludge code.


Since I had read that the changes to the drawing engine in 1.3 made it much easier to upscale graphics pixel-perfectly and therefore made my workaround obsolete, I decided to rewrite Gonna Catcha's graphics code in accordance to the new method of upscaling.

About an hour later, I had finished the rewrite. I tried running the game again, hopeful that the problem was solved:

*cue losing horns*



Thank you internet!

Well, that was a bust. The 1.3 update didn't break my old graphics code after all. After another hour of probing my code, I finally found what was causing the problem. It seems that the function that toggles between windowed and fullscreen modes was preventing the window size from being changed. Not knowing if this was a bug or feature at the time, I just implemented workaround to get around it. Yes, I wrote out a workaround from my game just to write in another workaround. Based on other people's reports on the problem, now I'm beginning to think that it's a bug.


The rest of the updates are just bug fixes and interface improvements:
  • Fixed a bug where movement keys would get "stuck" if they were pressed or released while the game was paused.
  • Fixed a bug where lives were not being counted correctly after one player borrows a life.
  • Factory Reset now properly resets [Borrow Life] for both players.
  • Default key for [Borrow Life] (Player 2) moved from the 2 key to the 9 key (only takes into effect if you install a fresh copy of the game or do a Factory Reset).
  • Credits screen can now be exited by pressing any key or Start, Back or A on a controller (formerly just Esc).
It seems that by solving one big problem, the life-borrowing mechanic create a few small ones. Also, I moved the default key that allows Player 2 to borrow a life from 2 to 9 because it didn't make much sense for it to be on Player 1's side of the keyboard.

Thursday, March 27, 2014

Hey buddy, spare an extra life?

Gonna Catcha 1.1.0 is out now! Short version, here are the changes since v.1.0.0-B:

  • Added life-borrowing in co-op mode. If one player has lost all their lives but the other has some in reserve, then the first player can borrow one and resume playing the current round.
  • Added "Online Help" in Service Mode. Opens an online copy of the documentation in a web browser.
  • When player(s) die due to the timer expiring, their spirits-in-hand are released one at a time instead of all at once. This makes it consistent with the game's other death scenarios.
  • Background music in tutorials now loop.
  • Reduced startup time for Preta tutorials.

Looooooooong version...

  • Added life-borrowing in co-op mode. If one player has lost all their lives but the other has some in reserve, then the first player can borrow one and resume playing the current round.

In many of my co-op mode playtests, I would often see the following scenario: one player would lose all their lives quickly due to inexperience while the other managed to keep on trucking and finish a round by themselves, allowing the other player to come back. However, the first player would lose their "continue life" very quickly and would have to again wait for the other player to beat the round by themselves before they could come back. And the cycle repeated. This seemed like a very boring and passive experience for the inexperienced player, but at the time I couldn't think of a way to alleviate it.

It wasn't until it happened again a few days after v.1.0.0-B was released, during a playthrough with me playing with someone new to the game, that the solution came to me: allow life-borrowing between players. It was so simple and done many times before in other games; I was surprised that I didn't think of it sooner. Now if one player loses all their lives, they can borrow (read: take) a life from the other, provided that they have extra lives in stock, and continue to play the current round.

But take note, just because you have the opportunity to borrow lives doesn't mean it's always tactful to do so. If one player borrows a life and then both players finish the current round alive, the player that borrowed a life won't get a "continue life" in the next round (or the "single point of shame"), because they are only granted to players in a "game over" state, i.e. is dead and have no lives remaining. So think carefully about the pros and cons before you borrow one of your partner's lives. Or not.



I added this to future-proof the game, if I decide to bring the game to platforms that don't allow or don't have easy access to an external manual file on a local drive, e.g. HTML5, Steam Workshop. It also adds redundancy for the platforms that have local help files, which is... good.... in this particular case? I think.


  • When player(s) die due to the timer expiring, their spirits-in-hand are released one at a time instead of all at once. This makes it consistent with the game's other death scenarios.

This was an oversight of a rare occurrence; the timer rarely went down to zero in all my playtests, so I didn't notice that a death in that case resulted in the (really) old spirit-releasing behaviour.


  • Background music in tutorials now loop.
Small bug fix.


  • Reduced startup time for Preta tutorials.

I noticed that nearly all first-time players skipped the first preta tutorial (the one after the first bonus round) by mistake. My best guess as to why this was happening is: there were several seconds of inactivity at the beginning of the tutorial, which made it look like the game was frozen or required some kind of player input to start. This lead to players pressing random buttons to try to "fix" the problem but it only lead to them skipping the tutorial completely and have no idea how to deal with the pretas. Hopefully by speeding up the start of the tutorial, I can prevent people from accidentally skipping it.

Thursday, March 13, 2014

Going Gold [Updated 3/14/14]

WARNING!!
A HUGE 80S-STYLE ARCADE GAME
GONNA CATCHA
IS APPROACHING FAST

That's right, Gonna Catcha is being officially released at the end of this week! Available now!


Woot!
Woot!
Woot!


It will be available on itch.io starting tomorrow (March 14, 2014).

Even though I did get the game working on an Ubuntu virtual machine (Linux Mint) a while back:


I still need to do some more work to prepare the game for distribution on that platform, so the game will be Windows-only for the time being.

Boo

What else...? Oh right, the issue of payment. The exchange of money for goods and services. Gonna Catcha will be available as a pay-what-you-want title with no minimum.

Yay!
Yay!
Yay!

Whoa, it's being a while since I posted here. I've been so busy getting Gonna Catcha ready for release that I haven't had the time to make posts. Well, I tried but the post got so long that I got bored of writing it.

There was a video I wanted to accompany another post I wanted to write, but I think I'll just show it here. During the development of the game, I noticed that the attract mode demo would end in one of two outcomes seemingly at random, despite there being only one set of input files and a fixed seed for the random number generator. Eventually, I discovered what determined which outcome would occur, whether controller input was enabled or not.

WAT
WUT
HI



LOL
LOL
That was okay.

I did fix a bug that allowed a player to control/interfere with the attract mode demo using a controller, but this glitch didn't go away. Here's the kicker: even non-deterministic elements of the game, the ones influenced by the RNG, i.e. the paths the Wandering and Straying spirits take and the random item that appears near the bottom of the maze are also different between the two outcomes, even though the RNG seed was fixed. Oh well, I think I'll leave it in; it gives the game character.

Can we go now?
No
Nope
Aww

Thursday, February 20, 2014

Excellent, it's all falling into place.

Gonna Catcha 0.9.2rc is available for download. The "rc" is for "really cool!". Actually, no, it stands for "release candidate", meaning it's ready to go, barring it destroying the world in the next few days somehow. You can find the download link on the game page.

For now, the download is only available on IndieDB because I got tired of Comodo Dragon (Chromium-based) and Internet Explorer (lol) telling me the downloads from my domain (quadolorgames.com) and Dropbox are "dangerous" because they're new kids on the internet block. Firefox doesn't seem to care though.

I haven't had time to prepare a proper blog post to describe the release of v0.9.2rc in detail; I had been going out and getting people to playtest the game. And no, I don't feel like getting in a debate about whether this post is technically "proper" or not. In any case, I'll be making another soon, which will include something peculiar I've noticed about one part of Gonna Catcha.

While I wait to see if Gonna Catcha will trigger the apocalypse, I'll be focusing on trying to increase the marketability of the game. In other words, the description pages of this game on this blog and IndieDB are a mess and really need to be updated and cleaned up. That should be fun.

Sunday, February 9, 2014

Spit shinin' the ol' game, make 'er all nice and pretty.

Gonna Catcha v.0.9.1 is now available for download from the game's info page. It is largely a "polish" update; I'm tweaking things here and there to start finalizing the game. Here is a summary of what was updated:


Improved movement around corners, as discussed in my previous post.


Bumped up the score requirements for getting extra lives, from 20k/40k/60k... to 20k/50k/80k... I felt that getting extra lives was a bit too easy in previous versions, especially in the later levels where points are more abundant. Players are reminded of the requirements on the title screen.


Updated the user interface. If either player gets more than 5 lives, the lives counter just draws one icon and then the number of lives. (Shown in above screenshot, sort of. Just imagine a number beside Donum's icon on the lower-left.) Before it would keep drawing icons the more lives a player has, eventually intruding on the space of the round counter and the other player's life icons. I was surprised it took me this long to realize this problem. In addition to that, I've added small indications that appear when a player picks up a power-up item (P): "LOnG" for the first pickup that extends shot range, and "DBL" for the second that gives the player a double shot. Before this friendly reminder, the power-up item was the only item that did not obviously indicate what it does.


Rewrote the help manual and changelog as a Compiled HTML Help file (CHM). Now in colour! Images, links, and an index! Multimedia for the win! But seriously, the manual looks much better and easier to use now.


Lastly, I updated the "Starring" screen to include the new, and possibly finalized, Chinese names for the characters. This time I opted for a transliteration than is biased towards the pronunciation of each Hanzi rather than the meaning,, using this chart as a basis. 

Pohena Das: 波伊娜 ・ 達絲 (Trad.) / 波伊娜 ・ 达丝 (Simp.)
Mandarin (Pinyin): bo1 yi1 na4   da2 si1
Cantonese (Yale): bo1 yi1 naa4   daat6 si1

Donum Dono: 多南姆 ・ 多儺 (Trad.) / 多南姆 ・ 多傩 (Simp.)
Mandarin (Pinyin): duo1 nan2 mu3   duo1 nuo2
Cantonese (Yale): do1 naam4 mou5   do1 no4

The problem I had with Pohena's old name (魄伊娜) was that the Cantonese pronunciation for it didn't sound very nice (paak3 yi1 naa4), and being the Chinese dialect I grew up with, it was gnawing at the back of my head. It does work very well in Mandarin (po4) though and its meaning is relevant (魄 = "soul, spirit"), but still. As a compromise, her name is now 波伊娜. I had a similar problem with Donum old name; actually, it was much worse: 當納睦 ・ 當儺, dong1 naap6 muk6   dong1 no4. I also decided to simplify his name and came up with 多南姆 ・ 多儺. Fun fact: his last name, 多儺, can be interpreted as "many exorcisms of evil spirits". It would fit Pohena better, but meh.

I plan on rewriting the bio pages on this website, not just to update the names, but because the info on there is out-of-date. The lore of the Gonna Catcha universe has changed since I put that page up. I've also considered incorporating it and the other extended descriptions of the game linked on the game's info page to the manual. That will be part of my next update.

P.S. The Japanese transcriptions for their names are unchanged for now: ポイナ・ダス (Poina Dasu) and ドナム・ドノー (Donamu Donō). I don't know why I decided to put that out there.

P.P.S. Wish I knew something about transcribing to Korean Hangul... and Vietnamese.

Wednesday, February 5, 2014

Today: Improving movement around corners in Gonna Catcha. Tomorrow: Humour check-up

In my various playtests of Gonna Catcha, I have noticed that many players were having difficulty trying to turn at intersections, going from one corridor to another perpendicular corridor. The solution I came up with was simple, yet I still managed to write this whole blog entry about it, so here goes.

Gonna Catcha uses a smooth, grid-based movement system, as in, even though the players move smoothly, they will always be aligned with the grid that divides the play area when stopped. This is to facilitate players in lining up properly intersections and going around wall corners, instead of having the player painstakingly line themselves up with pixel-perfect precision. Even with this alignment aid, I've noticed in my playtests that players were still having problems negotiating those corners.

To explain this better, below is a figure showing five different cases where a player is approaching an intersection (click on it and any other figure to expand):

Figure 1. Five cases of a player approaching an intersection

The figure shows two horizontal corridors linked by an opening between them. In cases 1 and 5, the player is not aligned with the opening; in cases 2 and 4, the player is partially-aligned, and in case 3 the player is fully-aligned.

The next figure shows what happens when the player holds [Up] to try to move upwards in each case:

Figure 2. Results of holding [Up]

As expected, in cases 1 and 5 the player cannot move upwards since they are completely blocked by the wall; and in case 3, the player is free to move upwards since there are no obstructions in the way. The problematic cases are 2 and 4; where the player is partially obstructed by a wall, which for all intents and purposes counts as being fully-obstructed by the game. In most of my playtests, players end up in cases 2 or 4 when they try to turn too early, and they end up getting snagged in corners, which was a bit frustrating to them.

For a long time, I've thought about whether to fix this problem, or just leave it in as a "quirk" of the game's movement system that players need to get used to in order to get good at the game. Many games in the 1980s did have control schemes that had quirks or little annoyances that players needed to learn to in order to master them (I'm looking at you, Bubble Bobble, Ice Climber and Super Mario Bros.).

Wednesday, January 22, 2014

The end is nigh. Muwahahahahaha!

It is a joyous occasion; Gonna Catcha is now feature-complete. Everything I set out to do with the game is done aside from a few tweaks here and there. In v.0.9.0, I made two major sets of additions, along with some minor improvements.

The first set of additions are two additional screens in the attract mode. The first one is a brief introduction to all the characters in the game, and idea I borrowed from Mappy:

Meet the folks.

The game itself did not have any detailed depictions of the two main characters Pohena and Donum, so I put (relatively) large portraits of the two on this screen. Both still adhere to the 4-colour palette limitations of all sprites in the game, if you break them down into individual 8x8 tiles. (It was actually much easier to do than I imagined.)

After the introductions, the attract mode switches to a gameplay demo. This where the game's autoplay system plays back one of my attempts at beating the first round with both characters. As was the style at the time, the attempt was poor.

You suck at this game!
I'll buy YOU for a dollar!

The second set of additions are the tutorial sequences that teach players how to play the game, replacing the instructions screen in the previous version.

... ...

Yeah, I got nothing.

The tutorials demonstrate, by example, the basic rules of the game: what each player character's job is and what they can or cannot shoot. There are four in all; they are shown before Rounds 1, 2, 3 and 8.

Saturday, January 4, 2014

This game plays so good, it plays itself.

Welcome to the first post of 2014! I'll been working on the autoplay system (for the "How To Play" segments and the attract mode) for Gonna Catcha since the last time I posted. And since it's also been a while since I uploaded something on my Youtube channel, let's make it a twofer; here's a short video of it being tested:


As I was coding this, I realized that creating the autoplay system would have been a lot easier if I was using Game Maker 8.1 instead of GameMaker:Studio to make this game. That's because games made with Game Maker 8.1 could be coded to be dynamic at runtime. That is, you could add, remove or change graphics, sounds, rooms and even code while the game is running.

So what does dynamically-generated game assets have to do with the game playing itself? Well, the assets of interest in all of this are timelines, a series of code snippets that are run at assigned steps in time. Once a timeline is assigned to an instance and is set to run, it will automatically fire off the code snippets at their predetermined times. If I was using Game Maker 8.1, I could record player input to a file and then save it to the disk. Later, when I want to play the input back for demo purposes, I could read the data from the file, translate it into a dynamically-generated timeline and let Game Maker (and my player input code) handle the rest.

Unfortunately, due to cross-platform incompatibilities, the ability to dynamically add and change game assets at runtime had been restricted in GameMaker:Studio. In particular, most of the dynamic coding functions are gone. Fortunately, the all of the dynamic timeline functions survived the cut; well, all of them EXCEPT the function that allows you to ADD new code to a timeline. Without this function, this function, it is impossible to created new timelines with new code from scratch on-the-fly, pretty much destroying the above method of creating an autoplay system with a surgical strike.

In light of that, I tried to think of other ways to do this. First, I tried to record the player input into a human-readable format then manually translate and hardcode it into a timeline. However, this method was too tedious and took way too long to do, and if I wanted to re-record a play session, I would have to retranslate everything from scratch. Next I tried to build the timeline from scratch, but it was also too tedious since it was too hard to predict NPC movements, even though the random seed was fixed.

In the end, I decided to create my own timeline system. It's not as through or functional as GameMaker:Studio's native timeline system, as it can only take control of the player characters, but it'll do.

Tuesday, December 24, 2013

Holiday Post thing

Whoa, it seems like forever since my last post. Since the Bit Bazaar ended, I've been focusing my attention on many things, some regarding Gonna Catcha and some not. But there's no time to explain them all here, so I'll pick the most important one.

As I mentioned in my last post, Gonna Catcha was played in an arcade-style environment at the Bit Bazaar on December 7. Players weren't be able to read the manual to figure out how to play the game, as it wasn't available to them. So in an attempt to minimize confusion, I added the instructions screen below, which was shown just before the first round started.



Crash course in spirit catching.

It explained the basic rules and goal of the game, i.e. what you can and can't touch, what you should and shouldn't shoot and how to progress.

I didn't arrive at the Bit Bazaar when it started, so I might have missed some of the early birds playtesting the game. The first people I saw playing didn't seem to have too much trouble figuring out what to do, but as the day went by and more people played, it became apparent that the instruction screen wasn't doing its job very well. My guess that it was too brief and too detailed at the same time, and that confused people about the rules of the game. It presented all of the shooting and touching rules for each NPC type all at once, but due to the lack of space, the descriptions of each rules were too laconic. By the end of the day, I was back to my old ways, explaining the game myself and skipping the instructions screen, and things went by a lot smoother.

In retrospect, the instructions screen was more of a band-aid solution than a real fix to the problem. Since it was a bust, I figured that I need to go to Plan B, which is to use demonstration cutscenes to explicitly show how the game is played. As such, on my to-do-list I've promoted "Demonstration cutscenes" from "Optional" to "Necessary". I also grouped it together with "Attract mode" because the two have one thing in common: the ability for the game to play itself. But before I get into that,



INSTRUCTIONS SCREEN, YOOOOOUUUUU'RE FIRED!!
Or kicked upstairs, whatever.


Ahem. So anyway, I've started working on the new instructions delivery method: new tutorial cutscenes that will replace the old instructions screen. Here is a screenshot of what it looks like so far:


Don't fear him.


Essentially, it's just a half-size level that plays itself to teach new players how to play the game. And speaking of playing itself, I've also started on making the autoplay system too. I think I've got the playback system working pretty well, the recording system on the other hand, which is only here to help me record gameplay to be played back by the autoplay system and may not be part of the final product, has a few bugs to work out. For starters, it generated a 500+ MB output file when it was only supposed to be a few kilobytes in size.

I feel bloated... ugh.

The recording code is working much better now. I'll go into more detail about in a later post, because this one really needs to get out there. I don't know when, because it's the holiday season, with the whoop-de-do and hickory-dock. And don't forget to hang up your sock, 'cause just exactly at 12 o'clock, he'll be coming down the chimney, down.

P.S. Now that I think about it, Donum and Pohena bears some similarities to Sinterklaas and Krampus of Alpine folklore.  Krampus punishes naughty children while Sinterklaas rewards good children. Pohena and Donum does the same with spirits, according to the supplementary material.

Friday, December 6, 2013

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.


Thursday, November 28, 2013

High five! I mean, ten!

Last week, I updated Gonna Catcha to v.0.7.4. It was pretty much a knee-jerk response to some issues I encountered when playtesting it last night at Bento Miso. It added an option to toggle a fullscreen mode, to hide your desktop and other windows behind black while you're playing, and a few bugs fixes. Unfortunately, being a knee-jerk response, I didn't test it properly and there are a couple of bugs with the fullscreen mode, though the bugs don't interfere with normal game operation.

In addition to fixing these bugs, the next version, v.0.8.0, will replace the single high score of the current version with a high score table (or two). Here is a screenshot of what it looks like so far:


In addition to keeping track of the top ten scores, it will keep track of the other standard high score information: player initials and the highest round reached. I am considering a second, separate high score table for co-op mode, which will also keep track of which character the player used.

Well, that's all I can do to make this sound bigger and more important than it really is. I'll be doing another meatspace test this Friday. I should really try to finish this before then.


In other news, when I woke up today, I was greeted by this on /r/gamemaker:


As someone work mainly works with vectors for higher-resolution artwork (i.e. not low-res retro sprites), I am pleased by this turn of events.

Friday, November 15, 2013

More public spectacles


Gonna Catcha has been updated to v.0.7.3. This update added a new maze to the game, allowing me to bump up the round cap to 12. This also had the side effect of unlocking an enemy type that wasn't in the previous versions (because it didn't appear until Round 9). NPCs now also gradually speed up after each bonus round after you've played through each maze once. Oh, and there are some miscellaneous tweaks and fixed here and there, yadda yadda yadda.

I will be showing off Gonna Catcha in meatspace at Bento Miso on two occasions:


Since I enjoyed looking at and playing all the games that were showcased at the last Bit Bazaar in May, I thought why not participate this time? The Bit Bazaar offered two options: submitting a game as part of the Arcade or getting a table, which requires you to sell something physical as well (e.g., merchandise, Steam keys or preorders printed on something). Since this is my first time showcasing at the Bit Bazaar and I have no ideas for what to sell, I decided to play it safe and go for the Arcade submission. Perhaps I'll get a table next time. I'll get you next time , Gadget... next time.

Saturday, November 2, 2013

Greetings from Gamercamp!

It seems like a long time since I last wrote a post. Since I've released the beta demo of Gonna Catcha, I have been less compelled to write about it since it's much easier to learn about the game by playing it than sitting here reading about it. Also, I was going to post about the International Archaeology Day playtest session with Rise & Fall, but the post ended up being not very interesting on it own, so I'm going to combine it with the Gamercamp playtest session post I'll write about after Gamercamp, which is happening right now. Yay.

In the meantime, I suppose I can talk a bit about what was added to Gonna Catcha since it's release. Aside from several major bug fixes that somehow slipped through my keen eye, the biggest update to the game is the inclusion of several new options in the game's Service Mode (fancy arcade talk for "Options Menu").

Well, there's your problem.

I feel like I'm being very thorough with the amount of customization you can do with the game, and I haven't even put in the sound test or let the player customize gameplay settings yet.

During the development of the co-op mode, I had difficulty deciding how to bind the controls to what keys on the keyboard without the two player bumping their hands into each other. Also, what might be the ideal key bindings for co-op might not be for single-player mode and everyone has their own preferences on what the best key bindings are. In the end, I decided to let the player(s) figure out what controls work best for them and put in a key configuration menu.


UNLIMITED POWER!

This is the first time I've made a key binding system for a game and it turned out to be less trouble and error-prone than I imagined. GameMaker: Studio has built-in functions for rebinding keys, but I ended up creating my own solution.


With great power comes great responsibility.

I have received some feedback from people who played the demo. Aside from pointing out the bugs, most have praised the retro arcade art style and audio of the game, saying that it's quite accurate and devoted. One thing that came up was some people had trouble getting the game started because they couldn't find the "Insert Coin" key. So to help new players, I added "key reminders" on the title screen to help them get started.


I don't understand your crazy
moon controls!

I also made the list of default key bindings clearer in the manual (if people actually read that thing). for those acquainted with the controls, there is an option in Service Mode that allows you to turn the reminders off for a more authentic arcade experience.


Oh man. *tap* *tap* Which button is it?
*tap* *tap* *tap* *tap*

What would make it even more authentic is an entire arcade cabinet, but let's not get ahead of ourselves.

Wednesday, October 23, 2013

Gonna Catcha Beta Demo Released!


The wait is over.  I've released the Gonna Catcha Beta demo.  Download it from here.

In other news, I'll have the write-up for my experiences with Rise & Fall at the Ancient Arcade up soon.

Wednesday, October 16, 2013

You're going to make a public spectacle of yourself.

After some thought and playtesting of the co-op mode, I decided to move the beta release of Gonna Catcha ahead of schedule.  I feel the game is stable and complete enough to be playtested by a wider audience. The things I planned to do before I wanted to release the beta has now been moved to the "Beta → Release Candidate" list. What does that mean? Nothing really. Development will continue as it was before, it's just that there won't be a high score table or attract mode in the beta right away. Technicalities, blah blah blah. However, before I do release the beta, I do need to do a little bit of tidying and housekeeping to get the game ready (i.e. write documentation and make the interface a bit more user-friendly). Stay tuned to this blog for more information and a special TV offer! (Wait, no.)

Not to leave you empty-handed, here's a screenshot of the title screen:

Wait, do you even know how to write that on paper?

Gasp! It has a proper title in it now! After many changes and revisions, I've settled on "導魂使隊" as the Chinese-character title for Gonna Catcha. "導魂使隊" translates to, or at least what I want it to translate to, "team of spirit-guiding emissaries" or "team of psychopomp emissaries".


In related and coincidental news, Rise & Fall will also be making its public debut at the "ROM Game Jam: Ancient Arcade" event at the Royal Ontario Museum in Toronto on October 19, as part of International Archaeology Day. My team and I will be there from 1PM-3PM. So if you happen to be going to the ROM that day, feel free to drop by. This will be the first of a handful of planned appearances by Rise & Fall at a public event. Stay tuned to the blog for more information and we'll double your order absolutely free! Just pay shipping and handling. (Nah.)

Sunday, October 6, 2013

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:

Thursday, September 26, 2013

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.

Thursday, September 12, 2013

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?

Monday, September 2, 2013

A revelation

Alright it's a new day, let's fire up GameMaker: Studio and playtest Gonna Catcha to see what needs more work for a playable demo version.

...

...

...

Hmm, everything seems to be in order, no major bugs that I can see. Let's play it again just to make sure.

...

...

Nope, nothing. Hmm, any unimplemented features I need to implement?

New mazes? No, I already have two, which is good enough for the demo.
Extra life system? Nope, I already did that. Extra life at every 20 000 points.
Combining the double and long shot items in one "Power" item? Did that too.

Well, how about bugs? I know there were a lot of them that I needed to get fixed.

Losing lives in a bonus round? No, I changed that. Now you just skip to the next level if you die in a bonus round, no lives or powerups lost.
Aha! The powerups weren't being carried in between rounds, let me just- wait, no, that's been fixed too.

You know what, I'm just going to read over my changelog...

... Uh huh... Bonus rounds no longer increment round counter ... ... Donum can now pass through stunned evil spirits and preta... ... fixed a bug where the shelter/jail would show that there are spirits inside when it was empty... There has to be something that's not done. Maybe a tiny graphical glitch, or- or a character not behaving as the should, or-

... .... ...

Wait a minute, ... I think I might have actually done enough for a playable demo...

OH NOEZ! What am I supposed to do now?! It's pandemonium! Now is the perfect time to panic!

Source unknown.  OH NOEZ!

One hysterical episode later...

OK, so I guess I should be showing off my playable demo now. Give me a little time and come back a bit later while I sort this out.