Last edited December 24, 2013 by

Four-dimensional Brickout

Matt Jordan


This project examines the problem of visualizing the 4th dimension through the use of a classic 2-D game being implemented in higher dimensions. The project begins by recreating the original 2-D Brickout game, then developing a 3-D version before finally moving onto a 4-D implementation. This will be accomplished using OpenGL with C++

The Paddle

The paddle is an important aspect of the program, as it is the piece that the user interacts with. It is characterized by a line in 2 dimensions, a square in 3 dimensions, and a cube in 4 dimensions.

An important point of the paddle is that it deflects the ball in a nonstandard motion. The ball's x velocity is greater the further away from the center that the ball strikes the paddle. This is illustrated below:

Additionally, the ball will away from the center of the paddle (i.e. if the ball hits the right side of the paddle it will bounce to the right, if it hits the left side of the paddle it will bounce to the left).

The transition from 3-D to 4-D

This project visualises the fourth dimension using an orthographic projection. In a three dimensional orthographic projection all of the projection lines are perpendicular to the two dimensional projection plane. An orthographic projection of a cube will just look like a square. So in a four dimensional orthographic projection, all of the projection lines are perpendicular to the projection surface. In such a projection a 4-cube, the four dimensional analogue to a cube, will appear as a cube. This allows us to bring four dimensional objects down into the third dimension. However, the projection is inherently misleading. To revisit the 3-D->2-D analogy, when projecting the cube it appears as a square. Eight of the twelve edges, five of the six sides, are lost in this projection. To tackle this problem in the four dimensional problem, multiple orthographic projections are made viewable to the user so they can get information on each of the four dimensions.

Evolution of the project

2-D Brickout

3-D Brickout

4-D Brickout

Links: Proposal
Instructions on Compiling the source code
Windows executables for the game
Microsoft's Visual C++ Redistributable 2012 (download x86 version)
Linux executables for the game