top of page

Shadowstep

Shadowstep is the game that I pitched as part of Major Production in the second year of the Academy of Interactive Entertainment. Thankfully, multiple people were interested in the game, and our final team ended with 4 programmers, 2 game designers and 2 artists.

​

Shadowstep is a 2D pixel art metroidvania with an emphasis on boss fights. The player is a lone warrior, who's goal is to kill the king of a corrupted castle. Throughout the game, the player will unlock multiple abilities to help them traverse the map and get stronger.

​

Check out the game's trailer below.

Shadowstep: Welcome
All Videos
Shadowstep: Videos

As the lead programmer and vision holder of the project, I worked on many different aspects of the project. The main system I worked on is the artificial intelligence of enemies, as I love making bossfights. Other big systems I made include the traversing of the map, a collectible system, the combat system, the interactible object system and the various unique abilities that players can unlock.

Some smaller systems I made include a parallax effect, secret areas, and the implementation of music.

​

Click the image below to download the game.

Shadowstep: Welcome
Cover.jpg
Shadowstep: Image

Room System

The room system is the most important system in a Metroidvania, as traversing across rooms rely on this system. As such, this system was reworked multiple times across the duration of the project.

​

At first, the room system consisted of an array of rooms, each room containing important information, such as the enemies in the room, the spawn position of the player once enterring the room and the GameObject of the room itself. Each door in the room simply held a number, corresponding to the position of the room in the array.

​

The system was upgraded after a complaint from the designers, saying that the system was too complicated. Instead, the room manager now held an array of areas, each area holding an array of rooms. Now, each door held an area and a number, making it simpler for the designers to use.

​

The system was upgraded a third time to make it even more designer friendly. A ScriptableObject "room" was created, each one holding the data of each room. The doors now simply held the ScriptableObject of the corresponding room it led to as well as the spawn position of the player upon entering the room. Each room held an array of ScriptableObjects "enemy", the position of each of the enemy and if the enemies were dead or alive. This allowed the designers to easily make new rooms and connect it to the already large maze.


Other things the room system helped manage was playing the musical theme of the respective area in the game, the spawning of the enemies that are alive, a banner of the name of the area that the room belonged to, and many more little things.

Shadowstep: Welcome
Shadowstep: Work

Artificial Intelligence System

The artificial intelligence system is another important system in a Metroidvania. 

​

The enemy AI will choose between attacks and interactive differently depending on the player's inputs. For example, if the player attacks the enemy while they are in idle state, the enemy will parry the player.

​

The enemy will also randomly choose between multiple attacks, which can combo into other specific attacks, before going into its wait animation. Each animation contains a list of animations that it can lead to and weighting. They also have variables for speed, the type of movement, and the duration till the next animation. This makes it very easy to make new states for enemies.

Shadowstep: Welcome
Shadowstep: Work
  • Facebook
  • Twitter
  • LinkedIn

©2021 by Joshua Tan. Proudly created with Wix.com

bottom of page