The Title Screen for the demo. The background uses parallax scrolling to simulate depth and introduces the flag visual used to mark the end of each level in the demo.
The 1.1 version of the first level. This level starts with an open space to allow the player to briefly experiment with their movement and other buttons before introducing a recurring 1, 2, 1+2 challenge format. First, a challenge is presented that can only be solved by jumping. Then, a challenge is presented that can only be solved by rolling. Finally, a challenge is presented that is solved with a combination of jumping and rolling. This pattern repeats for the second level and comes full circle with the third level, which requires combining skills learned from the first and second levels.
An orb collectible. These collectibles are present in each level and serve to reward players with a keen eye. Notably, none of these orbs require additional platforming skill to obtain, as they are intended to emphasize navigational skill. This first orb is hidden until the player approaches it, but its presence is telegraphed by a small nook on the right that goads the player into rolling through it.
A bandit. Rather than serving as traditional enemies, these are "pseudo-collectibles" that act as player rewards. In contrast to the orbs, the paths to these bandits are not hidden, but instead gated by challenges that require precise control of the player character. This control-oriented nature is further emphasized by how the bandit is "collected" by attacking them rather than simply making contact with them.
The 1.0 version of the first level with the foreground objects removed. As you can see, the orb collectible is clearly visible. Playtesting found the orb to distract players from the tutorial teaching them how to roll, so the 1.1 version hides the orb behind a wall that disappears when the player draws near.
The second level of the game. This one introduces two important special moves that are used to navigate platforming challenges. Like the first level, it introduces each new concept one at a time before introducing a challenge that requires using both concepts together. In addition, the orb is visible as soon as the player enters the level, making its existence known in the event the players missed the orb in the first level.
The third and final level of the demo. This level pushes players to use the jumps and rolls learned in the first level with the special moves learned in the second level. Initially, this level had no tutorials to push players to innovate and feel rewarded for their cleverness, but several playtesters felt that this was too harsh for such a short demo.
A secret area located in the third level. When the player attempts to roll into this area, the foreground element obscuring it becomes transparent, allowing the player to collect the hidden orb. As no playtester found this orb in the 1.0 version of this level, the 1.1 version added additional foreground and background elements to highlight the entrance and exit.
The original 1.0 version of the third level. This one lacked the tutorials present in the current version and was meant to serve as more of a challenge level, but playtesting revealed that players felt the sudden lack of tutorialization to be unfair. Changes were made to add tutorialization, switch the second and third primary challenges, and make the orb collectible's location more obvious.
A simple input buffer I implemented to improve the control experience for the game. Whenever a player inputs a standard action such as a jump, roll, or block, the game stores that input. If the player character is then able to perform that action within the next 0.2 seconds, they then perform it. This allows players to more smoothly chain actions together and increases the overall responsiveness of the game.
This is a section of code which reads the player's directional inputs while blocking, translates them from axis-based inputs to numerical notation, stores them in a circular queue, and then executes a function to read from the queue when the player clicks the attack button.
This is a snippet of code from the function that reads the numerical notation from the previous block of code and determines whether the player is attempting to perform a high jump. While this particular solution worked well for the scope of this project, I would program a different solution for a larger game with a greater number of special moves.
Blade of Beyond DEMO

A proof-of-concept demo for a 2D platformer with controls inspired by fighting games such as Street Fighter or Guilty Gear. This game was developed as a student project for a Unity Engine Design & Development course.

While most art assets such as character visuals, tilesets, SFX, and BGM were used from the Unity Asset Store, all programming and level design was done solely by myself.

Unity Asset Store Packages Used:

Hero Knight - Pixel Art - Character Sprite Assets, Animator Base, and Character Controller Base
Keyboard Keys & Mouse Sprites - UI Elements
Pixel 2D Castle Tileset - Environmental Object Sprites
Pixel Fantasy Caves - Level 3 Tile Sprites
Pixel Skies DEMO Background pack - Start/End Screen Backgrounds
Platformer Fantasy SET1 - Start/End Screen, Level 1, and Level 2 Tile Sprites
RPG Essentials Sound Effects - Game SFX
Soft RPG Music Pack - Game BGM

View Website
Freelance, Full-time, Moonlighting
Jackson Walsh
Game Designer & Producer Norfolk, VA