Sunday, August 18, 2019

Gameplay Video

Things are coming together. I'm able to play through the entire game with only a few outstanding issues. I'm fairly satisfied with the difficulty curve of the game, now to just balance individual skills and weapons.

Here is a gameplay video of all four boss fights:


Gems on the board get swapped spontaneously because of special hats worn by the heroes. For example, the pirate's hat changes 1-2 gems to coins each time damage is received.

The fourth and final boss may seem weak, but that scythe attack does random damage so luck plays a role. Plus, only two heroes can be part of this battle, unless the war banner trinket is used for an additional hero. The tortoise is very useful here, because of the ability to temporarily polymorph any enemy into a harmless sheep.

A general strategy is to pick and choose heroes, hats, and weapons that turn gems into a specific type to feed a particular hero for special attacks. To avoid monotony, some stages feature enemies that are immune to certain damage. However, the jagged blade that removes all armor of an enemy will eventually allow any strategy to prevail.

Saturday, August 17, 2019

Single-frame Bugs

The past couple weeks have been very busy. There have been many changes and bug fixes. Changing one thing often can break or require a necessary design change with another feature.

For example jagged blade special gems destroy all armor of a random enemy, which nullifies the usefulness of the Tiger's ability to destroy armor of a targeted creature. I opted to keep the jagged blade, and change this Tiger's skill to something else.


The code that evaluates the board for matches was revised a couple times too. There are many ways gems on the board can be manipulated, so I had to insert the proper checks to ensure they can be hijacked and controlled by some other routine. Otherwise, bugs can occur where gems overlap during complex chain reactions, some of which are difficult to test because it all can occur in a single frame where order of execution matters.

There was also a very rare bug where bunnies and enemies in the main screen were not moving correctly. I think I narrowed this down to a single-frame bug, where a certain component for movement being destroyed was attempting to be reused for new behavior. It would get destroyed anyways, causing these creatures to stay put. This is potentially fixed, by checking if the component is being destroyed which I flag manually. Destroying a component at least sets enabled to false immediately, which can be an alternative way to check but can provide false positives of being destroyed.

The rest of the fixes were easy and straight forward, like updating the user interfaces. There are still bugs, but at least I have been able to play through the entire game on fast-forward mode, while adjusting the difficulty curves.

I really admire how references to GameObjects in Unity are set to null automatically. I strongly prefer this over the other approach where objects stay alive until all references are set to null, which can cause annoying memory leaks. However, the GameObjects are not set to null immediately, so a proper check is to check if null, and, use the overridden Equals method. This detail can be very important in some cases.

Thursday, August 1, 2019

Tutorial

...Oh yeah, I needed an introductory tutorial too. This was relatively easy. I just had to be careful in preventing the player from tapping the wrong objects or triggering unwanted events. It must work 100% correctly, because these are the first two minutes of the game and first impressions can matter.


The tortoise and tiger can only be unlocked as an in-app purchase, so this tutorial also serves as a demonstration of two of the strongest heroes.

I kept this tutorial brief and included a skip button. Other important features will be shown as tips during the first few battles. For example, double tapping an enemy will make it the primary target, or, tap and holding any creature will reveal important details.

Hard work everyday for August. I'm in crunch mode to finish this. It is a priority, as I bring everything together and create a trailer video to present to potential publishers.

I already have art, music, and content licensed for my 18th game. I'm going to continue using Unity for tech, as there is no justifiable reason to switch.