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.

Sunday, July 28, 2019

Premium Content

I decorated the premium content section. This premium content chest actually is something unlocked in the game at around stage 12. All of these options are purchasable with real money.

Many of these pieces move and the starter pack has a sparkling effect to highlight it. The starter pack offers the best value at a reasonable price. The Tiger and Tortoise both are premium heroes that can only be purchased. They are some of the strongest heroes too, and very suitable against bosses.


This completes all the core features of the game. Now just small modifications, difficulty adjustments, and dozens of bug fixes here on out.

Friday, July 26, 2019

Synty Sale

Synty has another sale on minimal 3D models for Unity and Unreal. This sale occurred at an opportune moment because just a week ago these caught my eye as I was browsing the Unity asset store.


Low poly models have a particular look that I admire. Stylish, modern, and optimal for mobile devices. I plan to license all of these packs, even if I do not ever use certain ones. There are unlimited possibilities, and having these on hand to drag-and-drop will allow new ideas to flourish.

Regardless of the assets I use (or create) I am not inclined to make another RPG or survival shooter for my 18th project. Lately, simulation, puzzle, or physics interests me more. I would like to use certain audio and music, plus lighting and color tones through screen effects to emphasize mood.

Saturday, July 20, 2019

Consumables and Survival

Here are consumables; each potion provides a temporary bonus for one hour. I did not necessarily need this feature, but I wanted extra rewards to give out for completing missions and opening daily reward boxes. Plus, I needed more things available to buy in the premium content section.


The key is used to play the treasure hunt minigame for more rewards such as potions, coins, skills, weapons, trinkets, hats, and even additional heroes.


To add some variety, some stages are survival based. Enemies will just keep coming back, so the objective is to survive for a specific number of turns. I coded this quickly while authoring these 50 stages.

The game will continue into nightmare and hell difficulties beyond the 50th stage. It all just simply gets harder. 

Sunday, July 14, 2019

Daily Rewards

I went with a really simple approach for daily rewards. One can be chosen every 24 hours, which can give coins, consumables, or a new item.

I did not bother to prevent cheating, where users can change their system clock to reduce the countdown from the next reward; I only prevent the bug of the time difference surpassing 24 hours. Games get hacked and redistributed either way, regardless of counter-measures.

Actually each of these boxes can grant the same reward, assuming it was tapped at a specific moment down to the millisecond; time determines the random seed to determine the contents. There is no predetermined reward contained in each of these boxes, it is determined based on the time it was opened.


I prefer to at least give the illusion of choice, by offering an array of options to choose from.

Super Mario 3 does something similar. There is a bonus stage where Toad offers three chests to choose from. According to this source, the actual reward is determined by the time it was opened, regardless of the chest chosen.


Sorry for destroying the magic behind this...