Violet has made quite a bit of progress in the last year. As we reflect on where we were at starting the year vs. where we are at now, the game is starting to actually look like a retro 2D pixel art game of the past. Tony Wojnar has really been “killing it” these past few months, and the update we are about to share today is no different.
The majority of the art updates focuses on three of our enemies in the game: Glob, Ambush and Knight Ghost. Without further ado, let’s get into art!
Our first enemy update is the Glob. They are simple, Chu Chu like enemies that move together and attack our hero when threatened. They come in the colors of green, blue, red and black. However, only green is showcased below:
Our next enemy update is the Ambush. They are Octorok like enemies that, as the name implies, “ambush” our hero by hiding under rocks and bushes. They come in the colors of green, blue, red and black. However, only green is showcased below:
Our last enemy update is the Knight Ghost. They are Wizzrobe like enemies that use element rods to attack and then quickly warp to a nearby location. They use the three element rods: fire, water and ice. These elements represent there base colors and then their strength comes in the colors of green, blue, red and black — resulting in 12 different color variations. Below are the fire / green variations:
New Element Rod Animations
We also added animations for the Fire, Ice, and Water Rod. These rods work much like agile weapons where they can be used in any direction. Unlike agile weapons, rods only have one combo to them as well as shoot an element projectile from them. Fire rods shoot a fireball that deals good damage, knocks an opponent over, and of course, creates fire that uses the normal fire properties (like spreading and burning). Water rods shoot a gust of water out of them to push enemies, and eventually objects. The force of the water can also knock enemies into a wall to deal damage. This water can also “heal” damaged plants. Ice rods shoot an ice particle out that can freeze opponents into an ice crystal, dealing freeze damage until the opponent can break free.
Below are the Knight Ghost using the different element rods, as well as the projectile and effect from these rods:
Other Notable Updates
This past month we finally merged our GMS 2.3 branch into the code. This merge essentially included everything in the “Other Notable Updates” section we have mentioned in our posts the last year (as well as the new art of course). We made an official stable build we’ve been calling “The Thanksgiving Build” for friends and family to try out.
The reason for all of the optimizations, refactoring and improvements is for our objects to be able to handle collisions within different layer depths better. To recap, since our game engine only exists in two axis, we have to “fake” the third dimension of depth with a system we are calling “layer depth” — which dictates where an object is in the third dimension. We were noticing before we underwent the refactoring / optimizations that the collision system for layer depths was chugging a bit.
We did add one change to our
Tile Object system (yes, that same system we’ve been discussing the past year) to support ice tiles. Since ice tiles can be created dynamically on-the-fly, we needed a way for our system to handle this type of tile creation. Before, all tiles were created before runtime. But now our
Tile Object system is even more robust supporting mass ice tiles and we even were able to remove a few TODO items from that list.
With new art updates for a couple of our enemies came some code updates to handle the new art, as well as more accurately depict certain actions. The changes most notable here were in the Ambush and Knight Ghost enemy, because they share the same parent object,
We also added a system for objects that have “tails”, or graphics that trail behind the parent object, giving the parent object the illusion that it has motion. Since objects like fire, water, ice, Ambush dirt, etc. all have this “tail” concept, we decided to optimize this as whenever one of these objects were spawned, the tails were getting a little expensive to process. Now, we have graphical representation of these tails instead of creating
n number of objects to represent these tails.
With our new water and ice projectile graphics, we also added a couple more features around these elements. With water, if an object gets hit by the projectile, the force of the water pushes an object greatly. The new feature that we added was if the object hits a wall at a fast enough speed, it will take “crush” damage against the wall.
With ice, we added the ability to be “frozen” in ice crystals (as seen by an earlier screenshot). The enemy will be silhouetted blue against the ice crystal and taking freeze damage until they are able to break free.
Finally, we updated the weather system so that hopefully it rains a bit less. If it still continues to rain more than we’d like, the code should be a bit easier to update to reflect the weather patterns we’d like each region to have.