Daniel Ibironke | Unreal Engine Games Designer
Lancer
Software Used: Unreal 5, Microsoft Word, Piskel
Genre: FPS



Gameplay:
Lancer is a quest based First Person Shooter. You play as Lancer, the protagonist, who fights evil robots. In the level, the player infiltrates the spaceship of the robots to defeat their leader in a boss fight.
In addition to what the framework had already included (base gun, enemies, pickups, etc), I implemented:
-
A bubble shield inspired by Halo, activated by pressing the button. While active, it blocks incoming fire but does not prevent the enemies themselves from entering the shield.
-
Doors which require keys to open, one gating access to the boss area. I color coded them to convey their importance (the boss door for instance is black, and the keys used to open it glow an orangey ellow.
-
Teleporters to take the player from one area to another.
-
Multiple weapons as children classes of the base weapon. I made a rapid firing machine gun, a close range shotgun, a gun that shoots mini robots which home in on enemies, and a grenade launcher where the first shot explodes into multiple grenades.
Problems I encountered:
Throughout this project, there were many issues I faced. One of the earliest was making the base projectile for the gun. For some reason, this gave an error. To get around this I made a new projectile, changing the appearance but using the same Blueprint for the one that already existed. I also had to alter collision settings to ensure it did damage.
Making particle effects for the grenade took a while until I found the Scale Vector by Curve inside Scale Mesh Size, a feature part of making Niagara Systems which I was unaware of and made it easier. Said grenades would deal damage to the player even when out of range. This was fixed by ignoring the player with a self-reference when applying radial damage.
Getting the dialogue UI to update as quests are completed was tricky, at least for those related to switches. I began with an On End Overlap event tied to a trigger volume, which was functional but unintuitive, as players would need to back away from the switch for it to work. I ultimately decided that for switches, the trigger volume updating the dialogue UI should move up and down on an endless loop, guaranteeing that the On End Overlap event triggers.
Programming boss behavior was especially tough, for movement patterns and damaging the player. I used a separate projectile as the base one was not working, and I removed all events calling to a parent function within the boss enemy's Blueprint (as the framework already included it) to start from scratch.






Plans I changed/cancelled:
There were a handful of features I wanted to have included which I was unable to. For one, I made an advanced door which opened diagonally, but it went unused as I couldn't get it to look right.
The idea of having the entire level in a single room (i.e. Lancer's spaceship) was also scrapped as the gameplay would be boring and too short. When making this choice, I updated the level's overall timeline as I added maps for the enemy spaceship and the boss arena.
The other features that had to be scrapped are the quest progress updating on the UI, and a camera shake to signal the robot invaders' arrival onto the ship. A sound cue was used instead.


