Ace Breaker
VR Multiplayer Pickleball Game
Ace Breakers is a student project at Carnegie Mellon University, Entertainment Technology Center (ETC). By creating a multiplayer VR pickleball game, we aim to bring the excitement and competition of pickleball to life in an immersive and engaging way.
Demo Video
Project Info
-
Platform: Oculus Quest (Virtual Reality)
-
Date of Completion: 2023.05
-
Category: VR Multiplayer Sports Game
-
Contribution: Lead Programmer
-
Team Size: 2 Designers, 2 Programmers, 1 Artists, 1 Producer
-
Download Link: Ace Breaker
Project Summary
Ace Breakers is a student project at Carnegie Mellon University, Entertainment Technology Center (ETC). By creating a multiplayer VR pickleball game, we aim to bring the excitement and competition of pickleball to life in an immersive and engaging way.
The game combines realistic physics and motion with fantastical elements to give players a party-style experience.
​
I worked as a lead programmer and technical designer on the team. My responsibilities include designing gameplay mechanisms, implementing all features (VR development environment set-up, data transfer, custom physics, UI, etc.), and testing player interactions.
Customized Physics System

Problem:
When developing a ball sports game, the first crucial consideration is its physics system.
Initially, we utilized Unity's built-in physics system, specifically Collider for collision detection and Physical Material for elasticity adjustments. However, we encountered difficulties in accurately estimating the ball's movement using this approach. Additionally, many game features relied on the physics system, prompting us to make the decision of developing our own physics system.
​
Solution:
To overcome these challenges, we devised a customized set of equations to govern the motion of the ball. By calculating variables such as gravity, acceleration, and drag for each frame of the ball, we can precisely control its position in the subsequent frame. Furthermore, when the racket strikes the ball, we update all relevant variables by considering the point of impact and the racket's velocity. This meticulous approach ensures that we have precise knowledge of the ball's location in each frame, enabling experienced players to skillfully interact with the ball.
​
Building upon this foundation, we also designed a teleportation system with a focus on VR game safety, addressing motion sickness concerns for certain players, and maintaining the necessary movement accuracy for sports games. Whenever a player strikes the ball, we calculate its landing point and teleport the other player to a location within a specific range of that point, thus assisting the player in hitting the ball. Additionally, we tailored the netting mode to accommodate the unique netting technique in pickleball, granting players the freedom to choose whether or not to net.
​
I was responsible to develop the framework of the whole system. After implementing this system and conducting several tests, we achieved remarkable results. The following flowchart illustrates the sequence of events during a ball strike.

Networking

Problem:
Due to tight development timelines and limited resources, we have decided to utilize the Photon service for online multiplayer support. However, during the development process, we encountered some new challenges. Since we are using a custom physics system, simultaneous calculations by both players can lead to data desynchronization. Therefore, we need a solution to transfer ownership of the calculation.
​
Solution:
To address this issue, I implemented a solution that involves transferring ownership of the ball and smoothly interpolating its position when it is hit by one player and is flying through the air. Additionally, the program will synchronize all ball data at the moment of impact. This approach effectively resolves the problem. However, due to the instability of the free server, there are still occasional delays in the ball's location after the project is completed. Moving forward, when working on similar projects, I will consider updating the algorithm or upgrading the server to mitigate this issue.
Other things I did
-
The code framework of the whole project.
-
VR avatar system based on Oculus Quest SDK.
-
Control system for player characters.
-
UI logic.
What I learned
-
Implement a VR multiplayer sports game from 0 to 1.
-
Develop a custom physics system within Unity.
-
Photon server-based development framework.