[HOME] -> [GAME DESIGN] -> [UNREAL ENGINE] -> [UNREAL ENGINE PROGRESS]
Unreal Engine Progress
About
This page is devoted to my progress within Unreal Engine 5. More specifically, my work on Penguinpocalypse. You can find the game design document for Penguinpocalypse [HERE]!
Past Progress
Download the game design document for Penguinpocalypse [HERE]!
A Github has been created for this project and will be published when the project is further developed.
Penguinpocalypse is a fight against the clock, so programming a global timer was imperative. The timer will be used to increase difficulty over time, and decrease player stats over time.
The timer’s hand moves every 15 seconds, giving a quick visual indicator of how close the player is to the next 60 second mark, represented by the red line.
Minigames serve as level transitions in Penguinpocalypse. To create a seamless transition from gameplay to minigame-play, minigames are all self contained blueprints that are spawned below the level when the level change function is called. A UI widget containing a render target of that blueprint is then added to the player’s viewport, displaying the minigame.
This implementation leaves a lot to be desired. Unreal does not support changing the player controller via blueprint, and thus new controls must be manually programmed within each minigame. Clipping and overlap also required manual tweaks due to Unreal’s hatred for flat objects.
This system will be a system I return to many times, and may never leave the current progress tab.
Current Progress
Tyler Camp creates all of our artwork via 2D sprite art, which is then implemented into unreal engine by me.
Below is a small gallery of sprites and custom in game assets created through this process.
Refactored the project to more closely align to industry best practices for Unreal Engine. This included remaking blueprints with an inheritance centric approach, reorganizing the project folders, and renaming files, variables, and folders in accordance with Unreal Engine naming conventions.
Code refactoring continues in waves as I learn more about Unreal Engine and its best practices.
Gameplay loop for prototype level established:
Added simple placeholder main menu and options menu.
TODO:
Rewrote the minigame system to utilize Unreal Possess function.
Created a parent minigame class to allow for easy implementation of additional minigames.
Future Goals
Create more convincing and more dynamic AI. This includes : adding a jump attack for the frog enemy, particle effects for enemies as they walk, better enemy movement, more dynamic responses to player stimulus, and animations for enemies receiving damage.
Combat is possibly the most important mechanic is small brawler games. I’m considering one of two combat systems:
Vampire Survivors style combat: weapons automatically do damage and the player does not have an attack action.
Classic Brawler style combat: Similar to old arcade games, players string combos together with different weapons using two or three attack actions.
Create a system the generates levels on the fly, with small differences in difficulty, style, and structure.
Add a map that allows the player to navigate between floors. In addition, players may strategize to pick a path with better resources for their particular run.
Create a more difficult enemy with unique mechanics that can be classified as either a boss or a miniboss.
Concepts, sprites, and AI for different enemies. Eventually create a miniboss or regular boss.
Create a more easily scalable system for adding weapons.
Add a ranged weapon.
Add weapon and character animations for attacking.
Create a level where the player can spend coins and purchase upgrades for their run.
QUICK LINKS: