Tower VR
Me and a group of 4 other developers were tasked with creating a VR Tower defense game in Unreal Engine 5. I did alot of work for the VR UI widgets, mostly setting up the controlls in order to use them. I also created a melee attack for the player in the blueprint system and I created a mana regen script in C++. Lastly I spent alot of time helping with integration.
This project was done in a Scrum workflow, using trello for task management and Perforce for source controll.
Showreel
My contribution to the project
- Setting up VR UI Widget interaction.
Created a system that would allow the player to interact with UI elements placed in the world.
- Creating a player melee attack system.
- Creating a mana regen script.
From the start of the project we wanted to have the player be able to attack in some way. I created a melee weapon system for this using Unreal's blueprint system.
- Overseeing much of the integration of seperate systems.
I was often the person who helped bring two or more systems together.
I'm most proud of the work I did on integration. Prior to this project I usually only worked on and integrated my own systems, but this time I played a much larger role as I helped others properly integrate theirs too. Doing this early on in the project gave me a far clearer view of how all the systems in our game worked, and this made it easier for me to develop new systems that worked with them properly and to help others do the same.
Player melee attack
From the start of the project we knew we wanted the player to be able to attack enemies directly and not just have the towers do all the work. After going trough several ideas we eventually settled on a melee attack. I made this entirely in Unreal Engine's blueprint system in order to learn to use it more effectively.
First I use an On Component Begin Overlap node to check when the sword overlaps with an object. I then create a branch that returns true if the overlapped actor is of the class BP Base Enemy which is the parent class for all of our enemies.
Next I implemented a branch that only returns true when the weapon is moving faster than a minimum speed, so that the player cant just hold the weapon still and deal damage.
And finally I made a cast to the overlapped enemy's VTDHealth component and deduct the weapon's damage from the current health.
Mana regen script
I created a simple mana regen script in order to familiarize myself with the Unreal Engine syntax.
Setting up the header file taught me about Uproperties and Unreal Engine's delagates.
The cpp file taught me how to use pointers and logs in Unreal Engine.
What i learned from this project.
- Working in Unreal Engine 5 (Blueprints/C++)
Before this project I had very little experience with Unreal Engine so it took me a bit to get going. The hardest part to get used to for me was the C++ syntax for Unreal. However after two weeks it all started to click and i found Unreal Engine very enjoyable to work in. The blueprint system was also a departure from what I was used to but once I started creating the melee attack system it al started to make sense to me.
- Scrum workflow
Troughout this project we worked in sprints that lasted two weeks each, where the first day of each sprint was dedicated to planning. We did a standup and standdown every single day, and at the end of every sprint we did a sprint review and retrospective. We used Trello for our project planning. I had worked in this way before but this time there was much more focus during the planning and the reviews/retrospectives. This made me understand better just how important it is to plan carefully for projects like these.
- Timeboxing
This was the first time I ever worked with timeboxing on a project. I immidiately found that setting a hard time limit on tasks immidiately makes you more productive and also had us put better focus on the most important features.