Honored - Capstone project
Team: Dis Is Honored
Published on Steam: Feb 4th, 2022
Source Control: Perforce
With: Jira, Confluence
The final Capstone project at Full Sail University was to make a game based off of a produced game. We chose to use Dishonored as our reference.
My part of the video is 0:00 - 8:25
My contributions:
Menus
Save/load
Potions/food
Respawn
In the first sprint, I chose to do the menus to get my feet wet while I figure out proper processes.
I also chose the save/load system as I wanted to learn how to do that for another project I was working on.
I took the potions and food items to get the last few hours I needed.
The menus were fairly simple to implement, but were far from optimized.
Most of my time was soaked up by the save/load features. I got it working well enough, but I spent far more time than was estimated for the feature.
Finally, I put together the first iteration of our respawn system, which worked well for testing.
My part of the video is 0:00 - 16:11
My contributions:
Swimming
Wall of Light (WoL)
Fixed Options menu
Upgrade menu
Abilities:
Possession
Constitution
Agility
Shadow Kill
Pickups:
Crossbow Bolts
Runes
In the second sprint, I was much more familiar with our processes. Furthermore, the tasks I chose were really fun and rewarding, which enticed me to keep going.
I struggled with the save/load system in the first sprint, and it was still far from complete. My teammate decided to take it off my hands from sprint 2 on, as he was more experienced, and I was spending far too much time on it.
What I worked on instead, was swimming, Wall of Light (WoL), the Possession ability, the upgrade menu, several smaller upgrades (Shadow Kill, Agility, and Constitution), A couple more pickups (Crossbow Bolts and Runes), and I fixed up the options menu.
When I worked on the options menu for sprint 1, I misunderstood what was required, and added the wrong options. All I needed to add was the sound volumes, which turned out to be much simpler than what I had set up.
Now that the basic item pickups were already in place, it wasn't hard to add in any more items, so the pickups I added were a breeze and took no time at all.
The minor ability upgrades were also fairly simple, but they were largely tied to the upgrade menu, which is why I didn't put that together in sprint 1.
Swimming was easy, as Unreal already has just about everything set up with just a checkbox. The main difficulty was getting the sounds right, and swimming "on the surface" so you don't drown if your head is above water. Being a first person game, there were no animations to deal with.
The WoL was what I really wanted to work on. An electrified wall that killed and destroyed anything and everything that passed through it. It was a blast to make, and I breezed through all complications.
The Possession ability was likewise a task I was looking forward to, but I was also dreading this one, as I didn't know where to start. I toured Youtube searching, and found a few good videos that led me in the right direction. But in the end, I found a better way, and didn't follow those videos at all.
Possession had many flaws, and I worked on bug fixing it throughout the rest of the project.
My part of the video is 8:26 - 27:00
My contributions:
Rat Tunnel Level
Rat tunnels
Bug fixes:
Possession and Swimming
In the third sprint, we started creating levels. Our task was to create a new feature, and a level that will showcase that feature. We also did some bug fixing.
I started with a simple bug fix. If the player possessed an enemy and jumped into water, it caused wonky things to happen. I made a simple fix by making swimming force the player to unpossess.
As for the level feature, I chose Dishonored's Rat Tunnels. These are small tunnels the player can crawl through only if they're possessing a rat. These tunnels can lead to difficult to reach areas or shortcuts. I already had possession, the rats were already implemented, so all I had to do was set up the tunnel system.
At first, I tried to overcomplicate the tunnels by making it so that it teleported the player into a tunnel Blueprint outside the map. I quickly realized this would not work, and found a much simpler idea of just making a hole in the wall.
I made a Blueprint for the entrance/exit that would allow the player to enter only while possessing a rat. I also added a kill box within the tunnel that would kill the player if they weren't a rat (therefore if the player unpossessed or timed out, it would kill them)
As for the level itself, I had immediate inspiration when we started the sprint. I made sure to implemented some things I previously made (like the WoL) to make the level fun and interesting.
My part of the video is 0:00 - 12:35
My contributions:
Civilian Marketplace Level
Civilians
In the fourth sprint, we did much of the same as the previous sprint. Make a new feature, and showcase it in a new level. For this, I chose basic Civilian NPCs.
One challenge that came up is that there was no base NPC to create a child of. The Enemy BP was already set as an enemy, and it would be difficult to make a non-aggressive NPC child of it. Therefore, I basically just copied all of the Enemy's code into a new BP.
I had to do a lot of editing to the copied code, and focus it toward Civilian purposes, but just about all of the AI stuff was already well implemented. I didn't create the AI code, but I did learn much from fiddling and familiarizing myself with it.
As for the level, I just had fun creating the level as I went. Once again, I had an immediate inspiration for the base idea for the level, and worked off of that.
My part of the video is 0:00 - 12:14
My contributions:
Bug Fixes:
Civlian detection
Possession issues
WoL and Shadow kill
Doors blocking melee
Improvements
NPCs operating doors
Swim straight up
Abilities while swimming
Options addition
Upgrade menu
Agility scaling
The fifth sprint was all bug fixes and improvements, no new features to add.
I grabbed a bunch of bugs on my own features. The Civilians unable to detect the player, Possession was failing in certain conditions, the WoL and Shadow Kill made NPC pickups disappear, and doors blocked melee attacks. For improvements, I made NPCs capable of operating doors, the player can swim straight up with spacebar(jump button), allowing abilities while swimming, swap controls, and nerfed the agility ability.
A couple of these issues I thought were going to be far more difficult to handle, but turned out to be a real breeze. The civilians' detection was a simple branch node in the wrong place, and the possession issue was setting a variable too late.
The improvements were all easy as well. There were just a lot of them. I made it so that the player could swim straight up by holding space, and could also use some abilities while swimming, such as blink.
Several playtesters accidentally used the wrong weapon, because the left mouse operated the right hand, and the right mouse button operated the left hand. So I added a checkbox to the options menu that would swap the controls.
The upgrade menu had some extra buttons for testing that gave the player the certain abilities for free, so it was about time to remove those and clean up the menu.
Finally, I refined the Agility ability, as it was broken strong.
My part of the video is 0:00 - 8:42
My contributions:
Bug fixes:
BGM
Possession
Rat Tunnels
WoL and grenades
Improvements:
Swimming sounds
Deleted inventory screen
Weapon wheel
Potion indicators
The sixth sprint was much like the fifth sprint, bug fixes and improvements.
I had to fix an issue with the BGM, the WoL not destroying grenades, and issues with possession and rat tunnels.
Most of these issues were easy to fix, like adding grenades to the list of items the WoL destroys, or making it so the BGM doesn't overlap itself.
Possession was clipping the player or the possessed pawn through walls when they unpossess. This was a difficult issue to deal with, but I managed to fix it by unpossessing the player backwards relative to the distance from a wall.
As for the rat tunnels, there were issues that when the player blinks into or attacks a rat tunnel, it would kill them. So I just made it so the kill volume only detected the player's physics capsule, not their arms or weapons.
As for improvements, I edited some sounds while swimming, replaced the inventory screen with the upgrade menu, fiddled with the weapon wheel, and added potion indicators when the player was low on health or mana.
The inventory screen wound up being unused, and only really served to access the upgrade menu. So by replacing it outright, I cut out the middleman, and enhanced the upgrade menu.
I had also previously set up the weapon wheel to be much better than it was before. It was now toggleable. With the weapon wheel in place, I could add the few items that were in the inventory screen to the weapon wheel. I also set up previews of everything on the weapon wheel when the player hovers over the item.
I added a widget that would pop up when the player was low on health to indicate they can use a health potion.
There was an issue where another team mate and I took the same task without knowing. He completed the task before I did, which confused me. Luckily, there were a few additions to my version of the task that I could set as the main parts of the task and worked on those alone.