[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

Game Concept

Download the game design document for Penguinpocalypse [HERE]!

GitHub Setup

A Github has been created for this project and will be published when the project is further developed.

Health + Armor
In Game Timer

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.

Minigame System 1.0

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.

Multiplayer Synchronization
Pause Menu
Player UI 1.0
Weapon Attachment

Current Progress

Asset Development

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.

Basic Enemy AI
Code Refactoring

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.

Damage
First Playable Level

Gameplay loop for prototype level established:

  • Player spawns
  • Random enemies spawn within a fixed distance
  • Player must kill a set amount of enemies
  • Enemies drop a reward based on supplied reward table
  • Once the player has killed the required amount of enemies, the level ending function is called. The level ending function:
    • Destroys all enemies on level
    • Destroys enemy spawner
    • Spawns level exit
  • Player enters level exit
  • Minigame widget appears and player is given a reward from the minigame
  • Player moves to the next level

Main Menu

Added simple placeholder main menu and options menu.

TODO:

  • Remove UI from menu
  • Add custom menu assets
  • Create custom font
  • Add decoration to main menu background level
Minigame System 1.1

Rewrote the minigame system to utilize Unreal Possess function.

Created a parent minigame class to allow for easy implementation of additional minigames.

Player UI 1.1

Future Goals

AI Update

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.

Better combat

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.

Dynamic Levels

Create a system the generates levels on the fly, with small differences in difficulty, style, and structure.

Dynamic Map (Slay the Spire Map)

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.

First boss

Create a more difficult enemy with unique mechanics that can be classified as either a boss or a miniboss.

More Enemies

Concepts, sprites, and AI for different enemies. Eventually create a miniboss or regular boss.

More Weapons

Create a more easily scalable system for adding weapons.

Add a ranged weapon.

Add weapon and character animations for attacking.

Shop Level

Create a level where the player can spend coins and purchase upgrades for their run.



QUICK LINKS:


[HOME PAGE]


[PERSONAL GOALS]