TITLE: Perpetual Pingpong NAME: Warwick Allison COUNTRY: Norway EMAIL: warwick@troll.no WEBPAGE: none TOPIC: Games COPYRIGHT: I SUBMIT TO THE STANDARD RAYTRACING COMPETITION COPYRIGHT. MPGFILE: pingpong.mpg ZIPFILE: pingpong.zip RENDERER USED: Povray 3.02 TOOLS USED: Pen, paper, C++ compiler. CREATION TIME: 1 day to render HARDWARE USED: 200 MHz Pentium Pro ANIMATION DESCRIPTION: Two robots play error-free pingpong. Playing strategy games against computers these days is daunting - even if you can beat it, it's only because the computer is playing with one arm tied behind its back. Some games, like Backgammon and Connect-4 can be played "error-free" by computers, meaning they always play the best possible move. But those games have an "end". Table tennis doesn't. VIEWING RECOMMENDATIONS: Turn on looping/repeating. And play it FAST. DESCRIPTION OF HOW THIS ANIMATION WAS CREATED: A small C++ program (included) calculates the trajectory of the ball, and the robot positions sufficient to play such a trajectory. The program has a heap of parameters in it, including the size of the table (I used official Table Tennis association rules), bounciness of the ball (also dictated by the association), gravity (dictated by the very large lump of dirt under your feet), as well as the lengths of the arms and the positions of the robots. Writing the program had me relearning lots of physics and maths that I had forgotten from highschool. The program repeats the whole process of calculating trajectories until it finds one which, over the whole game, does not cause any impossible situations for the robots (eg. the ball out of reach) - like a chess computer looking many moves into the future. One tricky part of the program is that it carefully arranges for the last hit to end up exactly where the game started, thus providing the cyclic nature of the animation. The program generates .inc files which give the settings of variables for the robots, ball, and camera for each time spans of the animation. The timespans are each a bounce of the ball off bat or table, with every moment in-between calculated by the Newtonian formulas, thus the animation can be generated for any resolution - time or space without rerunning the program. The motion-blur of the ball is done by repeating the ball object with the time adjusted and the ball faded.