VR Ping Pong cover
VR Ping Pong screenshot
PC PS4 Steam
Genre: Simulator, Sport, Indie

VR Ping Pong

More Updates! Leaderboard, Height and Distance Options!

Hi VR Ping Pong Enthusiasts!

Thanks for all the comments on social media and the community hub here on Steam.

We've been listening carefully to what you have been saying. The most common questions we get are:
  • The table is too low!
  • The table is too high!
  • I'm too close to the table!
  • I'm stuck inside the table! :P


Well this update is for you! Introducing: Player Height and Distance Settings! :D



What's new in this update:
  • Wall-mode Leaderboard
  • Ability to choose the player's height relative to the table.
  • Ability to choose the player distance from the table. (Depth)
  • New 11-0 Achievement (Win a set 11-0)


Bug fixes:
  • Ball Colors
  • Edge shots


Bonus gif! Previously, we had the option to rotate the paddle. Here's how:

VR Ping Pong Update - Serve Methods, Racket Options, Haptic Feedback & More.

Hi Everyone,

Thanks for all the suggestions over on the Community Hub. We have an update for you! Take a look below for the change log.

What's new:
  • Ability to choose One Hand or Two Handed serve method (within the options menu)
  • Rotate the racket (within the options menu)
  • Logo has been added to the ball (to see ball spin better)
  • Stronger haptic feedback for ball impact on the paddle
  • Use any button for the AI or player serve
  • One new stadium environment


Feedback and Early Access

Hi Everyone,

Just a reminder that VR Ping Pong is in Early Access meaning you can shape the game as final touch ups are made going into full release.

Please let us know if you have any thoughts on anything in the game. Tell us what you like, don't like, any bugs. We'll see what we can do here on the Community Hub:

http://steamcommunity.com/app/492710/discussions/

If you have a big list of things, make a new discussion thread and we can get in depth with replies.

Of course, we will be posting updates so you can keep track of how things are coming along. We'll have changelogs for updates so you know if your suggestion made it to the game.

Thanks for your interest and support for VR Ping Pong!

- James

Ping Pong Physics!

Hi Everyone,

So we've been talking about the game in various social networks and the question that comes up often is: What are the physic like? Well, let's crunch some variables!

About Physics


Our physics system is designed to simulate the best ping pong experience possible in VR. To do this we had to modify standard nVidia PhysX behaviour to add two important things:


  • Motion: When players perform a backspin or a topspin in our system the ball takes an angular velocity that, based on the direction and the velocity of the paddle, modify the bounce and the behaviour of the ball in the air.


In real life this behaviour is given by the friction of the ball on the paddle: in a fraction of a second the ball (due to its deformation) stays in contact with the paddle and this friction, combined with the velocity of the paddle, produce the angular velocity (usually called EFFECT).
To implement this, our approach was little bit different: we haven't got ball deformation on contact so we haven't the friction for that change; to solve this problem we have calculated the correct exit angular velocity by the velocity of the paddle and the normal vector of the impact (multiplied for a constant to adjust the effect).


  • Magnus Effect: in physics, the Magnus Effect occurs when a ball (a body in general) has an angular velocity and a velocity in a fluid. This effect is responsible of the change of the trajectory of the body.


When a body rotates in a fluid, it drags the nearest layer of fluid, this layer does the same thing and in this way, around the body, layers are formed like in fluid, that rotate by in concentric circumferences.
The force produced is similar to the lift effect on a plane, then the trajectory of the ball changes in the time.
To implement this effect, we constantly add a force to the ball that is the result of cross product of velocity and angular velocity multiplied for a constant to adjust the effect.

About AI


There are two important things about the opponent AI:


  • Prediction of the player’s shot: our AI system for prediction is divided into two parts:
    a) The ball is hit by the paddle
    b) The ball hits the table
    The core of how the AI system works is in the equations of motion:
    x=x0 + v0x*t
    z=z0 + v0z*t
    y=y0 + v0y*t + 1/2*g*t^2
    these three equations describe how the ball moves over the time based on initial velocity and gravity: for efficiency purpose we haven't added into these equations air friction and the Magnus Force (above equations become differential equations with no constant force, like gravity).
    When the ball is hit by the paddle, the opponent AI waits a fraction of second and then solves the y equation replacing the ball’s vertical velocity, y value with y0 and table height instead of y. In this mode we can obtain WHEN the ball will hit the table and WHERE (x, z): this information is very important to understand if the player's shot will hit the table.
    When the ball hits the table, the AI system waits a fraction of second and then calculates how much time the ball consumes to arrive on the highest quota. Obtained this time we can calculate WHERE the paddle will be moved to hit the ball. Considering that the equations treat the ball movement like a movement in space, there is an error in this prediction: to avoid the paddle moves in a wrong position, the last algorithm is repeated every tick (not every frame).
    There are other little adjustments that AI does to seem more human but can be left out because these aren't the core of AI system.



  • Choice of the shot: the algorithm that calculates where the shot will go is based on the same equations. A point on the table (or near the table) is chosen, with a dedicated algorithm, and a TIME for the shot is chosen: the point of the time is the core of the algorithm because less time means a more powerful hit was made, more time mean a less powerful hit was made. Also in this case the equations don't consider other forces (there is an algorithm that decides the angular velocity) and there is a little intentional error: it introduces variables closer to the human behaviour.