top of page
Inventory System
For this Inventory System, I wanted to draw inspiration from the game Apex Legends and create an inventory that featured the same level of interactivity for players.
This project allows the player to equip different weapons with their own stats and attachments, and edit their visible inventory as much as they please, dropping and reordering their items as they like.

Project Main Goals
My goal with this project was to utilize the knowledge and skills I have built over the last few months. Not just about systems but about how to construct a specific experience for players with my systems. Here were some of my main project goals with this inventory system:
-
Create structs for items and weapons that account for multiple types of each object
-
Create a diverse database for each detailing a long list of specifics for each item
-
Create an interactive inventory UI that allows players the freedom to organize it however they so choose

Workflow
Detailing Each Struct
There's a long list of items and weapons featured in Apex Legends and I wanted to replicate that same level of detail. So I created a document breaking down each item, figuring out how each is represented within every struct. Here is a list of details I noticed as I analyzed each item:
-
Attachments change specific stats on weapons by a certain percentage that changes across each weapon
-
Ex: Ammo packs, stocks, barrel laser sights, etc.
-
-
Hop-up dont always carry unique boosts to specific weapons
-
Backpacks and armor have their own slots in the inventory
-
Players are able to drag items across and into different slots or to drop them onto the ground
After creating this list I built out two different structs, one for things I deemed items and the other for things I deemed weapons. After building these structs I created a weapon database and an item database and created as many items as I could and a select set of weapons for players to pick up.
Never Enough Detail
As I continued to work I started to run into a lot of issues with properly differentiating certain items from others and came to the a few realizations:
-
Some items are too unique to share certain classifications and need their own
-
I need to decide how attachments will should effect specific weapon details
-
Weapon Attachments can hold so much detail, they need to be a struct of their own
These realizations forced me to go and reevaluate how to build out this system best for the players and so I decided to raise how specific classifications were and decrease my focus on the effect of attachments on weapon details because it simply wasn't core to making the inventory system itself feel better for players


Lessons from My Mentor
Inventory Interaction
After setting up picking up items and filling the players personal inventory, I wanted to create inventory UI players could easily interact with. These are the main features I wanted this inventory UI to display
-
Players should be able to seamlessly drop items and move items to different item slots
-
Weapon attachments should automatically disappear from the inventory and attach to a weapon whenever one is picked up
-
Players should be able to easily tell what items they are carrying by looking at their icons
These choices to allow or do certain options for the player to me were chosen so the player doesn't have to tediously take care of menial tasks and so players can quickly click around to adjust their inventory.
My mentor Eric Seaman went on to interview me on the purpose of certain design decisions and asked how certain problems could be solved in other ways. These were some of his biggest notes for how I should go about answering design centered questions:
-
There is no specific right answer to every question, you want to show you know how a problem can be solved in multiple ways
-
Don't compare or summarize your system to something that already exists, you're undermining the design decisions you've made
-
Talk more about why you made that decision to support the player experience you're trying to create, why does this decision help build that experience

Takeaways
In total I think this series of projects helped expand my ability to talk about many of the things I design not just the systems I create. Eric Seaman has been a large help in building a massive new skillset and pushed me to pick up an incredibly useful skill. Since working on these smaller systems and working with him, I've been able to work on projects with a much clearer idea for designing systems and even levels centered around my intentions for creating a certain player experience.
bottom of page
