Pong itself is no masterpiece of programming, and in this case we’re reaching so far back into game history that even the finest, freshest, most faithful rendition of the original game is going to be a bit … sparse.
These two are on my list though, so I feel obligated to include them. The first is gnupong, which has dates in its source files that reach back to 1998.
If that looks pretty weak to you, it is. This is more a one-person variation on the original Pong than a clever imitation at the console. And given that it has an upright orientation over a horizontal one, it has more of a feel of Arkanoid than Pong proper.
No score display, until the game is over. No help on controls, until you read through the source files (hint: “a” and “l” for left and right). No help on speed controls or quitting the game, and when you miss a ball, it all comes crashing down.
I’m almost embarrassed to include it.
yapong, on the other hand, is a better attempt.
Here we have the original side-by-side arrangement, the vertical controls (up and down for the right player, “a” and “z” for the left) and proper rebounding action for the ball. Score is on-screen and visible, and the game doesn’t smash-to-black every time one side makes a mistake.
Space drops the ball and continues play after a point, with “q” as a dropout key. Check the help flags for difficulty and animation controls; in my case
yapong -l 1 was a good shortcut for a playable game at 2.6Ghz.
No AI players though. And still no color, although I expect the argument could be made that the arcade version had no color either, so it’s an issue of fidelity.
Regardless, I will set these aside for now, as two titles that are done and done. One bad, but one better. 😐
P.S.: yapong is in AUR only; gnupong will compile if you add
using namespace std; after
#include <iostream> in pong.cpp … according to my notes. 😉