The goal of Alleyway Runner was to create a vertical slice of a level in UE4. I also wanted to focus on writing the blueprints and designing the level, so the environment art is from the UE4 Marketplace. I did create the UI, sounds, and various props such as the medkit and laser body. I created all gameplay blueprints from scratch.
PROCESS - TOOLS
I knew from the start I wanted to create something that had a classic game feel with lasers, platforming, homing rockets, and keys. I started with the lasers, key, and healthkit.
After getting the basics in place, I created a small test level to ensure these elements came together to form the type of gameplay I wanted. I also ensured each gameplay element had a different color code and sound effects.
I realized, at this point, I wanted lasers to move and turn on and off on timers so I could create puzzles with them. I set them up to be instance editable to adjust damage, delay, and time gap easily later on. I then made the homing rockets with the same attention to usability. I also added checkpoint/save data functionality.
PROCESS - UI
I also wanted to teach myself UE4's widgets in this project. I made a simple menu system that allowed players to change levels, quit to the menu, and leave the game. I like when the UI has some flavor, clearly.
PROCESS - GREYBOX
After everything was functional, I was ready to make my level. I created some new gameplay elements to ensure the level wasn't stale these included lasers that required keys to pass, moving platforms, and better platforming.
Since this would be the first level in the game, it begins slowly, introducing the player to new elements one at a time in a low-stress environment. Towards the end, it ramps up with obstacles being used in tandem, and the platforming forces players to think on their feet and move accurately. After this, all I had to do was add in my marketplace assets, and Alleyway Runner was complete!
I learned a lot about Unreal Engine 4 on this project, just as I had hoped. I got a decent understanding of blueprints, widgets, and navigating the workspace. I gained good habits early on, like exposing instance editable variables to make level design easier and how to comment code. While I don't blueprint often, it has been endlessly valuable to have a fundamental understanding of how they work, how to change them, and where everything is.