Customizing the game

From Armagetron

Often people ask how to install a moviepack, how you make your cycle color different from your tail's, etc. Read on if you want to know how.

Moviepacks

Installing a Moviepack

Moviepacks are packages that completely change the look of the game. the floor, the walls, the cycles, everything. Nowadays, you can download many from different places around the net; for pointers, consult the Moviepacks list. They usually come in a ZIP file containing a moviepack folder. This folder goes into your armagetron advanced installation or user configuration directory:

Default armagetron advanced installation folder

Windows: C:\Program Files\Armagetron Advanced\

Unix/Linux: /usr/local/share/games/armagetronad/

Mac OS X: None. The game is self contained and may be installed anywhere.

Default armagetron advanced configuration folder. Note that you have to enable viewing hidden files to see some directories.

Windows 2000/XP: C:\Documents and Settings\[Username]\Application Data\Armagetron

Windows Vista: C:\Users\[Username]\AppData\Roaming\Armagetron

Unix/Linux: ~/.armagetronad

Mac OS X: ~/Library/Application Support/Armagetron Advanced

TODO: put folder locations in a single wiki entry and validate

The armagetron installation and configuration paths should be somewhere else on the wiki, too

Problems

sometimes you get errors after installing a moviepack, such as Moviepack err.gif

this means that the moviepack you installed is not complete, i.e. Armagetron Advanced looks for files that are not present in the moviepack. The easiest way around this is to first install the original moviepack (get the ZIP) and install the moviepack you actually want on top of it.

In Unix based Operating Systems, where file case is important, sometimes a texture doesn't display even though it appears to be installed correctly. to correct this, manually change the case of the file to suit. In particular, upper case extensions can cause problems. ie, change filename.JPG to filename.jpg and it will probably be OK. You should also inform the author of the moviepack of the problem so he can fix it.

Customizing default textures

Installing a different default texture

ArmagetronAd allows to change textures of the floor, the walls, the cycles and the sky. All textures are contained in the "textures" folder. Textures are images displayed during the game. For exmaple the image on the outer wall can be changed by exchanging the rim_wall.png file. Instead of replacing any texture files, you should rename the original file and then copy the new one into the folder. Now you have a backup available if you want to restore the original.

Where to find those textures ?

Windows: C:\Program Files\Armagetron Advanced\

Unix/Linux: /usr/local/share/games/armagetronad/

Mac OS X: ~/Library/Application Support/Armagetron Advanced/textures

You must create the textures folder.

'TODO: put folder locations in a single wiki entry and validate'

Which file is what ?

rim_wall.png = texture for the outer walls

sky.png = texture for the lower sky (the upper sky uses the floor*.png)

floor.png = single textured floor (and upper sky)

floor_a.png, floor_b.png = dual textured floor

bike.png = cycle's texture

Creating a new texture

Creating a texture is as simple as making an image and saving it as described above. For the best results, follow these guidelines:

Power-of-two sizes

The size of OpenGL's standard 2D textures must be a power of two. If the size of an image isn't, the game (or more accurately, GLU) will scale it to the nearest power of two before sending it to OpenGL, resulting in lower quality. Powers of two include:

  • 2^0 = 1
  • 2^1 = 2
  • 2^2 = 4
  • 2^3 = 8
  • 2^4 = 16
  • 2^5 = 32
  • 2^6 = 64
  • 2^7 = 128
  • 2^8 = 256
  • 2^9 = 512
  • 2^10 = 1024
  • 2^11 = 2048

Note that a texture need not be square; 512x64 textures are fine.

Use transparency wisely

There are several things to keep in mind when using transparent textures:

  • Because of to the way OpenGL prevents background objects from drawing over foreground objects, it might not be possible to see everything through a transparent texture.
  • Colors will bleed from neighboring texels (texture pixels) if both color and transparency are different. An exception to this is the cycle texture, which is preprocessed by the game and has no transparency in the end.

Cycle Colors

The basics of cycle color

First you have to understand how computers understand colors. In armagetron, colors are saved with three values: the red, green and blue (R, G and B) parts. Each of these three so-called RGB values can hold a number from 0 to 15 - 0 means none and 15 means as much as possible. A few examples:

r 15, g 0, b 0  :  strong red
r 0, g 15, b 0  :  strong green
r 0, g 0, b 15  :  strong blue
r 8, g 0, b 0  :  darker red

you can also combine the colours (follows the same rules as when you combine red,green and blue light):

r 15 g 0 b 15 : strong pink
r 0 g 15 b 10 : strong cyan
r 15 g 15 b 0 : yellow
r 15 g 8 b 0  : orange (less green => more red than yellow)

you get the gist. So how do you set these colours ? you can set them via the player setup menu, but if you want to have different cycle and trail colours, you have to use the Console. The commands are

color_r_1 X   # set red component of the 1st player's cycle to X
color_g_1 Y   # set green component of the 1st player's cycle to Y
color_b_1 Z   # set blue component of the 1st player's cycle to Z

The best way to learn how to write the colour you want is to experiment a bit.

Different Cycle and trail colors

Remember me saying that the colors were saved as numbers between 0 and 15 ? Well, that was not entirely true. If you set a color to a value over 15, the trail part is set to 15 and the cycle is (usually) set to the actual value minus 16. For example:

r 16 g 16 b 0   : yellow tail (r 15 g 15) and black bike (16 - 16 = 0)

higher numbers can give you multi-colored trails. Again, experiment.

For an exact explanation, see elaborate color explanation.

Developer's note: this behavior of the game is technically a bug and is officially unsupported. It is tolerated, though, because it's fun :) But some servers, especially team play servers where your color is no mere decoration, will clamp your color settings to 15 and this trick does not work.

Chat Colors

If you want to use different colors when chatting you have to use a different syntax for colors. For example if you want to say a text in red you would enter (at the chat prompt):

0xff0000 this appears in red

note that this is all zeroes (not o's), so zero-xff-zero-zero-zero-zero. This is important since it won't work otherwise.

The first two digits after the "0x" indicate the red part of the color, the two digits after that the green one and the two last ones the blue part. They signify numbers from 00 to ff (0 to 255) written in hex (base 16); people who ever used color codes in HTML or CSS will be familiar with this. Only lowercase letters are accepted in the code.

A few different two- letter combos are as follows:

  • ff: works like 15 in the bike color
  • ee: like 14
  • dd: 13
  • cc: 12
  • bb: 11
  • aa: 10
  • 99: 9
  • 88: 8
  • ...
  • 00: 0

Note that you can use different hex numbers like in 0xab1234 which lets you chose your color more exactly, but in most cases you won't need this. If you are so paranoid that you think you need exactly your shade of pink feel free to read the article Bases on this.

Other combos to get you started are:

0x00ff00 this is green
0x0000ff this is blue
0xff8800 this is orange
0xffffff this is white
0xffff88 this appears in the normal chat yellow (no change)

Developer's note: these color codes were not intended for use by the players; the choice of 0x as intro string was a bit unfortunate. Some servers will filter away your codes, so do your testing in a local game. Since it was not intended for use, no thought was given on usability, and for example upper case codes are not accepted. So use 0xff0000 for red, not 0xFF0000. And don't be angry about future unannounced changes to the format.