For sooner:

KickEffector: 
The kickeffector wants to be below a SphereCollider now. It should be
changed so that the KickEffector can be somewhere else.

RSG-Files:
.rsg-files are startet relative to the current directory. -> proposed change 
is to use a absolute directory


For later:

- see dysim tübingen

- Split Spark and Soccer stuff, create new SF project simspark
  The soccer specific stuff remains at sserver.
  Do we need to create a new subproject for the plugins in sserver?

- Installer 
  Create a package containing all of the required libraries for Spark + soccer plugins

- Create Soccer plugins using cars
  use old plugins where possible (changes in visionperceptor required)

- Unify Spades and selfmade runloop interface

- Sparkmonitor 

- get voidimporter running

- add documentation
  + Monitor Protocol (old / new)
  + HOWTOs (creating a new simulation, scene description language,
            creating a new sensor, creating a new effector, ...)
  

- To simulate aerodynamic drag, it would be better to use the square
  of the velocity, because that's how drag works in reality. The force
  should also be applied at the object's aerodynamic center rather
  than at the body location. These may be the same, but (especially if
  you're using geometry transforms) they may not be. The center of the
  object's cross section would probably be close to the aerodynamic
  center, at least for non-engineering purposes. In any case,
  dBodyAddForceAtRelPos? will allow you to apply the force at a
  specific point in the body's frame of reference.

- Note that if when simulating rolling friction, you should only apply
  the damping when the object is actually touching the ground. Check
  for the existence of a contact joint between the object and the
  ground, for example.

- better distinguish between soccer rules (in SoccerRuleAspect) and the 
  game state (in GameStateAspect). The methods to move objects (currently
  in SoccerRuleAspect) should go to the GameStateAspect.

- This bug was reported by Alexey Vasilyev <servent@apollo.lv>:
   Sometimes (probabilisticaly) GameState token passed to the agent has
   no initial information about the game/agent parameters, i.e. it has no unum,
   team, FieldLength, etc. tokens.

   The only token it has is
   (GameState (time 0) (playmode BeforeKickOff)
   instead of
   (GameState (unum 1) (team left) (FieldLength 108) (FieldWidth 73) ...

Done:

- The default LogServer behavior is to open cout for eAll. When an application
  wants to change this, zeitgeist sent already some Debug messages, which may
  be desired or not. The application should be able to change this as well.
- add kick off selection to monitor (left/right/random)
- add rule to get rid of this message (ScriptServer) ERROR: Unknown function 'RuleFreeKickPauseTime'
- adjust goal height (and the goal flags position in the lite monitor)
- remove error message 'failed to get Class object for 'ClassClass0x804ad24'...#
- monitor / logplayer should work without changing config files
- Kicker: solve effet
- Kicker: latitudal angle
- Kick and run team
- Agents need to get information about team
- Flag names
- Game States:
  before kick off
  kick in: ball inside field
  goal_l / goal_right 
  corner_kick
  goal_kick_l / r (beam ball in front of goal)  
  half time (timing?)
- change play mode from monitor
- ODE joint types

