Its Been a While…
Well, well, well….we meet again! It has been entirely too long since our last blog post, but worry not as we have plenty (entirely too much) to show off. Why has it been so long you ask? Our games have been passion projects ever since we started our journey years ago, and recently there have been opportunities for us to work on other (PAID!) projects. We have had less time to focus on Humongous Bone games, but have fit in development time where we can while letting other items like blog posts fall by the wayside. We will continue to update the blog when there is enough to report on, but unfortunately these posts will no longer be monthly as they were previously. Now that the the air has been cleared, lets get into the update.
Our previous blog post explained how our last sprint focused mostly on completing the first iteration on the final look and feel of the game, as well as allowing for a full gameplay loop. Now that all of the core gameplay exists in the engine, and the game’s visuals are pretty close to what we envisioned, we decided to focus on tightening up the existing gameplay as much as possible. We want to continue driving towards the focal point of the game being movement, which means that character movement needs to feel very tight and fluid. There are many movements that a player can perform with their character including wall runs, wall jumps, air jumps, ground slides, etc. Chaining these different movements together should feel effortless but allow for a high ceiling of mastery. That being said, we felt that the system had a long way to go to accomplish these goals and adding coyote time was one of our starting points in building towards that:
If you examine the image above closely, you may notice that the character is able to jump for a short period of time after becoming airborne from falling off a platform. This is generally referred to as “coyote time” thanks to Wile-E-Coyote and his animated shenanigans:
There is a time and a place to think about game design strictly from a logical perspective when building mechanics, but when it comes time to polish and add some game-feel, some of that logic must go out the window. Getting back to how that relates to coyote time, it makes sense when building movement mechanics to implement character states such as “grounded” and “airborne” and to turn off sets of functionality based on whether the character is on a platform (IE “grounded”) or not. If taken literally, the moment the character becomes airborne they will no longer be able to perform “grounded” functions such as being able to jump. This makes sense in the real world, but when it comes to making platforming games FEEL good and characters fun to control, adding a split second between these states for a player to perform those movements adds a LOT to getting the most out of the movement controls.
Adding coyote time is a step in the right direction for improving movement mechanics, but we still felt more could be done to increase the skill ceiling of mastering movement in “Switch, Pit, Win!”. Previous iterations of movement saw us adding speed to the ground slide, and continuing that momentum in-air by chaining the ground slide into a jump. This felt fun to perform but was highly situational, so we decided to expand upon the idea of increasing momentum through movement mechanics. There are now a number of ways to build momentum including but not limited to: ground sliding, air jumping, and wall jumping. To supplement this, we also implemented a “base” movement speed that players start out at, and a maximum movement speed that each of the aforementioned movements will build towards. Idling or crouching will reset movement speed gains, which incentivizes players to move skillfully around the map to build speed while avoiding resetting their momentum. Skillful use of this allows players to close distance and sneak up on opponents, or to avoid and get away from players when in compromised positions.
The previously mentioned mechanical changes are larger updates to systems as a whole, but we have also iterated quite a bit on general movement variables to continue improving the feel of controlling a character. This is a bit harder to detail as we are tweaking a lot of numbers that drive the movement code, but just know that we are constantly tweaking and testing to make movement as fun as possible!
Finally, and unrelated to movement, we have updated the logic which controls the laser sight to make sure the laser originates more precisely from the weapon. This probably seems a bit obvious and something that should have been done correctly from the start, but sometimes we implement things quick and dirty to get them in and iterate later, which is the case here! We added a bone in spine which we can reference in the code so custom calculations are not necessary, and the origin of the laser can follow the gun accurately no matter which animation is being played.
We have been pretty busy in the art department as we have built entire menu systems since our last update! Up to this point, our game has only existed as a single gameplay scene which we have iterated on as a means to finalize mechanics and visuals in the game. Now that we have a complete “game” and can play full matches with multiple players on one level, it is time to expand to more levels and a menu system to facilitate navigating through the game. The first step to this was creating a first pass to a main menu which is temporary for now:
Loading times can be different based on what platform the game is on, and the performance of the computer if it is played on PC, so loading screens are important to tie scenes together. Below is our first iteration of a loading screen which displays a random piece of concept art to build the lore of the game world for the player:
The main menu and loading screen are very basic mockups using existing assets that are meant to be iterated on later, but hey at least we have something to get us going! The more important and less temporary implementations in our menu system can be seen when a match is complete via our end-of-match report screen. An accolade system was discussed briefly in our last blog post which has now been fully realized thanks mostly to the capabilities of Unity UI! We wanted players to feel rewarded at the end of a match regardless of winning or losing, and what better way to achieve that than adding accolade medals to the end of match report. We currently have 10 accolades which are unique meaning that only 1 player can earn that accolade at the end of a match. The end-of-match report screen allows for each player to have a maximum of 10 accolades displayed at the end of a match meaning that there is plenty of room to grow and add accolades!
The accolade system is almost endlessly scalable, and we are certain to continue adding interesting accolades in the future as we think of more.
Last but not least, we have continued to expand upon the animations that exist in the game and iterate on old ones which needed a little bit of love. As a general rule, we try to ensure that virtually every action in the game has multiple layers of visual feedback to make that action feel impactful. Most of the time, that means layering visual effects on top of character animations, or layering visual effects on top of some other object movement animation. One example of where we execute this is on the ground slide animation, where the character slide animation is accompanied by dust VFX, but we realized that the VFX look a bit out of place with the look and feel of the game currently. Because of this, we changed the VFX from a brown dust cloud to a grinding spark VFX colored the same as the character’s suit (which depends on what color each player has chose at the start of a match).
[old ground slide VFX]
[new ground slide VFX]
Another example of existing VFX that were tweaked is the player death VFX. This effect is shown when a character falls into the death pit on the map, causing them to lose the round. We felt that this effect among others was not exaggerated enough to depict such an impactful moment as a player being eliminated from the round, so we changed the effect to have more layered VFX on top of each other, and made it quite a bit bigger to sell the impact.
[old death VFX]
[new death VFX]
One obvious effect which did not previously exist in the game was a jetpack VFX for when it is in use. We love using the jetpack powerup (because who doesn’t want to fly) but it felt a little bit less like flying and a bit too much like floating since there was no visual feedback telling the player that they are in flight. Adding a simple looping flame effect to the boosters of the jetpack does quite a bit to sell the visual of being in flight.
We have implemented a lot of gameplay, so there are times when we have a lightbulb moment and notice that an effect doesn’t exist where one should like the jetpack flame VFX. We recently had this same epiphany with powerup pickups as we felt it wasn’t noticeable enough that something happened. When a player runs over a powerup, the orb disappears and a powerup icon appears on their character’s UI, but we felt that layering VFX on top of this would be the icing on the cake in selling the action to the player.
While VFX accomplish a lot when it comes to selling interactive elements of a game, more subtle animations can also add quite a bit to overall atmosphere of the game world. The first world that we are building levels for is a lava-themed weapon and armor-smithy, which until now was not obvious apart from the lava-filled platforms. To build on the feel of this world, we added very subtle smoke VFX scrolling in the background, and some conveyor belt animations which we will soon add weapon and armor molds on top of to finalize the world’s atmosphere.
That was a lot to cover in one post! We are still quite busy with other paid projects which means that we are unable to post regularly, but we will continue to make progress and post when enough new shiny assets have been implemented. Thanks for sticking around and reading our latest update, we hope you are as excited as us that the game is starting to take shape into a final product. We look forward to showing more when the time is right.
Talk to you soon.