This is a tennis simulation, not an arcade. You play with the mouse and five keys. Five keys may seem overwhelming, but you can play very well with no keys at all! The keys are meant for experts (e.g. to change the shot height, to sprint, to dive, to do backspin), and can be learned to use gradually. The five keys are X, Z, D (on the keyboard) plus the two mouse buttons.
The meaning of mouse movements and buttons depends on the "game phase". We can identify three game phases:
The meaning of controls is the following:
The meaning of the mouse movement is the following:
The meaning of the four keys is the following:
mouse cursor: controls your feet. So, for example, if you move the mouse to the right, the player will take a small step to the right.
Please note: the mouse does not control the speed of your movement, only the direction. The speed of movement is fixed and depends on the chosen player (though it can be increased temporarily by sprinting --- see below). So, moving the mouse a big amount won't make your player move faster.
X: sprint. By sprinting, you increase a lot the speed of
movement, but you decrease the ability to change the direction of movement. Sprinting is fundamental to approach the net quickly.
Here is how it works: when you press X, the current mouse
direction is locked,
and the player starts sprinting in that direction.
As long as you keep X pressed, you can alter the running direction only
slightly, by moving the mouse. When you release X, the
sprint ends, and you can once again control your feet fully with the
D: dive. Only for experts. Your player will dive left or right (the direction
chosen automatically). You should only use "D" under net, to catch a
passing shot you can't reach otherwise.
As a visual aid, sometimes your player turns yellow. Yellow means "if you press D now, your dive will succeed". In other words, yellow means you are in case (2). Pressing "D" when your player is not yellow is useless: you will miss the ball.
mouse cursor: controls the place where the ball should bounce.
left mouse button: decreases the height of the shot over the net. Note that decreasing the height makes the trajectory more straight, and therefore it makes the shot faster (since the gravity is constant). Decreasing the height is very important in passing shots because, if your shot is low above the net, the opponent will be unable to play a powerful volee.
right mouse button: increases the height of the shot over the net.
Z: change the spin of the current shot from topspin to backspin. This key must be pressed before the player has begun the shot gesture. If the gesture has already begun, the key does nothing.
other keys: they do nothing.
Note: as soon as the game starts, you need to press either "F" or "G"
to activate mouse input. See below.
F : Enter fullscreen mode and start listening to mouse input. Press again to exit fullscreen mode.
G : Hide the mouse cursor and start listening to mouse input. You only need to press this in order to play in a window, without entering fullscreen. Press again to release mouse input.
I : increase the average camera height. Use this to have an eagle-eye view.
K : decrease the average camera height. Use this to make the game more immersive.
ESC: exit the game
-: decrease the game speed (slow motion, useful for newbies)
0: increase the game speed.
P : pause the game.
Currently, you can choose among 3 players: Pete, Mats and Ivan. The following descriptions are only valid if you enable the "-realistic" flag (see below).
./freetennis -newbiewhich will start a human-vs-computer match, on cement, with players equal to Ivan and Ivan.
./freetennis -p0 ivan -p1 pete
The default is "ivan". Case does not matter.
These options are ignored when the "-client" option is used.
You specify the court surface with the option -surf. Example:
./freetennis -surf cement
The default is "cement".
This option is ignored when the "-client" option is used.
This is the default. You don't need to pass any special option to start a human-vs-computer match. Only, remember that player 0 is the human, player 1 is the computer.
For example, if you want to play with Ivan against Pete, type
./freetennis -p0 ivan -p1 pete
and the computer will impersonate Pete, whereas you will impersonate Ivan.
In order to play human vs human, you need two PCs connected via a network (either LAN or Internet). One of the PC must act as a server, the other as a client.
The server must be started this way:
./freetennis -server -port yyyy
where yyyy is a free TCP port in your network (e.g. 8080). The port must be chosen according to which ports your firewall makes available.
The client must be started this way:
./freetennis -client xx.xx.xx.xx -port yyyy
where xx.xx.xx.xx is the IP address of the server (e.g.
192.168.1.33), and yyyy is the same port specified by the server.
The option "-port" can be omitted, in which case a default port of 4000 is used. You may have to configure your firewall to open that port. The client does not have this problem.
In human-vs-human mode, the players and surface are decided by the server. The -surf and -pXname options are ignored by the client.
Example: in order to start a match Ivan vs. Pete, on the grass, you should type
./freetennis -p0 ivan -p1 pete -surf grass -server -port yyyy
on the server, and
./freetennis -client -port yyyy
on the client.
In this section we'll talk about the "-realistic" and "-newbie" flags. These flags are mutually exclusive, and you must specify one of them (there is no default). Their meaning is the following.
In real tennis, these 3 rules hold:
So, for the game to be realistic, those rules must somehow hold; that is, aiming must be more difficult if the opponent's shot is fast, if you are not very good at that shot, or if you are very powerful.
This happens when you choose the -realistic flag. If you use it, the parabola becomes more or less visible, according to the situation, so as to satisfy the 3 rules.
The -realistic flag makes the game much more amusing, but also more difficult for newbies (it is more difficult to aim). So it should be avoided when learning (in which case you should use the -newbie flag).
Note: without the -realistic flag, some players are much more convenient to use than others. With -realistic, each player has its own strength and weakness, and the game is more fair.
This only makes sense if you are playing human vs computer. The option to use in this case is -computerskill. Example:
./freetennis -computerskill 200
The number must be between 0 and 250. 0 is very difficult, 250 is very easy.
Use the options -xres and -yres. Example:
./freetennis -xres 400 -yres 300
./freetennis -p0 pete -realistic
./freetennis -p0 mats -p1 ivan -newbie
./freetennis -surf cement -computerskill 200 -realistic
./freetennis -client 192.168.1.33 -xres 400 -yres 300 -realistic
./freetennis -server -p0 ivan -p1 ivan -surf clay -realistic -nosound
Sometimes your player turns red. This means "I can't reach the ball, it is too far". In this case, all you can try is sprinting (with the appropriate key, see above). If, by sprinting, you can get close enough to the ball, automatic search will start. But this is not guaranteed: sprinting may not suffice if the ball is very far (and this happens most of the time).
There is no tournament mode. Only single matches. And there is no doubles.
The match does not end until you press "ESC".