Hyperpong

(11, 2013)

I am in the process of making a game called Hyperpong, which builds upon the classic videogame Pong, adding a novel twist to the game. Players are able to use physical forces (e.g., gravity, magnetism) to influence the ball’s trajectory.

Each physical force behaves as follows: Gravity attracts or repels balls, while magnetism simulates a charged particle moving through a magnetic field perpendicular to the screen-plane that creates circular motion whose direction depends on field sign.

A generative soundtrack is created by assembling smaller sound segments based on game events, reflecting the emergent rhythm of gameplay. Ambient drones vary with intensity of forces used and underscore the reactive sound effects.

The original version was written in C++ using openFrameworks, and features a custom-written game and physics engine. OpenGL pixel shaders are used for the majority of graphical calculation and are responsible for colouration and distortion. Special consideration is taken to ensure accurate ball collision and simulation. Ball movement is calculated using multiple simulation subframes per display frame (nominally calculated at 6000 Hz). Internally, ball movement is calculated as the numeric solution to a differential equation solved using trapezoidal approximation. To further decrease inaccuracies in collision, the bounding box used for ball collision is adaptively expanded when under high velocity.

I am currently working on porting Hyperpong to Unity.