# $Id: game2,v 1.13 2007/03/05 00:22:19 orts_mburo Exp $

Game 2

Changes

  - refer to game2.bp for updated game object stats   	

Setup

  - two players
  - perfect information (apart from simultaneous actions)
  - random 64x64 terrain (ground level connected, small irregular
    static obstacles)
  - for each player: 5 randomly (but symmetrically) located control
    centers with 10 tanks each nearby
  - some small mobile obstacles ("sheep") moving randomly

Objective

  - Destroy as many opponent buildings as possible within 15 minutes

Challenges

  - small-scale combat
  - unit group management
  - adversarial/cooperative pathfinding

Object actions:

tank (terrans/units.bp):

  move(x,y[,s]) : start moving towards (x,y) with speed s (or max-speed)
  weapon.attack(obj) : attack object (tank_turret terrans/weapons.bp)
  stop() : stops moving and attacking

How to start the server and gfx client for this game:

  in orts3/.

  ./tournament-2007/game2_orts 

  and

  ./tournament-2007/game2_ortsg (twice in a different terminal windows)

  Alternatively

  ./tournament-2007/game2_orts_test

  starts the server and displays the world using simple 2d graphics
  which is good for testing purposes. Units will move randomly.


Tournament setting:

  Round-robin style.

  Each pair of players will play a 2k games where k >= 1 depends on
  the number of available computers. k starting positions are generated
  randomly with symmetric base locations (starting with a fixed seed
  that depends on numbers provided by contestants). To ensure fairness, for 
  each of the starting positions two games are played - switching sides in the 
  2nd game. The outcome of each game pair is evaluated as follows: 

  When all buildings of a player are destroyed the game ends instantly.

  s = # of destroyed opponent buildings in game 1 and game 2
  r = s(player 1) - s(player 2)

  If r > 0, player 1 wins.
  If r < 0, player 2 wins.
  If r = 0:

    (tiebreaker) 

    s = - elapsed time when last opponent building is destroyed in game 1
        - elapsed time when last opponent building is destroyed in game 2

    r = s(player 1) - s(player 2) 

    If r > 0, player 1 wins.
    If r < 0, player 2 wins.
    If r = 0, game is a tie


  This evaluation scheme encourages to destroy many buildings quickly. It also
  compensates for biased situations created by randomizing the terrain.