FIREWALK
Overview
FIREWALK is an arcade-style game where you try to protect a large playfield from a spreading virus. As you walk, the places you touch are secured. But infection is raining down from above, trying to corrupt the whole playfield. As the infection spreads, it is the player's mission to protect the playfield for as long as possible, earning the highest score they can in the form of the longest time survived. It is a quick game, with rounds designed to last only a few minutes that start slow, but quickly ramp up into a very fun kind of stressful as you desperately try to stem the tide of the attacking virus.
2022 Epic MegaJam
This game was created as a submission to the 2022 Epic MegaJam. To keep true to the spirit of that competition, everything about FIREWALK was created during the one-week window that the contest ran for. I started with a blank Unreal Engine 5 project and built all of the game logic from scratch during that week using Blueprint scripts. I created every texture, both environment and UI, and designed the environment during that week. I made the splash particle effect for the impact of the falling cubes during that time. I also composed every sound effect and part of the soundtrack during that week. Even the logo used in the game's splash screen that I went on to re-use was originally created during that week. I wanted to stay absolutely loyal to the idea of building an entire game in a week to use as my submission.
The theme for the 2022 Epic MegaJam was "As above, so below." Not wanting to take the obvious route of something like a mirror-world based game, I decided to interpret the theme as more of a sinister mission statement: above invading below in an attempt to make below conform, against its will, to what above wanted. That is how the game ended up as it is, played out on a central structure with an upper infected disk raining down on a lower disk, trying to corrupt it as well.
FIREWALK is available from its submission page here: https://trickarrant.itch.io/firewalkÂ
Gameplay and Notable Features
The gameplay in FIREWALK is focused around the central structure composed of two disks, each made up of cubes called packets, connected by a vertical pillar. A packet can either be neutral (white), secured (green), or infected (purple). The bottom disk is the playfield and is composed of neutral packets when the game starts. As the player walks over a packet, it becomes secured. The top disk is all infected packets. Infected packets are spawned at the top disk and rain down onto the lower disk periodically. A packet hit by a falling infected packet becomes infected. The rate at which infected packets spawn increases as the game goes on. Both the secured and infected conditions can spread to adjacent packets on the lower playfield disk, but the infected condition spreads faster than the secured condition. An infected packet can be secured by the player walking over it, or the secured condition spreading to it from an adjacent packet. A secured packet can become infected by falling infected packets, or by the infected condition spreading to it by an adjacent packet. Once the percent of the lower playfield disk that is secured versus infected drops below the critical value, represented by the orange section in the bar at the top of the UI, the player loses and the time they managed to survive is displayed.
Notable Features:
Everything Is Cubes:
As a fun challenge for keeping the game simple and small, using as few assets as possible, everything in the game environment is composed of cubes and one texture. The cube is the basic cube shape available in Unreal Engine as a placeable actor. The one texture is simply a black square with a white outline. This texture was then turned into a material in the Unreal Engine material editor and multiplied by different colors to create the green and purple variants for the secured and infected states, in addition to the neutral white cubes. It was also given an emissive trait so that the colored edges glowed. The entire environment was then created using different sizes of cubes with that neutral material applied. The playfield cubes are a custom Blueprint that uses the cube static mesh and can switch between the three color options for the material depending on which condition they have applied. Those Blueprint cubes also house a majority of the game's logic in an easily reusable object. The cubes know their own condition, and have logic for detecting adjacent cubes and spreading their own condition to those neighboring cubes, automatically updating the material.
Adjustable Playfield Spawner:
The two disks of the central structure and the infected packet rain are all spawned by a custom Blueprint. This Blueprint is designed to spawn one of two types of cube according to adjustable parameters. It can spawn static cubes, like those that comprise the upper and lower disks, which can be set to be spawned in any of the three states, neutral, secured, or infected. It can also spawn a variant infected cube that has physics enabled so that it falls with gravity. The second option is the type of cube that composes the infected packet rain. The spawner has a radius parameter that can be set, in cubes, to determine how far away from where it is placed in the world the spawner will spawn cubes. It has a toggle for if the area it spawns in should be a square, where the radius determines the perpendicular distance from the center to each edge, or rounded off into a circle, where the radius is a true radius. It also has a toggle for if the cubes should be spawned in a normal orientation or with a random rotation for a more chaotic appearance. Finally, the spawner has an option for if it should fill in its whole spawn area with cubes at the start, as is the case with the upper and lower disks, or if should periodically spawn in cubes somewhere within its range at recurring intervals, as is the case with the infected packet rain. The spawn interval can be adjusted, and the spawner has logic in place to progressively hasten the spawn rate as the game goes on.
Dynamic Music:
The music was implemented using the new MetaSounds system in Unreal Engine 5 to make it able to dynamically adjust to what was happening in the game. The music plays increasingly faster as the game goes on, making the game feel more intense as you get deeper into a round. Also, the music will shift between a major and minor key depending on if the player is losing or not. If the secured percentage is above a certain threshold, the music is major and seemingly peaceful. If it drops below the threshold, the music switches to minor and becomes noticeably more ominous. It will also shift back to major if the player manages to raise the secured percentage above the threshold once again. This key shift, combined with the increasing tempo, help the music make the game feel vastly more intense, especially in the later portions of a round when the player is just barely surviving and the music is very fast and ominous compared to the slow and peaceful start.