THEMES

The game is fully customizeable, so the player can decide how it looks and sounds by just selecting from the options menu a theme among those installed in the themes directory.
Making themes is not terribly difficult per se, as it basically boils down to arranging some graphics and/or sounds in accordance with a few rules: what is actually demanding is creating the graphics and sounds, which, of course, requires some specific skills.
To create a theme you need just KOG, a text editor and graphics/sound editing tools of your choice.
The following notes explain in detail how to create new themes.


GENERAL INFORMATION


DESCRIPTOR

The file descriptor.txt is a text file that carries some information regarding the appearance of the theme. To explain how it works, let us look at a practical example.

LEGAL_INFORMATION  © 2007 Simone Bevilacqua
BACKGROUND        = 026 72 105 109 111 017
MENU              = 8 181 238 66
CHART             = 127 110
FONT.MENU         = -10 -5 -50
FONT.LABELS       = 0 -100 -100
FONT.CHART        = 0 0 0
FONT.STATUS       = 0 0 0
FONT.OUTLINE      = -100 -100 -100
OBJECT.SLOW       = -100 0 0
OBJECT.NORMAL     = -100 0 -100
OBJECT.FAST       = 0 -100 0
OBJECT.SWIFT      = 0 -100 -100
BEAMS.CATCHER     = 000 255 000
BEAMS.FREEZER     = 255 255 000
The lines have the following meaning.


LOGO

The file logo.c.bmp [+ logo.a.bmp] contains the logo graphics centred at the top of the menu/information/pause screens.
Its dimensions can be any.


TEMPLATE

The file template.c.bmp [+ template.a.bmp] contains the background graphics of the menu.
Its dimensions must be 48x48 pixels.
Since these graphics are stretched/squeezed to cover the whole menu area, the bitmap is subdivided into nine sections:

section from to
top-left corner <0, 0> <7, 7>
top side <8, 0> <39, 7>
top-right corner <40, 0> <47, 7>
right side <0, 8> <7, 39>
core <8, 8> <39, 39>
left side <40, 8> <47, 39>
bottom-left corner <0, 40> <7, 47>
bottom side <8, 40> <39, 47>
bottom-right corner <40, 40> <47, 47>


FIELD

The file field.c.bmp contains the playing field graphics.
Its dimensions must be 383x383 pixels.
The actual playing field is the circular area that has its center at <191, 191> and a diameter of 241 pixels, and must be clearly defined.
Two concentrical sub-areas must be clearly marked: their diameters must be of about 161 and 81 pixels.


GRAPHICS ARRANGEMENT

Some image sets are stored in a picture according to these rules:

Visually:

graphics arrangement

Hint: for readability, it is recommendable to use the colorkey also as frame color (see the ELEVENTH IMAGE in the picture).

Things are simpler than they seem, as illustrated by these examples, which show five equivalent ways of defining the same set of images:

example objects


OBJECTS

The file objects.c.bmp [+ objects.a.bmp] contains the graphics base of the objects.
It must contain 6 images arranged as per the GRAPHICS ARRANGEMENT rules.
The dimensions of each image can be any (although it is recommendable not to make them too big).
The images represent the animation frames of the objects. They are only the base of the actual objects graphics, as they will be recolored as indicated by the OBJECT.* lines in the descriptor.
Hint: make the images as bright as possible and perform recoloring by toning the RGB components down.


SPRITES

The file sprites.c.bmp [+ sprites.a.bmp] contains various images.
The images are arranged as per the GRAPHICS ARRANGEMENT rules.

image
index(es)
dimensions
(pixels)
description notes
0-2 any generator restart one-shot animation automatically centered on the field
3-8 any generator wait looping animation automatically centered on the field
9-11 any generator shot one-shot animation automatically centered on the field; interrupts the other animations whenever an object is shot
12-15 any object catch/destruction one-shot animation centered where objects get caught/destroyed
16 any pointer centered on the pointed object
17 any inverted object indicator centered on inverted objects
18 any rescuable object indicator centered on rescuable objects
19 any rescued object indicator centered on rescued objects
20-27 32x9 trap left side looping animation when not moving the hot-spot is at <18, 0>; catcher beams go from the segment <19, 0> - <19, 8> rightwards
28-35 32x9 trap right side looping animation when not moving the hot-spot is at <13, 0>; catcher beams go from the segment <12, 0> - <12, 8> leftwards
36-43 32x9 trap left side looping animation when moving left same as for images 20-27
44-51 32x9 trap right side looping animation when moving left same as for images 28-35
52-59 32x9 trap left side looping animation when moving right same as for images 20-27
60-67 32x9 trap right side looping animation when moving right same as for images 28-35


FONT

The file(s) font.c.bmp and/or font.a.bmp contain(s) the graphics base of the fonts.
The characters are arranged as per the GRAPHICS ARRANGEMENT rules.
The dimensions of each character can be any.
The characters are only the base of the actual characters, as they will be recolored as indicated by the FONT.* lines in the descriptor.
The characters set is ISO 8859-1.


SOUND SAMPLES

Every event has an associated sound effect that can be defined by simply providing a sound file with the appropriate file name.
The table below shows all the defined sound effects and the relative sound files.

sound file played when
congratulations.ogg the player enters the chart
decelerator-G.ogg the decelerator is gained
decelerator-U.ogg the decelerator is used
expansion-G.ogg an expansion is gained
freezer-G.ogg the freezer is gained
freezer-U.ogg the freezer is used
game_over.ogg the game ends
inverter-G.ogg the inverter is gained
inverter-U.ogg the inverter is used
kickback-G.ogg the kickback is gained
kickback-U.ogg the kickback is used
laser-G.ogg the laser is gained
laser-U.ogg the laser is used
magnet-G.ogg the magnet is gained
magnet-U.ogg the magnet is used
miss.ogg an object is missed
movement.ogg the trap moves
navigation.ogg another menu item is made current
nuke-G.ogg the nuke is gained
nuke-U.ogg the nuke is used
pointer-G.ogg the pointer is gained
selection.ogg a menu item is selected / the game is paused
shot.ogg an object is shot
speed-up-G.ogg the speed-up is gained
zap.ogg an object is caught/destroyed


README

The file README.txt contains any textual information by the theme author. It is especially suited to explain all the legal details. It is not compulsory, but it is highly recommended to include one in the theme archive.



[home]