Goofy Golf
Project Description
Goofy Golf was a group project as part of the COMP3421 Computer Graphics course at UNSW. The course mainly orients towards PC game development with brief touches on introductory VR topics. The project is to be completed as a group of 4 members where the main requirement is to produce a game using Unreal Engine that is both engaging and novel.
The main theme of the game is mini-golf with cartoon graphics where the ultimate goal of the game is to putt the ball into the hole at the end of the course.
Take a look at our game trailer.
Technologies Used
Roles and Contributions
- Implementation of aim/shooting mechanics.
- Implementation of power guage and rendering
- Implementation of balistic missile item.
- Implementation of miss debuff item.
- Implementation of physics for the black hole item.
- Implementation of single headset VR multiplayer.
Process
I initially took on the task of creating the aiming and shooting mechanics as I felt confident in my skills in linear algebra and vector maths. I decided that the power meter from the game Golf with Your Friends would be the most visually appealing and intuitive. I utilised my knowledge of linear transformations and the underlying rendering pipeline to make the power bar scale with the power and to always be at the top-most layer. Furthermore, I used a state machine pattern to determine the ball's behaviour for each game tick. The reason for this approach was so it was easier for us when we wanted to have certain power-ups interact with the ball and minimised friction when integrating with other group members code.
The ballistic missile item was mainly used by me as a stepping stone to understand how entity creation, physics and how its effects could be integrated with the ball behaviour script that I have previously wrote. It also gave me an idea of complexities of my group members tasks so I could design the ball's behavioural code with ease of integration in mind. The ballistic missile works by applying an radial impulse force plus a constant upwards force to enemy players balls to blast them off track. By using Unreal's Blueprint's instigator property, I made it so that the player who used the missile was not affected by the explosion.I also wanted to experiment with using shaders through the miss debuff item which blurs the screen, applies a rippled effect and drastically reduces the accuracy of the shot by causing aiming arrow to oscillate left and right using a noise function.
One thing that I noticed in one of my was the black hole's physical gravitational effect was very choppy as it was using lerp functions to teleport the ball. I've reimplemented the system to have a constant, centripetal force applied to the ball to smooth the out the motion.
The final task that I was responsible for was implementing the multiplayer system in the VR Game. We wanted to implement this via a pass-the-headset approach similar to Wii Sports' pass the remote multiplayer. This was done via a state machine pattern where the POV cycled through each of the players perspective.
Results
The result was a great success, our group received an overall astounding project mark of 95/100 and won a Top 10 Games Award. Our project was also used as a showcase project for students in future terms when this course was run.