Toshio Endo
HyperAthletic is a distributed two-players game. Players compete with each other in the speed of typing. The faster you type, the faster the runner on the screen goes. The words you should type are familiar keywords of programming languages (like ``while,'' ``define,'' or even ``call-with-current-continuation'').
Run `hyper' or click the ``Play with HyperAthletic'' button below. Two windows appear on two screens. Press ``start game'' to start the competition.
A game consists of three races. The player who wins two races will become the winner of the game. At each race, the word you must type is displayed on a bar near the bottom of the window. You must type this word again and again to make progress. The faster you type, the more progress you see on the screen. The progress is represented by a runner on a track.
This program demonstrates how things can be written easily with the combination of a nice GUI tool kit and a nice programming language for distributed computation.
In Schematic, an index number is associated with a processor. In HyperAthletic case, one of the two processors is called processor zero (or PE 0) and the other called processor one (or PE 1). Any combination of synchronous/asynchronous and local/remote procedure calls are done in almost the same syntax with a normal procedure call.
In games like HyperAthletic, when a processor gets a key input from the gamer, it must update both of the windows. Schematic programmers only have to write a single definition of the update procedure and invoke it both on the remote and the local processors in response to a key input. Neither message creation/transmission nor cooporation by the receiver's end is necessary.
Right now, source code is somewhat ugly and many things are not written in the way they should be. We show the source code as is, for people to get the idea of distributed programming in SchematicTk.