Devlog 5 - Polish and UI


Overview

Since the last devlog, the game has essentially been completed. There are 3 enemies, 6 full levels, 3 music tracks and a functional narrative (among other things).

New Enemy Types

Pictured above: The Uzi Guy killing the player.

The "Uzi Guy" is a very dangerous wildcard. Within 0.5 seconds of spotting you, he will unleash a torrent of bullets. The spread/inaccuracy is so extreme that pretty much everything in the vicinity will be killed (including hostages and other enemies). The ideal strategy is to shoot him before he can even begin. It is near impossible to dodge his volley of bullets. 

As a balancing measure, the Uzi Guy cannot move at all while attacking. He will also not stop shooting until you are either dead or out of sight. Cover is the only safe option.

Unlike the rest of the enemy cast, the Uzi Guy doesn't have an ally check before shooting. He will absolutely kill anyone in front of him, be they friend or foe.

Pictured above: The Shotgunner killing the player.

The Shotgunner is a terrifying assault unit. He moves much faster than the other enemies while attacking, hounding the player until they are cornered. 

His gun fires infrequently but heralds certain death, firing 5 instakill projectiles in random directions simultaneously . You will not be able dodge it in time. He can also sometimes kill hostages due to the weapon spread. To balance the insane damage output, he has a longer wait time between spotting the player and shooting (0.75 seconds rather than the standard 0.5). It was way too hard before I increased it.

The Shotgunner also has an ally check, so he will at least avoid shooting if there are enemies or hostages in his way.

Pictured above: The player killing Cletus Harling.

There is also a "final boss" enemy. Cletus Harling is one of the mob bosses involved in the events of the game. When you enter the room he will speak to you with the dialogue system. If you wait more than 3-4 seconds, he will begin shooting at you (there is no cover in his office either so you will absolutely die).

He can't move or really do anything. He serves as narrative closure, rather than a competent foe.

Cletus has a unique corpse sprite, depicting him hanging back in his chair as it slides across the floor.

Intro and Outro

Pictured above: The game's intro - plays before level 1.

There are now some very simplistic story cutscenes. A large panel of text will appear at the game's start and end, which can be skipped by pressing Space. These scenes help to flesh out the world a bit, as well as providing context and justification for the gameplay.

Menu Screen

Pictured above: The menu screen with an animated title.

A menu screen has also been added. It is fairly simple and minimalistic, but I think it does the job perfectly fine. I don't really know how to animate UI or make it look nice in Unity, but I did as much as I could.

Levels

I realised fairly early on that making multiple levels would be no small task. Placing each tile manually as well as the initial setup of a level were issues that I was quite concerned about.

Pictured above: The wall rule-tile.

To solve the tile tedium, I learned how to create a custom Rule Tile. Now, whenever I place walls, they will automatically be rendered as the correct tile. This made drawing level layouts unbelievably fast. The first few levels, by contrast, took a very long time to make (I hadn't added the Rule Tile yet).

Pictured above: The default scene setup.

Another development was the SceneSetup prefab, which allows me to start making new levels instantly. All of the functionality and tools required to create a standard level are included within it. It greatly helped to speed up the level design process, because setting up things like the UI and tilesets was very time consuming. This also means that if I change the prefab, all of the levels will be updated. I can now easily add and remove things from the default scene setup without worrying about other levels being formatted differently.

Music

I have added three music tracks to the game, all composed rather hurriedly in FL Studio 21.

Pictured above: The first action song in the game, Wubber.

This song plays during levels 1-3. It is a very rhythmic action tune which helps set the mood for the beginning of the adventure.

Pictured above: The menu/cutscene theme, Intermission.

Intermission plays during the intermission scenes (who would've guessed) and on the menu screen. It feels very mysterious and foreboding.

Picture above: The second action theme, Final Rush

Final Rush plays during levels 4-6. It comes at the point in the story where things start getting very serious. I think that this song really fits the last few levels. It feels very intense, desperate, and climactic.

Level Entrances

Pictured above: The new level entrance, with a breached door and futuristic squad car.

I felt the need to add something like this for a while, as it seemed unclear when going between levels whether the player was in a completely different building or just on a different floor. It is now much more obvious that each location is unique.

Security Doors

Pictured above: Security door with a control box to the right.

The security door is completely impassable at first. You cannot move or shoot through it, and enemies cannot see you through it. The only way to open it is to destroy its associated control box.

I gave the control box similar colours to the door and placed the very first one right next to it (see above picture) to make it as obvious as possible that the two different objects are correlated. I felt that a tutorial would be unnatural and awkard, but that players still somehow needed to learn it. Instead, I opted to do it more organically, allowing the player to discover the solution by themselves. 

When the player reaches this section, they know that they can move and shoot. No other input has been required of them thus far. An interact key would make sense here, but to the player's knowledge there isn't one. Naturally, they will try walking up to the door to see if it is solid. They may also walk over to the box, seeing if it is some kind of touch-activated pressure plate or button. Once these options have been exhausted, the only natural conclusion is to shoot either the door or the box. Once the box has been shot, it makes a loud noise and appears to shatter. The door will then open, forming the link in the player's mind that "if I shoot a control box, a door will open".


Pictured above: The open security door and broken control box.

Each security door afterwards has the control box slightly further away from it, teaching the player that they may need to explore (in the event that they find a door without a clear means of opening). By the time 2 or 3 of these have been opened, the player should clearly understand how to interact with the security door.

In the formal testing session, everyone who reached this section solved the puzzle with no difficulty. While watching them play, I observed that they behaved almost exactly the way I had anticipated. Mission success!

Fixing a Persistent Bug

Pictured above: A simulated recreation of the bug.

Ever since enemies were added, there has been a persistent problem of them getting stuck on walls and props. 

While in an idle state, enemies typically walk in straight lines, bouncing off of objects to change their movement direction. But when this bug occurred, the enemy would either stop completely or slide along the wall without ever changing direction. I believe that this was caused by the idle bounce code being triggered without actually moving the enemy. The bounce only triggers at the start of a collision, so if the enemy somehow didn't move away from the wall, it would not attempt to bounce again.

I employed two solutions to fix this problem:

The first was to keep track of whether the enemy had bounced at all. If an enemy was still colliding and had not bounced, it would attempt to bounce again. This fixed some of the problems, but the bug still persisted.

The second solution (which completely fixed it as far as I am aware) was to record the exact time that an enemy had first collided with the wall. If it was still colliding after a very small interval from the recorded time, the enemy would attempt to move in a random direction. This timed interval would repeat until the enemy was no longer touching the wall.

I have not encountered the bug since adding these two fixes, and I also didn't see it occur during the testing session.


Response to Previous Feedback

I think that the only feedback I directly addressed in this update was the following:

-"just want more levels now 😄"

As you wish! There are now more levels.


New Feedback

I received lots of feedback this time. People seemed to enjoy the game.

I will only include feedback here which included either explicit or implied suggestions.


Visuals

-"Visuals were almost spot on. Some movement on the arms would be a good addition"

-"Took me a second to realize what hostages looked like"

-"Love the vibes of a hostage rescue shooter, looks amazing, maybe the guns can look a little bit more pronounced"

Gameplay

-"Gameplay is challenging which was excellent. Did note that due to overlap between enemies and hostages you could kill both with one bullet"

-"Very solid, I enjoyed it. Consider maybe the enemies having an alert, like out of metal gear solid. :v"

Audio

-"Quite loud but that's not a bad thing. Sound effects were spot on"

-"the sound maybe a little bit crunchy"

Performance/Bugs

-"if approaching wall at the right angle, am sometimes able to shoot through it"

Difficulty

-"It was difficult. But this isn't a bad thing. I did enjoy it. That being said, other may get frustrated, maybe look at a difficulty slider?"

-"Love the difficulty spike, feels like it's on a very good curve, would love more levels that are more difficult"

People generally found the game difficult but I think they enjoyed it, judging by the overall sentiment.

General Feedback

-"Should add an option to use the same guns that enemies have access to"

-"it took me a while to figure out what were the hostages because i kept accidentally killing them, i also struggled to read the text because i didnt want to die!"

-"let enemies shoot more slow down"

-"Also also, can I shoot the pot plants and have them smash?! 100% necessary use of your time" I wish I had time to add this. Sorry :(


I found this feedback rather funny:

-"everybody gangsta till the red shirt guy takes his shotgun and blows your head smoove off"


Plans

Based on all of the feedback I received, these are the features I would like to add in the next week (if I get time):

-Hard Mode: You only get X shots in your gun and if you run out you fail

-Easy Mode: Enemies only fire on every second shot

-Shots/Kills Ratio: Stat on win screen to show how many shots it took you to kill all the enemies (presented as a ratio).

-I might also tighten up some of the colours (mainly for hostages and guns)

Leave a comment

Log in with itch.io to leave a comment.