If you want, you can change settings and modify/create new AI Players. The files you need to change are located under the Settings, Players and AI folders. You will either find them under the unzipped folder if you used the downloaded zip. or under C:\Documents and Settings\<user id>\Tennis\ for windows If you are using java webstart it will be under the user.home/Tennis folder. For Windows that will typically be something like C:\Documents and Settings\<username>\Tennis.

General units are cm and seconds. Ticks are measured in ms.

Create new players and AI profiles by creating files in the Players and AI folders, and setting the properties as described below.

Creating new player characters:

ranking=500 //Used to order players
hitRange=100.0 //How good reach a player has
energyMatchRecover=0.7 //How well the player recovers at end of a game
energyDrainMove=3.0E-4 //How much move drains the player
energyDrainHit=3.0E-6 //How much hit drains the player
gameDrain=0.25 //power recover after game
ballDrain=0.25 //power recover after ball
serveToss=1050.0 //how hard player will toss ball
serveBoost=1.4 //serve power = serveBoost*maxPower
maxPower=2900.0 //How hard the player can hit (only used for serve now)
maxForehandPower=3100.0 //How hard the player hits forehand
maxBackhandPower=2900.0 //How hard the player hits backhand
racketHeight=170.0 //Optimum height to hit ball
swingSpeed=0.25 //How fast the player moves in x-dir when swinging
swingYSpeed=0.7 //How fast the player moves in y-dir when swinging
speed=800.0 //Player speed
accY=0.07 //How fast the accelerates x-dir
accX=0.1 //How fast the accelerates y-dir
AIClass=AINew //AI controlling code (only AINew available for now)
AIProfile=Medium //Name of file of AI controlling profile when computer controlled (see below, filename [+.prop] must exist in the AI folder).

Createing new AI profile:
SwingStart=600 //Distance at when swing will be started no matter if estimated to be able to reach ball
paralyzeTicks=200 //ms that player will "pause"/do nothing after hitting ball.
reactionTime=200 //How long time player will pause after input registered (ms).
advanceDefinite=0.9 //If player is closer than 0.9*Baseline it will advance to net
advanceLimimt=1.2 //Further than 1.2*baseline and player will for sure not advance
viewDist=1400 //How far player can "see". AI will not start move to receive ball until in viewing distance
secondServeDrop=300.0 //How much softer second serve will be
basePos=50.0 //Min distance behind baseline
basePosRand=150.0 //Additional random distance
netPos=60.0 //Min distance from net when at net.
netPosRand=60.0 //Additional random distance
thinkInterval=3 //Let the AI think every 3 loops
lobMinLimit=-300.0 //When opponent is at this dist from net, always lob
lobMaxLimit=700.0 //When opponent is at this dist or more from net, never lob
serveHeight=340 //When ball falls below this AI will release the serve
backupDist=700 //
roundoffDist=60 //
precision=0.3 //How close to the line the AI will aim
risk=0.1 //How much past the line AI could miss (can be negative)
serveToss=900 //Power in serve toss

You can also change the ball properties, but then the game needs to "retune" how to estimate the ball track, which isn't possible from the compiled version. So that is not advised at this time. Ctrls.prop not needed to edit. UI available in game for that.


Are you experienced with 3D graphics?
Wanna help make this game ready for prime-time?
If so, do contact me!

This site was last updated 01/11/05

Contact: jocke@myway.com