Artëfact | University project


🏷️ Programming🕘 6 months👤 1🛠️ Unity, C#, Magica Voxel🔗 Attachments

This is my first VR project made in my final year of university. It is developed in Unity with the help of the Virtual Reality Interaction Framework (VRIF). Through this project I learnt how to tailor experiences for games in VR as for how they bring fun and are affected by players' prior gaming experiences. Additionally, by overcoming many challenges and problems during development, I learnt much more about advanced architecture problems and C#.

This dungeon crawler has procedural dungeon generation with different kinds of rooms ranging from hallways, shops, combat rooms and boss rooms that spawn enemies.


Example dungeon layout from above.

Shops that sell different types of weapons from 1-handed, 2-handed melee to ranged weapons.

In this project I also leveraged scriptable objects extensively to avoid tight-coupling. I expanded upon the original concepts by Ryan Hipple to create my own version of these systems that would be suitable for my project.

Int Variable Scriptable Object that can be referenced anywhere since it exists as an asset.


Int Variable usage example.

I also implemented the Scriptable Object Event System in this project to avoid direct-referencing in the inspector.


Scriptable Object Event System listener setup in the inspector.
Raising the event (sending messages) for when the player enters any room.

I also created an extensible weighted random generator that can return any type of assets or class that we want. We can derive from the base system to make new ones that fit our needs. In this case, I want it to return a scriptable object.

The source of the weighted random generator.

Implementation of the system, this will return a scriptable object.


Weighted Random Generator set up in the inspector, the first slot is empty if we want there to be a chance to get nothing.

Related information
APK download for Quest