How to configure corewar's incam

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.

install-armagetronad-dedicated.sh

#!/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

Current corewar's incam Configuration

main.cfg

# 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

bigbox

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"

4teams

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