# $Id: game3,v 1.1 2007/02/02 16:04:20 orts_mburo Exp $ Game 3 Changes - refer to game3.bp for updated game object stats *NOTE that Control Center HP is different from game2* Setup - two players - imperfect information (simultaneous actions + fog of war) - random 64x64 terrain (ground level connected, small irregular static obstacles) - some neutral mobile obstacles ("sheep"), random motion - one random starting location each with one control center, a resource cluster and 6 workers nearby - ~4 more resource locations randomly scattered on terrain - tech-tree: - workers build control centers, barracks, and factories - control centers train workers - barracks train marines - factories produce tanks - building a barracks requires control center - building a factory requires control center and barracks Objective - destroy all opponent buildings within 20 minutes Challenges - pathfinding - combat - grouping forces - scouting - resource allocation Object actions: worker: (terrans/units.bp) move(x,y[,s]) : start moving towards (x,y) with speed s (or max-speed) weapon.attack(obj) : attack object (worker_laser terrans/weapons.bp) stop() : stop moving, mining, and attacking pickaxe.mine(obj) : start mining minerals, need to be close to mineral patch; mining 1 mineral takes 4 game cycles; a worker can hold at most 10 minerals at any given time; at most 4 workers can work on one mineral patch simultaneously (defined in terrans/tools.bp) return_resources(obj) : drop minerals instantly, need to be close to control center (defined in terrans/tools.bp) build_controlCenter(x,y) (defined in terrans/units.bp) build_barracks(x,y) (needs control center; defined in terrans/units.bp) build_factory(x,y) (needs control center and barracks; defined in terrans/units.bp) Build actions tie up one worker who will become immobile and located out of bounds. When the building is finished, the worker reappears close to the building. 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 marine: (terrans/units.bp) move(x,y[,s]) : start moving towards (x,y) with speed s (or max-speed) weapon.attack(obj) : attack object (assault_rifle terrans/weapons.bp) stop() : stops moving and attacking control center: (terrans/buildings.bp) train_worker(): start training worker (train action def. in terrans/units.bp) stop(): stop training barracks: (terrans/buildings.bp) train_marine(): start training marine (train action def. in terrans/units.bp) stop(): stop training factory: (terrans/buildings.bp) build_tank(): start building tank stop(): stop building How to start the server and gfx client for this game: in orts3/. ./tournament/game3_orts and ./tournament/game3_ortsg twice in different terminal windows Alternatively ./tournament/game3_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 2k games where k >= 1 depends on the number of available computers. k starting positions are generated randomly (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: An individual game ends instantly when all buildings of one player are destroyed ("wipe-out"). If player A achieves a wipe-out in one game and player B does not, player A wins If both players achieve a wipe-out and one player was faster, this player wins. Otherwise: s = current mineral count / 2 + construction cost of all standing buildings and units + construction cost of all opponent buildings and units that have been destroyed 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 gather minerals, to construct objects that can be defended, and to destroy opponent objects. Successful attacks get a bonus because of time and resource investments (scouting, building and sending armies) and out-maneuvering the opponent.