Project Status: In Progress
Project Type: Personal Project Demo
Project Duration: >5 Months
Software Used: UE5
Language Used: C++ blueprints
Primary Role(s): Programming & Design
This untitled survival game demo is a scrapped prototype from my third year at uni that I've decided to continue working on. It's focused on a player trying to survive in a planet without oxygen
The project consists of a system of tools that could be used in a potential future survival game project with a focus on making them designer friendly and as easy to edit as possible:
Inventory System
Item System
Item Pickup
Looting System
Player Stats
Player Building
Crafting
Dynamic Day/Night Cycle
Dynamic Weather
Farming
Electricity/Power System
Item Consumption
Resource Harvesting
ADD THE CODE SNIPPETS
Structure for the item data table
Data table containing every item
BP_ParentItem in editor
Every item in the game is created using a data table & structure asset.
To add an item, the editor creates a new row and inputs:
Name - The display name for the item
Rarity - Controls the colour of the item and how often it might spawn in loot containers
Description - A short couple of lines to describe the item
Thumbnail - What the item looks like in an inventory
Static mesh - What the item looks like when it's been dropped
Stack size - The maximum amount that can be held in a stack
Item type - The type of item (Consumable, Item, Tool/Weapon, Ammo)
In an effort to make adding items to a scene as user-friendly as possible from a designer perspective, you add BP_ParentItem to the scene and then change the ItemID to match whatever item you want. This updates all the data (when picked up and the mesh on the floor) in real-time.
Previously I had it setup where the editor had to create a BP_[Name]Item asset for each item which was inefficient and was really slow to implement new items.
The system I have setup currently works a lot more fluidly and speeds up the proccess a lot.