top of page

Space Squash VR

Somewhere in the Andromeda Galaxy You’re a professional cyber-squash player in a spaceship to the annual galactic tournament. During your journey you are awaken from your deep sleep by alien invaders who seek to steal the energy from the crystal that powers your ship. You must defend it, with the only thing you know...

Group of 3 | Gameplay Designer and Solo Programmer



Gameplay Design - Twist

The potential of sports simulation games is usually limited. The excitement and pleasure acquired from it will diminish as players become proficient in the game. So I decided to create the “twist”. There is a special type of enemy that carries a planet symbol on them. If players kill them, the gravity of the ball will be greatly affected. 

Through the early stage of the game, players will have time practising and getting familiar with the speed of the ball. Players may start to realise the game is easy at the end of the first stage. Then we have the twist coming in the second stage. Killing the special enemy will modify the rigidbody attribute of the ball to make it heavier and harder to hit. With the influence of a stronger gravity, the ball will barely bounce against walls or floors, which makes the aiming more challenging as well. As a result, with the sudden pattern-breaking design, players will get more challenges and will be motivated to explore the game further.

I separated the racket into different sections and each section has a “follower” object which follows the specific section on the racket. When the racket moves, each follower object gains its own velocity. Therefore, the velocity of each section will be different when players swing the racket. The far end of the racket should have a greater velocity than the handle when swinging it. Also, the collision detection of the racket was set to “continuous dynamic”, so the ball will be hit properly instead of crossing through the racket. Different layers were set up properly to avoid false collisions.



Physics: Racket and Ball


Pulling Back the Ball

Since the ball will bounce against walls, the ceiling and the floor, it will be quite challenging for players to catch and hit it. Moreover, the ball can be very fast so it is very hard to aim at a specific enemy. Therefore, magnetic mechanics are designed to make things easier. During the game, players can press the trigger button on the controller to pull the ball back to them whenever they want. With the help of the magnetic effect, players are able to control the ball better and get better prepared to hit the ball.


To enhance the game experience one step further, I decided to apply magnetic effects to enemies after a group discussion. As long as players hit the ball in the correct direction toward an enemy, the ball will be redirected to the center of the enemy. With each precise hit, confidence will be built up and the game experience will improve, since progressive skill-building is an important factor to keep players engaged.

The ball will accelerate in the beginning and decelerate closer to the player. The maximum speed of the ball is also capped using the function ‘Vector3.ClampMagnitude()’ to avoid the ball flying crazily.



Enemy Spawn

The totalEnemy variable records the number of incoming enemies. Enemies spawn in random positions. The second stage is harder than the first stage of the game.



Haptic and Visual Feedback



Possible Improvements

The trajectory and movement of the ball could be further improved using linear interpolation. Enemy spiders were designed to be crawling on the wall instead of moving on a flat surface. Game power-ups haven't been added yet. Naming covention is an important point that I need to care about in future programmings.

bottom of page