Specialization
Unreal Engine 5, Multiplayer Inventory System
A week by week presentation of my Specialization
![UML.png](https://static.wixstatic.com/media/c5350e_be75a0cd278148699543b7bcb37f8238~mv2.png/v1/fill/w_307,h_265,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/UML.png)
![Taiga.png](https://static.wixstatic.com/media/c5350e_8f2930fc9774476fa2511bc85c1affa6~mv2.png/v1/crop/x_0,y_0,w_1218,h_749/fill/w_307,h_189,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/Taiga.png)
Week 1
Preprod:
Planing and researching
Week 1 is over when I write this text.
I Started this week with a lecture about how to think when deciding on specialization, but I was already kinda set on what to do.
This week was mainly used for Planing and researching. I found quite a few nice documents about Ue5 and UMG.
​
(Unreal Motion Graphics UI Designer (UMG)
​
so i read up abit about that, and Slate, the API that UMG builds upon.
​
I also spent some time on a UML diagram, mostly for myself to have an idea of where to start, and what components/system i will need, followed by a Taiga project, to plan my time and tasks.
​
and finaly I started creating a very MVP version of the System, so I could raycast to an item, get the info and be able to extract the Items component.
![Ue5.png](https://static.wixstatic.com/media/c5350e_4d08602b6c794e1ebc8d2e09347a95f6~mv2.png/v1/fill/w_711,h_335,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/Ue5.png)
![InventorySlotWidget.png](https://static.wixstatic.com/media/c5350e_236ca8ecf8a54874af1f2552d18665c5~mv2.png/v1/fill/w_297,h_328,al_c,lg_1,q_85,enc_auto/InventorySlotWidget.png)
![UE5Inventory.png](https://static.wixstatic.com/media/c5350e_a0fe45e9bc4041a5a7e3775c92d16b0c~mv2.png/v1/fill/w_307,h_224,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/UE5Inventory.png)
Week 2
Alpha 1 :
Basic Setup
So we finished week 2, Good job! It has been a very interesting week with alot more progress than I thought, I Found some good Documentation online about How to work With UMG so I got up and working faster than expected.
​
By the time the week was up I had a early MVP version up on the system, I figured out how to Raycast from the camera to pick up Items and then add them to the Inventory Components Array last week, This week I Managed to get a UMG Canvas up with Inventory Slots that Shows the Content of the Inventory Array.
​
I also got some very basic Drag and drop functionality in to the system, so now i can drag and drop items to Empty Slots.
​
Focus for the next week will be to build on functionality such as Drag and drop on other items, and stacks and do the math behind those functions!
![BluePrint.png](https://static.wixstatic.com/media/c5350e_aca2c81ce2da476281ce9ece3b0ee4a7~mv2.png/v1/fill/w_711,h_342,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/BluePrint.png)
![Bild1.png](https://static.wixstatic.com/media/c5350e_46265867fad647a596e7f269737cb796~mv2.png/v1/crop/x_0,y_13,w_396,h_396/fill/w_307,h_307,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/Bild1.png)
![Bild2.png](https://static.wixstatic.com/media/c5350e_509c0d2e0054486eb1e5f6945940b861~mv2.png/v1/fill/w_307,h_211,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/Bild2.png)
Week 3
Alpha 2:
Minimum Viable Product
After week 3 have come to an end I feel very pleased with the week, acording to my schedule I am almost 1 week ahead of time, wich is great!
​
This week I got the math down for the drag and drop functionality, there are alot more math behind the scenes than I though, but now you can drag and drop items in your inventory, you can also split stacks and drop Items.
I also got a decent tooltip in to the system, and a Text that show what is targeted.
​
The biggest challenge this week was to get all the math behind splitting stacks and dropping items correct, there are so many ways to mess this up, and create Item duplications.
​
Next week will be about Using Items and spawning different effects based on the item.
![UE5Inventoryv3.png](https://static.wixstatic.com/media/c5350e_d5b5f64605f943ce94ac728759d98281~mv2.png/v1/fill/w_657,h_344,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/UE5Inventoryv3.png)
![IsCharacter.png](https://static.wixstatic.com/media/c5350e_e5a1669a136e440ba6ad2e48b6c3e2cb~mv2.png/v1/fill/w_307,h_233,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/IsCharacter.png)
![MultiSlotSupport.png](https://static.wixstatic.com/media/c5350e_706dc0696587499f9e81f12798a6c0eb~mv2.png/v1/fill/w_307,h_233,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/MultiSlotSupport.png)
Week 4
Beta:
Finish up!
week 4 have come to an end, and with that my "planed" time is over, next week will be all about Polishing the features I managed to add.
​
This week I felt I had some extra time, so I decided to add one last feature, the ability to add unique slot types, making it possible to, as in my case, have a mainhand and offhand slot.
​
the challenge with this was that I had to add a way to chose if the inventory component was on a character or a container and add different behaviors based on that choice.
​
It also added alot of changes to how all functions work, since now we have different behaviors for different slots.
​
This was a fun challenge to solve, and i´m really glad I decided to do this "extra" feature.
![EquipItem.png](https://static.wixstatic.com/media/c5350e_466673348a20475e85b79673dd1d80fa~mv2.png/v1/fill/w_711,h_288,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/EquipItem.png)
Week 5:
Polish and Deliver, Time for reflections
After 5 weeks the Specialization has finaly come to an end!
This was an awesome experience where I got to take complete ownership of the assignment, plan it from start to finish and then prove that I have the discipline to carry the project all the way to and over the finishline.
​
What I set out to accomplish was to create a Inventory system in Unreal Engine, the reason i went for this assignment was first that i wanted to brush upp on my Unreal skills, Second, and most important, i wanted to get hands on experience with unreals UMG system.
I feel I accomplished both of my goals and im very happy with the final product.
If i had more time to work on this project i would add a few more features to make it more user friendly, such as equip on dubble click, and a fixed tooltip instead of one dependent on the mouse position.
​
What would i do different?
If i had the chance to do the same thing one more time i would change my approach a little, I would put alot more emphasys on the UMG system, wich was the main reason i chose Unreal Engine to begin with and tone down abit on the "Programming" part.
​
But all in all, im very happy with my specialisation and what i have made. I hope you enjoyed following me on this challenge aswell!
​
Best regards
Henrik
​