Main Game Development Log

Main Game Development Log

20th February 2023

Implementations – Added Increase Health button onto main upgrade machine. Stopped player gaining health from health pickups once they have full health. Added automatic door to main upgrade machine.

Issues – Automatic door does not fully open. Issue fixed by making collision box for door larger, and unparenting collision box to door.

Upgrade screen button widgets overlap one another and do not disappear when another button is clicked. Issue fixed by creating Widget Switcher and setting index of switcher to the text which needs to be shown, and removing other texts if they are on screen when another button is clicked.

Door Issue
Widget Overlap Issue

21st February 2023

Implementations – Changed main upgrade screen to show Coin, Health and Time widgets instead of removing them from screen.

22nd February 2023

Issues – Player could gain beyond max health once they had taken damage. Issue fixed by clamping max health inside the health pickup blueprint.

Health Clamp Code

23rd February 2023

Implementations – Coins now move towards player when player is close by, and after 10 seconds they travel towards player, if they are out of reach.

Coin Attraction Code

27th February 2023

Implementations – Inserted prototype neon lights into game.

Neon Lights

28th February 2023

Implementations – Turrets now follow enemies within a radius around each turret with a slight delay, and reset to original position once enemy is outside of radius.

Turret Rotation Reset Code

1st March 2023

Implementations – Turrets now shoot at the closest enemy within their radius. Changed enemy mesh to character mesh instead of cubes. Added Enemy Health, weapon damage to enemies, ability to manually reload weapon, and able to purchase a shield which lasts for 30 seconds.

Issues – Enemies unable to move to player when they become stuck on an arcade machine. Issue fixed by unticking Block Enemy collision in arcade machine collision detection.

Turret Block Enemy Movement Issue

7th March 2023

Implementations – Added shield countdown timer, after purchasing shield, pause menu, migrated the main HUD elements into one widget, removed door to upgrade machine, added weapon ammo counter UI element.

8th March 2023

Implementations – Enemies now randomly drop either a health pickup or a shield pickup with a 1 in 100 chance of dropping. Included actor life spans of drops to destroy after eight seconds of dropping. Shields now last 10 seconds. Random drops now bounce slowly when spawned.

Issues – Shield drop actor did not update the shield countdown timer when activated, or destroy the actor when the timer had finished. Issue fixed by creating a second progress bar, and activating each bar via a widget switcher.

Shield Timer Issue

9th March 2023

Implementations – All progress bars now deplete or fill smoothly.

10th March 2023

Implementations – Replaced timer with wave number. Enemies now spawn after each other in a wave format, and increase their health after each round.

Issues – Collision between enemies and player sometimes results in either actor being flung across the map. Issue fixed by setting the collision of the enemies and boss to Physics Only, upon enemy death.

Enemies only spawn coins when they have been hit with a projectile instead of on death. Issue fixed by checking if enemy health is less than or equal to zero, and then spawning coin.

Boss enemies only spawn on the 2nd round.

Enemies still spawn during a boss round. Issue fixed by setting the number of enemies during the boss round to 0.

11th March 2023

Implementations – Boss rounds now only include boss enemies.

Issues – Boss enemies cannot destroy barricades. Issue fixed by finding all actors with the tag “Enemy” and allowing them to destroy barricades.

Boss Enemy Barricade Issue

13th March 2023

Implementations – Created Main Menu, imported images from Travis, and included animations into Main Menu. Created on player death screen, which includes option to restart game, view the leaderboard and quit to main menu.

Main Menu

Issues – Fixed the Boss only spawning on the 2nd round issue, by creating the “Boss Round Number” variable, and increasing this by one when a round had passed. Then checking if the variable was equal to “2”. If true then spawn a boss. Whilst also resetting the “Do Once” node after the boss had spawned, alongside setting the variable back to 0.

Boss Round Spawn Code

16th March 2023

Implementations – Imported and added Coin and Ammo counter art onto main HUD. Imported new font. Lights now flicker during boss rounds. Implemented boss round widget, signalling to player when a boss round begins. New coin model added to project.

Boss Round Flickering Lights Code
Flickering Neon Lights Blueprint

Issues – Major bug prevented the opening of the project. Issue was caused by an unloaded actor which was a deleted blueprint which was still in the level. Issue fixed by creating another map and transferring each object over to the new map.

Lights continued to flicker after the boss round had been completed. Issue fixed by creating the code in the level blueprint, and checking whether the boss round number was equal to 0.

Unreal Crash Bug

20th March 2023

Implementations – Coins now become smaller as they get closer to the player. Created multiple enemy variants, which now spawn randomly each round. Imported Health Bar UI from Travis. Heart image next to health bar now pulsates when player health is 25 or below.

21st March 2023

Implementations – Removed ability to jump. Added blocking volume on ceiling of map to prevent enemies from being flung out of the map on collisions. Right Click instead of R now reloads weapon. Imported pause screen images from Travis and updated pause screen with new images and animations. Imported Options Menu images from Travis. Updated Options Screen with new images and animations. Updated each enemy variant health. Player can collect and purchase shields and use them whenever they please.

Issues – Whenever the player collects or purchases a shield the shield timer bar will not update. Issue fixed by resetting the 10 seconds of the shield after each one has depleted.

Shield Countdown Timer Reset Code

22nd March 2023

Implementations – Updated the movement speed of each enemy. Enemies now cause different amounts of damage to the player. Gun Guy Enemies now shoot at player and maintain their distance from the player. Bomb Boy enemies now explode on death and cause a chain reaction to other Bomb Boys. Added an impulse force on Bomb Boy explode which knocks the player back. Bomb Boys now flicker to give the player a visual aid of when they are close.

Bomb Boys Chain Reaction

Issues – Bomb Boys impulse did not knock back enemies. Issue fixed by ticking the “Use Separate Braking Friction” on enemy movement, which stopped the enemy from automatically slowing down.

23rd March 2023

Implementations – Bomb Boys now drop grenades on death, which cause damage and knockback to the player and enemies. Bomb Boys Grenades now explode other Bomb Boy enemies.

Bomb Boys Drop Grenade Code

24th March 2023

Implementations – Imported Shield Icon from Travis, and added the icon to the UI whenever the player picks up a shield.

Issues – Enemies can still apply damage to the player even when the shield is active. Issue fixed by creating a boolean when the shield has been activated and checking on each enemy blueprint if this boolean is true. If true then apply no damage to the player. Imported Game Over Screen Images from Travis. Updated Game Over screen with new images and animations.

24th March 2023

Issues – Turrets will only target the Spike Head enemies. Issue fixed by checking the overlapping actors on event tick, and putting these actors into an array variable.

Turret Targeting Code

27th March 2023

Implementations – Blood screen on screen shows when player receives damage, and disappears when player is not receiving damage. Included Pixel VFX Explosion when Bomb Boys and Grenades explode. Player flashes when damaged. Updated layout of ground floor and basement. Included trigger which hides the ground floor when the player enters the basement.

Hide Ground Floor Code

Issues – Player did not die when they had 1 shield in their inventory. Issue fixed by removing the Has Shield boolean on event tick.

28th March 2023

Implementations – Enemies are now hidden once the hidden trigger has been activated, and also are unhidden once they have left the trigger. Teleporters now included, which allow the player to teleport to the different floors. Bomb Boys and their grenades do not damage the player if the shield is activate.

Hide Enemy Code

Issues – When the player moves down the basement stairs the enemies movement on the ground floor will be blocked by the top section of the basement. Issue fixed by creating a separate section for the basement and setting no collision when the player moves down the basement stairs.

29th March 2023

Implementations – Turrets now only target all enemies except the mechanics, even when a mechanic is already overlapping the detection radius.

Issues – Enemy and Boss health does not grow after each round. Issue fixed by getting the Custom Health Component by class when an enemy had spawned, and setting the health through the component.

Enemy Health Issue Code

30th March 2023

Implementations – Bomb Boys Grenades now have random velocity when spawned. Imported Health Pickup Model from Travis, and implemented model into game. Added a Pawn Sensing component to Gun Guys, to only shoot when they can see the player.

2nd April 2023

Implementations – 3D Turret models have now been successfully imported with animations and textures.

5th April 2023

Implementations – Teleporters now disappear when the player is in the basement. Gun Guys now follow player and do not keep shooting in one place when they see the player. Added carpet material to floor of ground floor, and stone material to floor of basement.

6th April 2023

Issues – Enemies cannot attack player if the player is on the edge of the stage, since the Navigation Mesh will not fill all the way up to the edge of the stage. Issue fixed by adding a fence to the stage.

Navigation Mesh Issue

7th April 2023

Implementations – Altered the map and made it slightly smaller. Added textures to walls, stairs, stage and fence of ground floor. Updated neon lights locations in the map.

Issues – Whenever the player activates a shield, this causes widgets to continue to show on screen even when the player has left their overlap boxes. Issue fixed by setting the collision responses for the shield for World Dynamic to ‘Ignore’.

Shield Widget Overlap Issue

10th April 2023

Implementations – Created projectile 3D asset and imported into game.

17th April 2023

Implementations – Updated player movement to a smoother player movement. Clamped certain turrets rotations.

Issues – Gun Guys did not shoot at player when in the basement. Issue fixed by changing the Visibility Trace Response of the Trigger Box to Overlap.

Projectile shoots out sideways. Issue fixed by changing the rotation of the projectile in Maya and reimporting the model.

Enemies jitter when rotating towards the player. Issue fixed by ticking Orient Rotation to Movement and unticking Use Controller Rotation Yaw.

Enemy Jitter Issue

21st April 2023

Issues – Mechanics only move to one active turret, and then stop moving once the active turret has been deactivated.

27th April 2023

Implementations – Imported Player Shooting SFX, Bomb Boys Explosion and Bomb Boys Grenade Explosion from Travis, and implemented all sounds into project.

Issues – Mechanics now target individual turrets, spawn at random spawn points, spawn between 30 and 60 second intervals, and set their location to a random spawn point whenever they are hit with a projectile.

Whenever the player collects a shield they can press E to keep spawning shields even if they do not have one in their inventory. Issue fixed by setting the “Has Shield” boolean to false when the shield counter is 0.

3rd May 2023

Implementations – Edited Title Screen and Gameplay Music, and implemented into game. Manipulated Enemy Death, Click Sound, Reload Sound, Player Death Sound, Turret Activate Sound, Turret Deactivate Sound, Boss Footsteps, Teleporter Sound and Coin Collect sound and implemented into game. Created Boss Round Music and implemented into game. Gameplay music gets faster as each boss round passes.

Music Speed Increase Code

4th May 2023

Implementations – Ability to change volume of music and SFX in options screen. Created Shield Activated SFX, Player Damaged Sound and Boss Roar Sound and implemented into game. Imported Upgrade Screen Buttons from Travis and implemented into game. Added Camera Shake when player shoots, when Bomb Boys explode and when the Boss spawns.

Sound Sliders Code

Issues – Turrets do not revert back to the correct position when they have been reactivated after deactivation. Issue fixed by creating blueprints for each turret facing a different side and creating their own variants when they have been deactivated, to keep their rotation clamps correct.

Player can restore health infinitely on the upgrade machine. Issue fixed by checking if players health is equal to max, and if so then show the full health widget.

Restore Health Button Code

Full Health Widget showed when player was in overlap box of health pickup when the health pickup had been destroyed. Issue fixed by removing the widget when the pickup had been destroyed.

Gameplay Music and Title Screen Music overlaps when returning from Pause Menu. Issue fixed by fading each piece of music in and out when accessing the Pause Menu.

Into Pause Menu Code
Out Of Pause Menu Code

5th May 2023

Implementations – Imported Enemy models from Keir and implemented models into game.

6th May 2023

Implementations – Boss roar and screen shake now triggers when the Boss Round Banner shows.

Issues – Player can teleport infinite times when on the teleporter pad. Issue fixed by disabling the collision of the teleporter capsules, and re-enabling after the cooldown period.

Teleporter Collision Code

Player Projectile Damage did not increase whenever the Upgrade Weapons button was clicked. Issue fixed by creating the damage variable in the Third Person Character blueprint, and then setting the variable inside the projectile blueprint as the same as the character blueprint.

Upgrade Weapon Code
Infinite Teleporter Glitch

7th May 2023

Implementations – Added prompt for the player which says F to activate shield. Boss now shoots at player. Final version of game has been built.

Shield Prompt Code

Link to executable file of game – https://nathan1230.itch.io/retro-rampage

Gameplay Video

Influences

Our main influences and inspirations for this game were classic arcade video games, mostly from the 1980’s. Games such as Pac-Man (Namco, 1980), Tetris (Alexey Pajitnov, 1985), Space Invaders (Taito, 1978) and Super Mario Bros. (Nintendo, 1985). The reason being is that we wanted our game to have a retro feel, and include subtle easter eggs to these types of games. Examples include the Spike Head enemies referencing the shells from Super Mario Bros. (Nintendo, 1985), and the retro style sounds of our game being a throwback to the classic arcade games.

Additional references came from games such as Hotline Miami (Devolver Digital, 2012) and Call of Duty: Black Ops (Activision, 2010). These games were chosen for the top down perspective and their zombie wave resist game mode respectively. These games also offer an intense gameplay feel for the player, as this is also what we hoped to achieve within our game.

The music I had created for this project was mostly inspired by the soundtrack of Oddworld: Abe’s Exoddus (Oddworld Inhabitants, 1998). I wanted to create a gameplay track which incorporated elements of this soundtrack. More specifically, having the bass stand out and become more intense as the gameplay goes on.

Reflection

Throughout the development of this project, our group had been using HacknPlan to monitor our scope for this project, and continuously add, update or remove tasks for our game. I believe we worked well together as a group, and achieved a working playable game, as each one of us understood our roles and what we wanted to achieve for this project.

Our Group’s HacknPlan

During development, I came across many different challenges. Some were more difficult than others. For example the biggest challenges I faced were the turrets targeting systems and the menace mechanics finding the turrets to deactivate. These two issues took a few days each to overcome, and many hours spent figuring out ways to achieve what we wanted for the game. Conversely, the many other issues I faced were insignificant in size compared to these two large issues, and were easily overcome due to the groups problem solving skills. I had learned what each node in the blueprints of Unreal Engine would do, as time passed, and gained a better understanding of blueprints, and what I could achieve with them. With these skills it was easier to implement each mechanic we wanted for our game.

Our group was in constant communication in our discord group, and I had received feedback on some of the elements during this project. One example being that Travis suggested randomising the pitch of the player shooting each time, as this would offer more variety on the sound.

Another example of being offered feedback is the sound of the turrets activating and deactivating. Travis suggested that the sound should be much deeper and more mechanical sounding. From the feedback Travis had suggested I then randomised the pitch of the player shooting and recreated the sound of the turrets activating.

Discord Feedback

References

Activision (2010) Call of Duty: Black Ops [Video game]. Available online: https://store.steampowered.com/app/42700/Call_of_Duty_Black_Ops/ [Accessed 7/5/2023].

Alexey Pajitnov (1985) Tetris [Video game].

Devolver Digital (2012) Hotline Miami [Video game]. Available online: https://store.steampowered.com/app/219150/Hotline_Miami/ [Accessed 7/5/2023].

Namco (1980) Pac-Man [Video game]. Namco: Japan.

Nintendo (1985) Super Mario Bros. [Video game]. Nintendo: Japan.

Oddworld Inhabitants (1998) Oddworld: Abe’s Exoddus [Video game]. Available online: https://store.steampowered.com/app/15710/Oddworld_Abes_Exoddus/ [Accessed 7/5/2023].

Taito (1978) Space Invaders [Video game]. Taito: Japan.

Third Party Assets Used

Reekee of Dimenzioned (2005) Arcadepix [Font]. Available online: https://www.dafont.com/arcadepix.font [Accessed 16/3/2023].

Leave a Reply

Your email address will not be published. Required fields are marked *