Elysiums Holt - Skip to the showpiece!
Overview
The goal with this project was to make a 2D single player story game similar to Stardew Valley. This will be challenging as it requires a wide variety of systems including inventories and crafting which are something I havent done before.
Throughout this project I ended up working on pretty much every element of the game both relating to programming and other areas. A large portion of the final codebase relies on the systems outlined in this post and everything is publically available on both itch.io and GitHub.
Sorry that some elements of this post are rather vague in their details, it was written around 2 years after the project was completed and my memory of events is somewhat hazy. If more information is wanted feel free to ask me or have a look through the projects repository!
Development
Questing and NPCs
One of the main gameplay elements is the ways in which the player can interact with NPCs in the world and complete quests and tasks for them. As there were upwards of 10 NPCs in the game it was imperative that there were intuitive systems in place for both writing their dialogue and setting them up ingame.
To go about solving this I first decided on the structure of a Quest class which could be used for holding an NPC's data. I then developed a CSV based data importer which would allow me to write out all of the information needed for each NPC on a convinient and easily modifiable document.

This data was then interpreted by a variety of systems which I made for displaying the text on screen and allowing a player to progress through it. This is also all tied into the players save system so that their progress in dialogue and quests is saved

Data importing/Inventory
The next core element I needed to solve would also tie into NPCs and be the basis for most of the player's interactions with the world. The player had to be able to gather and use a variety of items from different locations and recipes to use within their save. All of these items will need to be imported and configured for use in the game along with their use in other systems such as potion brewing, crafting, and quests.
These items are arranged on a large spreadsheet similar to how the quests were and would allow me to store a variety of data about resources, items, and how things are harvested. This was tied into a similar CSV importer to the questing one and then is also used for ore node spawning, crate generation, crafting, and pretty much anything which could involve an item.

Crafting in particular is one element which I was really proud of on this project as it uses almost every system I made. First off it shows a window of the players inventory, all of which is dynamically generated by my save system and showed using my inventory displayer. It also shows the inventory of the crafting workstation using the same systems, and the crafting workstation itself. You can then transfer items into the crafting station again using my inventory system, and craft them into other items or potions using my crafting system. Its an excellent demonstration of everything coming together into one complete gameplay element.

The final product
Overall I am incredibly happy with this project and the work I did on it as it really made me push myself and I produced some really high quality work as a result. I really think this game concept and this project could have a future as at my Universities game expo we actually won the award for best game there with this project. The systems within it such as the inventories and workstations are definitely approaching or are at the industry standard of how work like this should be done, and this is by far the most finished and full project I have worked on to date.
Almost all systems relating to items in any way were made entirely by myself including the inventory, questing, trading, crafting and gathering. Furthermore I also worked on several other elements such as UI, AI, Level design, UI Design, and much more. Pretty much every element of the game was touched by me in some way, but my work mostly centered around things using items or NPC questing.