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...

Saturday, July 13, 2019

Polymorph!

The tortoise and tiger heroes each have been programmed.

The tortoise is capable of temporarily polymorphing enemies (including bosses), creating an ice comet that damages all enemies, and energizing all heroes to cast their special skills. A very supportive hero.

The ice comet is unstable damage, meaning it does between one to maximum damage randomly. The fox can create a fire comet, but is guaranteed to do specific damage. I want to discourage players from using the tortoise for damage over supportive purposes.


The tiger is like a paladin, able to fully heal a hero, burn all armor of an enemy (unless immune), and deliver a strong melee fire attack despite hurting himself/herself in the process.

There are eight heroes, with five weapons and three skills each (64 things total). Also there are nineteen enemies, three bosses, a dozen trinkets, a dozen special gems, and eighteen hats.

...This is sufficient. I am ready to put this all together.

I'm now working on the free and premium content sections. Daily rewards, premium content, and other things like this.

Friday, July 5, 2019

Boss Fights!

Boss fights! As requested. These were painted and animated along with the new enemies. These stages will break up the monotony of the usual gameplay.

Each must be defeated at the end of each area: green (poison/nature), red (fire), blue (cold), white (physical).



Coming along. The new tiger and tortoise heroes each need skills designed and programmed. Then I must finish the interfaces for the free and premium content section. Some of the newer hats need perks; the fashion statements are insufficient.

18 Hats! Names changed on specific ones, to avoid infringing on copyright

These are all the things I have written to accomplish, before I depart this Airbnb on the 15th that I have been renting for one month. This place comes with an amazing desk, TV (second monitor). The chair looks funny, but is comfortable and the correct height.

Afterward, I'll get on a bus or train to the next country which out here is only ever 4-8 hours away. Whether I stay a week or month, I like to write down a list of tasks to accomplish. In the games industry, these are called milestones, yet my "office" changes along with it.

There is a specific publisher I would like to work with, but only after I create a trailer video. This will be the third time I go for a sales route by selling copies.

Friday, June 28, 2019

New Enemies

New enemies! Half a dozen creatures, some specifically for the volcanic stage.

I sketched and inked each one. Then, in one session I exported each body part to create an idle animation. Doing all this makes me want to go back into the programming.


That skull on a stick is a decoy, which must be attacked first. The alchemist gifts a turn to each enemy, so can be a real nuisance. I'll decide later on what the tiki and mage casters will do. The goblin shaman (not shown) already attacks with fire, so at least one of these will heal instead.

Tuesday, June 25, 2019

Bravium

Every now and then I download a dozen games for my phone and give each a try. One that has stuck is called Bravium, a freemium (on mobile) side-scrolling game with steady progression set in fantasy/viking setting. Weapons are unlocked by completing new stages, but are purchased within each battle with temporary currency. A rather ingenious design decision because this provides two layers of progression: one on the larger scale where weapons are unlocked, and one on the smaller scale for each battle.


I am not affiliated with this game, or the team behind it. This is not necessarily a game that I would include on my top 10 list of favorites, but it is definitely one that I am infatuated by.

I could see myself taking design elements from Bravium and combining it with Zombie Guard to create another hit.

Saturday, June 22, 2019

New Heroes

A couple new heroes to complete the roster: Tortoise and Tiger. I wanted to have two heroes for each of the elemental gem colors of white, red, blue, green (eight heroes total). One caster and one fighter for each color, except white which is physical so both the gorilla and mouse are fighters.

Some failed concepts were a lion and squirrel. The squirrel looked too similar to the fox, and the lion was just a mess. The head is the most important part and the slightest error in shape can impact the entire look. Still, nothing looked worse than the polar bear concept a few months back... absolutely terrifying.


Enemies are easier to create than heroes. I figure about 8-12 more for the desert/volcano and castle stages will be sufficient. In the end, a lot of the effort will be in game balance, introductory interactive tutorial, and a trailer video with licensed music.

I'm very satisfied with how the game feels, especially compared to Match 3 Fantasy. This is an entirely new game built on all that tech and content by changing the flawed design.

Tuesday, June 11, 2019

Trinkets

All the trinkets for passive bonuses are finished. Also about a dozen prearranged battles.


These are unlocked items that can be equipped for small bonuses.

In other words, the first half-hour of the game is playable. I just need to add a revised interactive tutorial, new icon, and a bunch of new creatures and weapons. I noticed many sprites being blurry, so I have been adjusting the texture import settings.

Only near the very end will I begin to remove all unnecessary assets to reduce the file size. The compressed package for Android is about 50mb, which is as large as I want it to be. In a Unity project, anything inside the Resource folder is included in the file, so I will eventually need to trim the excess.

I want to add at least two new animal heroes. The art and animation will be a good break between the long programming sessions.

Saturday, June 1, 2019

Post Process Effects

I have been experimenting with a lot of post-process effects. These are effects applied to the entire screen, or just a section of it. Given a shader script file, all you gotta do is drag-and-drop it onto the camera object in the scene. Easy.

Multiple effects can be applied, arranged in different orders. Vintage film, oil paint, blurs, rain, so many to choose from.


This pack came with over 300 effects. Some designers are true visionaries who know exactly what they want, but I prefer to go in reverse... I start with resources, and then playfully figure out how to utilize them.

Just like when I create a trailer video for this game, I will edit footage around a specific audio track, rather than find an audio track that best matches the video.

Monday, May 27, 2019

100 Stages

Sometimes it is better not to take shortcuts with design. I want this game to have 100 stages. At first I was just generating random permutations of enemies. Instead I am going to author each stage manually, and provide a name. Most of these 100 stages will unlock something, as a reward and to gradually increase complexity.

Example 1


"Green Pasture" will consist only of goblin archers, that do less damage but have a reduced turn counter (so they attack more quickly). The stage will permit the maximum number of simultaneous enemies, which is 5.

Example 2


An ice stage that only has one completely overpowered golem. Like a mini-boss fight, where different heroes and skills need to be chosen. Specifically, increasing the turn-counter of the golem to delay its turn. What if the stage can only be played with one hero instead of 3 or 4?

Example 3


Enemies completely immune to certain elements. Some creepy dungeon of ghosts, that can only be killed with fire? Things like this, to keep the game interesting, but hopefully not annoying.

More thoughts


Some stages will have many enemies, and others fewer. It will be necessary to choose suitable skills for each hero, like ones that target all or just one. Replaying the same stage repeatedly for experience and coins will be expected. I do not expect any player to just plow through all these stages in one sitting.

I can defer this kind of creative work to moments when I am in transit, like on a bus or train for many hours. Programming is a bit more involved, so I need a desk and decent chair without distractions of my surroundings.

Here is the long map I have arranged, to place the 100 stages. I will paint and adjust the seams later. For now, they are just rectangles naively copy-and-pasted without continuity.


The vertical dimension of this map is insanely high. After I author the stages, and then adjust the seams, I will split up this image into pieces. I think some phones will force a texture like this to be square, so that would waste a lot of memory by extending the horizontal to match the vertical by adding unused space.

Monday, May 13, 2019

Unity assets

The Unity asset store is showcasing a collection of top quality assets for another couple days. Many of these packages are ones I already considered.

I like to poke around and contemplate possibilities. Just like when I was about 12, I listened to a CD of a thousand sound effects and let my imagination take over. It only takes one tiny source of inspiration to consider a large project, and, only one night to sleep on the idea to confirm it.

It is easy to just drag and drop these into a Unity workspace, then add a bunch of components.

Low-poly zombies

Minimal UI
I instantly bought the post-process effects package. The minimal UI package seems really useful too, made by one of my favorite artists on there. The low-poly zombie and simple apocalypse caught my eye too. Plenty of audio and music to choose from too.

Simple Apocalypse pack

The low-poly is a unique look, and better for performance on mobile phones. Combined with post-process effects and amazing particle effects, so many possibilities can emerge. Good audio and music is easier to come by these days.

Monday, May 6, 2019

Stuns

In traditional RPGs, stunning a creature prevents any actions from taking place. But can a stun be interrupted? Once a stun wears off, can the creature immediately take its turn, or does removing the stun count as its turn?

Take for instance the panda, which can "stun" a creature with the bamboo strike skill. Rather than apply a stun debuff that temporarily prevents actions, perhaps denoted with an icon or persistent particle effect, the game instead just increments the turn counter with a conspicuous animation. A stun particle effect does not need to be persistent either, because the only important information is the turn counter.

This change actually makes a lot more sense. To me the challenge of game design is about simplification by removing ambiguity and anything unnecessary.

Tip info about the panda, by tapping and holding

Also I am reverting back to a simpler upgrade system for all weapons and skills. I have extended beyond five stars, to eight. These upgrades not only cost in-game currency, but require the hero to be a specific level. This requirement prevents the player from maxing out just one weapon or skill early on while neglecting everything else.

New upgrades screen

I am actually having fun with this. And if I am having fun, then surely I am onto something.

Sunday, April 21, 2019

A Fork in the Road

For the first time I have simply taken a snapshot of an existing project (a copy) as a foundation for my next game. There are so many design changes that it deserves to be its own game, rather than an updated version of Match 3 Fantasy.



An analogy is finishing production of a movie, and immediately reusing all the actors, crew, scenery, and only changing the script.

Skills


Using hero skills in Match 3 Fantasy is done by collecting elemental resources and then applying the pattern onto the board. The pattern could only be placed on cells that are highlighted, and highlights are made by destroying gems through matches or tapping special gems that explode others.

The change: creatures will collect elements to charge-up just one equipped special skill. Once charged, the skill can be used immediately on any enemy. No more highlights.

Hero and Enemy Placement


I was inspired by Darkest Dungeon. I wanted to provide skills and attacks that are targeted using a similar system. Given three enemies arranged horizontally, skills can target first, second, third, first-two, last-two, or all. But the game is too casual and simply going for damage is an optimal strategy over abilities that manipulate the order of enemies.

The change: all heroes and enemies will be arranged in random order, because it will not matter. I will introduce a threat feature, so enemies are more likely to attack certain heroes.

The Enemy's Turn


In Match 3 Fantasy all enemies have their turn after the player, but each only attacks by successfully rolling a percentage chance.

The change: Each enemy has a countdown to attack, decremented each player turn (a hero uses a special skill, or when cells are swapped for a match).

Progression


Match 3 Fantasy just has too many variables for progression and difficulty. Enemy strength is determined by the strongest hero and difficulty level for additional rewards. It kinda works, but feels rather clumsy.

The change: Enemy difficulty will be fixed, and hard-coded for each area. There will be many more areas to unlock, despite reusing the same map.

The First Build


I uploaded a build of the new game here. It plays in a browser, thanks to the Unity engine for the WebGL exporter.


The bird is the first of many pets; this one attacks after red gems are matched. The fox also uses red gems, so the element is given randomly to the bird or fox. Therefore, good team composition will include heroes that use a large variety of elements. A pet that uses blue would be more optimal in this arrangement, because no other heroes use this element.

Wednesday, April 3, 2019

Sky Words

Sky Words (pun of the word skywards) has been made public on Google Play!


A word puzzle game, containing over 150 generated puzzles and as much graphical and audio polish that I could apply.



This game took only about three months from start to finish, while jaunting around Malaysia, India, and to an extent, Kenya and Egypt with family. I set out to create something in mind, and achieved it while also immersing myself in new cultures.

I see no reason to stop traveling and developing games. I'll be heading off solo to eastern Europe soon, to max out an eligible stay in the Schengen area. There are more projects to be created and things to learn.

Tuesday, April 2, 2019

A quick reflection of Paladin vs Demons

I want to take a moment to reflect on a previous game called Paladin vs Demons. Looking back, this app had a lot of potential. The flaw was not going "all-in" and investing the extra time to offer a longer and better experience. The reviews are surprisingly positive, all things considered.

Paladin vs Demons on Google Play
I was so focused on just "getting it done quickly". Which for creative work can be a double-edged sword. Investing extra time is risky, but there is similar risk in cutting a project short of its potential. This one was hindered by the latter. It unexpectedly became more popular years later, dire for more features.

A small potato, and I have bigger fish to fry...

Wednesday, March 27, 2019

Sky Words

In-app purchases integrated into Sky Words was more challenging than expected. It is one of those features that can only be tested on devices, and the official Unity package was really confusing to get up and running.

I have all the skills and technology to create a Zombie Guard 2. The only outstanding obstacle would be online multiplayer, should I choose to implement it. I would most likely go for a sales oriented route through Steam, in addition to a mobile release.

Also Match 3 Fantasy has been updated, with bug fixes and small changes.



Moving on...

Typically for each project I change technology or mix up my general approach to development, but not this time. Working with quality assets through Unity and fully utilizing the C# language and my current skills of drawing characters is sufficient. I got this.

Sunday, February 3, 2019

Stages screen

With thousands of game puzzles, I needed a way to present them. Predetermined with full map illustrations like board games came to mind. After all, I had already purchased vertical progress maps that could have been applied. The cartoon art interface pack came with a map too. I chose just to keep things simple and randomize it without visual maps.




Keys are given over time, used to unlock options to clear puzzles and collect items that are redeemed for coins. Coins are used to provide hints to help solve the puzzles. There is a fairly high demand for word games and I want this one to be polished and straight forward.

Coins and keys can be purchased, or given if a reward video is watched. I have observed gamers across southeast Asia, and I can assure you many are willing to watch a 30 second video rather than fork over hard earned cash. Many lack a credit card anyways, so overall ads are still king.

I use a dictionary of common words to generate the puzzles, and a much larger list of words stored in a HashSet to reward as bonuses. Notice that "woad" registered as a bonus word, which is a yellow-flowered European plant of the cabbage family. Few people would know that, so it would never be a required word in the puzzle.

Tuesday, January 22, 2019

Design changes

Match 3 Fantasy will undergo design changes. The skill placement onto the board feels too slow, so I will allow skills to be triggered instantly. The actual skills get confusing too, so there will be a limit of just one for each hero at any given time.

Overall it feels a bit clumsy and the features are incohesive. It has strong potential, it just needs to be simplified and sped up a bit. Most of the code will be conserved despite the large changes to be made.

Now I am glad I did not embark immediately onto a new super large project. I have a smaller word game which already works with saved generated puzzles.