Process
We were tasked with creating a game using Unreal Engine 5 for a university project. It was the first course I did for Unreal Engine 5 and a lot of the development process was self-taught. In our group, I was the most familiar with game design so I took on a leadership position in determining the end result of Goofy Golf. We split tasks amongst our team: Ball control and movement, level design, powerups, and UI.
I took on the level design role and we agreed on a stylized low-poly art style for the project. In the creation process, I took inspiration from other games such as "Golf with Friends" and Discord's "Putt Party". As the assessment was mainly game development based, I took a lot of the assets from the Unreal Marketplace as well as assets online. My goal was to create three distinct and unique levels, each with their own themed obstacles and challenges for the final product. The creation process of each level required a lot of planning and experimenting as well as feedback from peers and game testing. I wanted to make sure each level was not too difficult, but which also offered a unique challenge to players. In the end, we ended up with 3 very differing levels which I am proud of.
In addition to level creation, the assessment also required us to port the game over on VR. It was not a huge part of the assessment but offered a great deal of challenge to us. I took on most the responsibility of porting the game controls and mechanics over to VR. The most challenging aspect of this was completely redesigning how the game was played. As the original was a third-person game in which the player controlled a ball, we couldn't just put the VR camera on the ball and call it a day. Instead in the VR version, we opted to control a human character which could use a golf club to hit the ball, rather than controlling the ball itself which made more sense in terms of gameplay. A lot of the movement and physics interactions in VR were also self-taught.
Finally, we decided to go a bit further and beyond the scope of the course by experimenting with multiplayer functionality. This was the most challenging aspect for us as syncing data between server and client were unexpectedly difficult. For this, we used Unreal's inbuilt session creation and join system to create a connection between two players. We then had to redesign all the code in the game to allow for replication - essentially allowing the server and clients to see the same thing at the same time. Lastly, once we got multiplayer working, we worked on multiplayer exclusive powerups and VR features.