In order to prevent cheating
(switching the camera/radar map would be an unfair advantage),
I had to use a 0.3.x server. Compiling this server from source was a bit tricky.
The following script should build the server.
#!/bin/bash ############################################################################################### ### ### This script *should* build the ArmagetronAD server on Ubuntu 9.10 Karmic Koala ### http://forums3.armagetronad.net/viewtopic.php?p=196916#196916 ### ############################################################################################### working_directory=$HOME/armagetronad-build mkdir $working_directory cd $working_directory sudo apt-get install \ build-essential automake subversion libboost-dev \ libxml2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev \ ftgl-dev libglew-dev bison pkg-config \ bzr libprotobuf-dev protobuf-compiler bzr checkout http://bazaar.launchpad.net/~armagetronad-dev/armagetronad/trunk-armagetronad-work cd trunk-armagetronad-work ./bootstrap.sh ./configure --disable-glout make sudo make install
You can start the server with sudo /etc/init.d/armagetronad-dedicated start, but you will likely want configure it first. The following commands should download all necessary files for recreating my server:
cd /etc/armagetronad-dedicated sudo sh -c 'echo "include corewars_incam/main.cfg" > autoexec.cfg' sudo mkdir corewars_incam cd corewars_incam sudo wget http://harald.ist.org/armagetron/corewars-incam/main.cfg sudo wget http://harald.ist.org/armagetron/corewars-incam/4teams sudo wget http://harald.ist.org/armagetron/corewars-incam/bigbox sudo /etc/init.d/armagetronad-dedicated start
# main.cfg
# This is the actually active server configuration file.
# If nobody temporarily changed the settings via /admin
# commands, then this is, what we are playing right now.
########################################################
###
### corewar's incam (cockpit view)
### main.cfg - ArmagetronAD game server configuration
###
########################################################
########################################
###
### SERVER INFO
###
########################################
SERVER_NAME 0xaa0000core0xffffffwar's incam (cockpit view)
URL 0x88ff00http://harald.ist.org/armagetron
SERVER_OPTIONS Imitate the movie's arena. Almost 0xffff00no rubber0xffffff, \
0xffff00Brakes accelerate0xffffff, 0xffff00camera cannot be changed0xffffff.
TALK_TO_MASTER 1
########################################
###
### MESSAGES
###
########################################
CONSOLE_MESSAGE 0xffff00 * Realoading Configuration
#ToD is a 0.3.x setting:
TITLE_OF_DAY 0xff0000core0xffffffwar's incam (cockpit view)
MESSAGE_OF_DAY 0xffff00News:\n\
0xffff001) Server now quasi-permanently available (runs on my router)\n\
0xffff002) New physics: Slower base speed, acceleration reduced\n\
\n\
0xaaaaffWelcome on 0xff0000core0xffffffwar's incam 0xaaaaffserver!\n\
\n\
0xaaaaffThis server tries to imitate the race as it is shown in the movie.\n\
0xffffffIncam View 0xaaaaffmight be difficult at start, but one gains skill quickly!\n\
0xaaaaffRead more on 0xffffffhttp://harald.ist.org/armagetron.\n\
\n\
0xffffffBrakes 0xaaaaffare actually 0xffffffspeed-up0xaaaaffs, 0xfffffftunnels 0xaaaaffwill 0xffffffslow 0xaaaaffyou 0xffffffdown.\n\
0xffffffBind 0xaaaaffkeys for 0xffffffGlance 0xaaaaffLeft/Right/Back and 0xffffffuse them often0xaaaaff!\n\
0xaaaaff(Player Setup / Player 1 Settings / 0xffffffCamera Input Configuration0xaaaaff)
#\n\
#0xaaaaffExample Key Bindings\n\
#0xaaaaff--------------------\n\
#0xaaaaffTurn Left: [y], [Crsr-Left] Glance Left: Left [Ctrl]\n\
#0xaaaaffTurn Right: [x], [Crsr-Right] Glance Right: Left [Alt]\n\
#0xaaaaffSpeed Up: [Crsr-Down] (brakes) Glance Back: [Crsr-Up]
ROUND_CENTER_MESSAGE 0x0066ccPREPARE TO TRANSPORT TO LIGHTCYCLE GRID
ROUND_CONSOLE_MESSAGE 0xff0000core0xffffffwar's incam (cockpit view) - http://harald.ist.org/armagetron\n0xcccc00TYPE 0xffffff/SHUFFLE 0xcccc00TO CHANGE YOUR POSITION\n0xcccc00TYPE 0xffffff/TEAMS 0xcccc00TO SEE POSITIONS\n0x0099ffWE HAVE TRANSPORT
#ROUND_CONSOLE_MESSAGE 0x0099ffWE HAVE TRANSPORT\n0xff0000core0xffffffwar's incam (cockpit view) - http://harald.ist.org/armagetron\n0xcccc00ALTERNATE CAMERA: '0xffffffC0xcccc00' 0xcccc00(DEFAULT)\n0xcccc00TYPE 0xffffff/SHUFFLE 0xcccc00TO CHANGE YOUR POSITION\n0xcccc00TYPE 0xffffff/TEAMS 0xcccc00TO SEE POSITIONS
########################################
###
### BASIC RULES
###
########################################
ARENA_AXES 4
SP_SIZE_FACTOR 0 # Size of the arena
SIZE_FACTOR 0
SP_GAME_TYPE 2 # 0 Freestyle, 1 Last Team Standing, 2 Human vs. AI
GAME_TYPE 2
SP_FINISH_TYPE 1 # What happens when the last human is dead?
FINISH_TYPE 1 # 1 End, 2 Speedup
SP_MIN_PLAYERS 1
WIN_ZONE_DEATHS 1 # 1 Death Zone (else win zone?)
WIN_ZONE_INITIAL_SIZE 0.0001
WIN_ZONE_EXPANSION 1 # 1 boring, 10 fast
WIN_ZONE_RANDOMNESS 1 # 0 center, 1 somewhere
SP_WIN_ZONE_MIN_LAST_DEATH 1 # Minimum number of seconds since the last death before the instant win zone is activated
WIN_ZONE_MIN_LAST_DEATH 1 # 1 counter starts after death?
SP_WIN_ZONE_MIN_ROUND_TIME 99990 # Minimum number of seconds the round has to be going on before the instant win zone is activated
WIN_ZONE_MIN_ROUND_TIME 99990 # -1 Turns it off.
EXTRA_ROUND_TIME 0 # Length of an extra pause at the beginning of the round
FLOOR_BLUE 2 # Floor color
FLOOR_GREEN 2 # Floor color
FLOOR_RED 2 # Floor color
CHATBOT_DECAY 0 #0.02 # rate at which the quality of the chatbot decays over time
CHATTER_REMOVE_TIME 60 # Time in seconds after which a permanent chatter is removed from the game
FADEOUT_NAME_DELAY -1 # Time the player names are shown. Set to 0 if you don't want to show them at all or -1 if you want to show them always.
########################################
###
### TEAMS
###
########################################
SP_AI_IQ 99
AI_IQ 99
SP_AUTO_IQ 1 # Automatically adjust AI IQ?
AUTO_IQ 0
SP_AUTO_AIS 0 # Automatically spawn AI players?
AUTO_AIS 0
SP_NUM_AIS 0 # Number of AI players
NUM_AIS 0
AUTO_TEAM 1 # Players put to teams automatically
ALLOW_TEAM_CHANGE 1 # All players can change teams
ALLOW_TEAM_NAME_COLOR 1 # Team named after color
ALLOW_TEAM_NAME_PLAYER 0 # Team named after the leading player
MAX_CLIENTS 12
NEW_TEAM_ALLOWED 1 # Allow new teams to be created
SP_TEAMS_MAX 2 # Number of teams - /admin include 4teams
TEAMS_MAX 2
SP_TEAMS_MIN 2 # Users vs. AI - 2 teams
TEAMS_MIN 2
SP_TEAM_MIN_PLAYERS 3 # Minimum size of a team
TEAM_MIN_PLAYERS 3
SP_TEAM_MAX_PLAYERS 12 #3 # I guess this could be 6...
TEAM_MAX_PLAYERS 12
SP_TEAM_BALANCE_WITH_AIS 1 # Fill teams with AI players
TEAM_BALANCE_WITH_AIS 1
SP_TEAM_MAX_IMBALANCE 7#3
TEAM_MAX_IMBALANCE 7
SP_TEAM_BALANCE_ON_QUIT 0
TEAM_BALANCE_ON_QUIT 1 # Experimantal - what does it do really?
# 0.3.x settings:
SPAWN_WINGMEN_SIDE 9#3 # Starting positions of lightcycles
SPAWN_WINGMEN_BACK 4#2
TEAM_NAME_2 "0xffff00User Apps (Gold)"
TEAM_RED_2 15
TEAM_GREEN_2 12
TEAM_BLUE_2 0
TEAM_NAME_1 "0x2222ffKernel (Blue)"
TEAM_RED_1 0
TEAM_GREEN_1 9
TEAM_BLUE_1 15
TEAM_NAME_4 "0x00cc00User Apps (Green)"
TEAM_RED_4 4
TEAM_GREEN_4 15
TEAM_BLUE_4 0
TEAM_NAME_3 "0xff0000Kernel (Red)"
TEAM_RED_3 15
TEAM_GREEN_3 0
TEAM_BLUE_3 0
TEAM_CENTER_IS_BOSS 1 # 0 player who is on team longest, 1 center player is boss
ACCESS_LEVEL_SHUFFLE_UP 20 # Player can choose position in team??
########################################
###
### SCORE
###
########################################
#? SCORE_DEATHZONE -2
SCORE_DIE -2
SCORE_KILL 5
SCORE_SUICIDE -3
SCORE_WIN 4
SP_SCORE_WIN 4
SP_LIMIT_ROUNDS 12 # End the match after this number of rounds
LIMIT_ROUNDS 12
SP_LIMIT_SCORE 99 # End the match when a player reaches this score
LIMIT_SCORE 99
SP_LIMIT_TIME 10 # End the match after this number of minutes
LIMIT_TIME 10
########################################
###
### GAME PHYSICS
###
########################################
SP_SPEED_FACTOR 0.1
SPEED_FACTOR 0
DOUBLEBIND_TIME 0 # Time in seconds during which no two different keyboard events can trigger the same action
SP_WALLS_LENGTH 1500 #2222
WALLS_LENGTH 1500 #2222
SP_WALLS_STAY_UP_DELAY 0 # Seconds a wall stays up after death. -1 forever
WALLS_STAY_UP_DELAY 0
SP_EXPLOSION_RADIUS 6
EXPLOSION_RADIUS 6
CYCLE_WIDTH 0.25 #0.75 # Width of the cycle collision object. It can only squeeze through tunnels wider than this.
CYCLE_START_SPEED 0
CYCLE_SPEED 25 #20
CYCLE_SPEED_MIN 0.25 # Minimal speed of a cycle, measured relative to CYCLE_SPEED
CYCLE_SPEED_DECAY_ABOVE 1 # Rate of cycle speed approaching the value of CYCLE_SPEED from above
CYCLE_TURN_SPEED_FACTOR 0.95#1 # Factor the speed of a lightcycle is multiplied with when turning (>0 speed up)
CYCLE_WALL_NEAR 9 # How near to the wall to acceleration kicks in
CYCLE_ACCEL_OFFSET 5 # Minimum distabce a cycle can have to a wall
CYCLE_ACCEL 100
CYCLE_ACCEL_RIM 0.333 # RIM, SELF, TEAM, ENEMY: Factors to base speed?
CYCLE_ACCEL_SELF 1.0
CYCLE_ACCEL_TEAM 1.1
CYCLE_ACCEL_ENEMY 1.2
CYCLE_ACCEL_TUNNEL -2 # Multiplicator to the total effect of CYCLE_ACCEL, if the cycle is between two walls not created by it
CYCLE_ACCEL_SLINGSHOT -2 # Multiplicator to the total effect of CYCLE_ACCEL, if the cycle is between its own wall and another wall
CYCLE_BRAKE -5 #-30 #20
CYCLE_BRAKE_DEPLETE 0.15 #0.25 #1.7
CYCLE_BRAKE_REFILL 0.4 #0.5
CYCLE_DELAY 0.1 # time that has to pass before a new turn is possible
CYCLE_PING_RUBBER 3 #3 # Additional niceness for high ping players
CYCLE_RUBBER 1.75 # Niceness factor to allow you drive really close to a wall
CYCLE_RUBBER_TIME 1 # Timescale rubber is restored on
CYCLE_RUBBER_SPEED 40 # Logarithmic speed of wall approximation when rubber is in effect.
# Every second, you get closer to the wall by a factor of ~0.4^{this value}
CYCLE_RUBBER_DELAY 1 # During this fraction of the cycle delay time after each turn, ...
CYCLE_RUBBER_DELAY_BONUS 3 # ... rubber efficiency will be multiplied with CYCLE_RUBBER_DELAY_BONUS
CYCLE_RUBBER_TIMEBASED 1 # Rubber usage based on distance travelled (0) or time passed (1). Intermediate/out of bounds values supported as well
CYCLE_RUBBER_MINADJUST 0.05 # When adjusting to or 180ing into a wall, allow going closer by at least this amount
CYCLE_RUBBER_MINDISTANCE 0.05 # The minimal distance rubber code keeps you from the wall in front of you
CYCLE_RUBBER_MINDISTANCE_RATIO 0 # Additional distance to CYCLE_RUBBER_MINDISTANCE for every length unit of the wall you have in front of you
########################################
###
### CAMERA
###
########################################
CAMERA_FORBID_IN 0 # true incam
CAMERA_FORBID_CUSTOM 1
CAMERA_FORBID_FOLLOW 1
CAMERA_FORBID_FREE 1
CAMERA_FORBID_SERVER_CUSTOM 0 # Pseudo Incam (Slightly elevated, more overview, for lusers)
CAMERA_FORBID_MER 1 # For 0.3.x clients
CAMERA_FORBID_SMART 1
FORBID_HUD_MAP 1 # For 0.3.x clients
CAMERA_SERVER_CUSTOM_BACK 3 # Position of the custom camera: how much is it moved back from the cycle?
CAMERA_SERVER_CUSTOM_BACK_FROMSPEED 0 # This value is multiplied with the current speed and added to CAMERA_SERVER_CUSTOM_BACK.
CAMERA_SERVER_CUSTOM_PITCH -0.2 # Position of the custom camera: how much does it look up/down?
CAMERA_SERVER_CUSTOM_RISE 0.5 # Position of the custom camera: how much is it moved up from the cycle?
CAMERA_SERVER_CUSTOM_RISE_FROMSPEED 0 # This value is multiplied with the current speed and added to CAMERA_SERVER_CUSTOM_RISE.
CAMERA_SERVER_CUSTOM_TURN_SPEED 100 1 # Speed the server custom camera turns with. Turn values are taken from the clientside settings if this is negative.
CAMERA_SERVER_CUSTOM_TURN_SPEED_180 1 # Extra factor to CAMERA_SERVER_CUSTOM_TURN_SPEED after a quick reverse
#unknown: DISPLAY_COLORED_NAMES_OVER_CYCLES 1 # Should the names over cycles appear in the cycles' color
CONSOLE_MESSAGE PROCESSED 0x00ff00/etc/armagetronad/corewars_incam/main.cfg
This file is to be loaded after main.cfg:
######################################## ### ### bigbox ### ######################################## SP_SIZE_FACTOR 2 SIZE_FACTOR 2 CYCLE_BRAKE -40 CYCLE_BRAKE_DEPLETE 0.05 CYCLE_RUBBER 2 CYCLE_ACCEL 200 CYCLE_ACCEL_RIM 0.333 # RIM, SELF, TEAM, ENEMY: Factors to base speed? CYCLE_ACCEL_SELF 1.0 CYCLE_ACCEL_TEAM 1.1 CYCLE_ACCEL_ENEMY 1.2 CYCLE_ACCEL_TUNNEL -1 CYCLE_ACCEL_SLINGSHOT -1 SP_WALLS_LENGTH 1400 WALLS_LENGTH 1400 SPAWN_WINGMEN_SIDE 7 SPAWN_WINGMEN_BACK 10 WIN_ZONE_DEATHS 0#1 WIN_ZONE_INITIAL_SIZE 0.0001 WIN_ZONE_EXPANSION 0#1 # 1 boring, 10 fast WIN_ZONE_RANDOMNESS 1 # 0 center, 1 somewhere SP_WIN_ZONE_MIN_LAST_DEATH 1 # Minimum number of seconds since the last death before the instant win zone is activated WIN_ZONE_MIN_LAST_DEATH 1 # 1 counter starts after death? SP_WIN_ZONE_MIN_ROUND_TIME 60 # Minimum number of seconds the round has to be going on before the instant win zone is activated WIN_ZONE_MIN_ROUND_TIME 60 #CAMERA_FORBID_IN 1 CAMERA_SERVER_CUSTOM_BACK 3 # Position of the custom camera: how much is it moved back from the cycle? CAMERA_SERVER_CUSTOM_BACK_FROMSPEED .005 # This value is multiplied with the current speed and added to CAMERA_SERVER_CUSTOM_BACK. CAMERA_SERVER_CUSTOM_PITCH -0.2 # Position of the custom camera: how much does it look up/down? CAMERA_SERVER_CUSTOM_RISE .6 # Position of the custom camera: how much is it moved up from the cycle? CONSOLE_MESSAGE 0xffff00Configuration Loaded: "BigBox"
This file is to be loaded after main.cfg:
######################################## ### ### 4teams ### ######################################## AUTO_TEAM 1 ALLOW_TEAM_CHANGE 1 ALLOW_TEAM_NAME_COLOR 1 ALLOW_TEAM_NAME_PLAYER 0 MAX_CLIENTS 12 NEW_TEAM_ALLOWED 1 SP_TEAMS_MAX 4 TEAMS_MAX 4 SP_TEAMS_MIN 4 TEAMS_MIN 4 SP_TEAM_MIN_PLAYERS 3 TEAM_MIN_PLAYERS 3 SP_TEAM_MAX_PLAYERS 3 TEAM_MAX_PLAYERS 3 SP_TEAM_BALANCE_WITH_AIS 1 TEAM_BALANCE_WITH_AIS 1 SP_TEAM_MAX_IMBALANCE 7 TEAM_MAX_IMBALANCE 7 SP_TEAM_BALANCE_ON_QUIT 0 SPAWN_WINGMEN_SIDE 7 SPAWN_WINGMEN_BACK 5 TEAM_CENTER_IS_BOSS 1 TEAM_NAME_1 "Kernel (Blue)" TEAM_RED_1 0 TEAM_GREEN_1 9 TEAM_BLUE_1 15 TEAM_NAME_2 "User Apps (Gold)" TEAM_RED_2 15 TEAM_GREEN_2 12 TEAM_BLUE_2 0 TEAM_NAME_3 "Kernel (Red)" TEAM_RED_3 15 TEAM_GREEN_3 0 TEAM_BLUE_3 0 TEAM_NAME_4 "User Apps (Green)" TEAM_RED_4 4 TEAM_GREEN_4 15 TEAM_BLUE_4 0