Project currently in development, a demo video will be provided once suitable.
This project is being developed for the 'Programming for Game Engines' module at Teesside University (Year 2, 2025 - Ongoing). The goal is to create a complete, engine plugin for Unreal Engine 5 using C++, implementing a functional in-game inventory system. Key requirements include exposing C++ functionality to Blueprints, implementing a generic C++ algorithm, and ensuring the design is scalable and portable.
Before diving into Unreal Engine, as a quick reintroduction, we were tasked with coding a simple Connect 4 game in standard C++ using visual studio. This involved working with 2D vectors and creating functions for game logic. Developing the win condition checking required careful algorithmic thinking to handle horizontal, vertical and diagonal lines efficiently.
This project also served as my first practical application of robust input validation to handle user errors gracefully.
This exercise served as a solid foundation before tackling the complexities of Unreal's C++ API.
UInventory component designed for attachment to different actors (players, chests, etc)
Base AItemClass for world representation, utilising a FItemData struct
Item properties (name, description, weight, value) defined via a UDataTable using FItemData
WIP
Engine: Unreal Engine 5
Language: C++, Blueprints
Libraries: C++ Standard Libraries (vector, iostream)
Core Concepts: Actor Components, Data Tables, Structs, Blueprint Exposure, Data-Driven Design
IDEs: Rider (primarily), Visual Studio
Tools: GitHub
As my second major project in Unreal Engine, adapting to its specific C++ implementation has been the primary challenge. Understanding and correctly utilising Unreal's macros (like UCLASS, UPROPERTY, UFUNCTION) and unique API feels distinct from standard C++, presenting a significant but valuable learning curve.
Navigating the engine's architecture and determining the optimal balance between C++ for core logic and Blueprints for flexibility or iteration is also a key learning area. Making these structural decisions effectively is crucial for building robust and maintainable systems within Unreal.
While still in progress, this project is already providing invaluable experience in adapting core C++ logic skills to a large, industry-standard engine and reinforcing the importance of understanding specific engine architecture.