Senile Team logo Order Rush Rush Rally Racing for Dreamcast
Games

Putting the graphics and music in a level


Define the following properties at the beginning of the level file.

music data/music/saviour.bor Give the command music and the location of the music. This music will be played, and looped during the level.
Optional 
bossmusic data/music/1boss.bor The bossmusic will start to play when a boss is spawned. If you don't use bossmusic the regular level music will keep playing.
Optional 
hole [scrollpos] A hole will be made at the defined scrollposition at the bottom of the level. (More about the scrollpos at the end of chapter 2).
Optional 
endhole 1 The level will end with a hole from top to bottom when all the level is out of panels, as defined in the "order". Useful for elevators.
Optional 
background [path] Specify the location of the background image to use in the level. This should be a 256-colour image. The first 128 colours in the palette (index 0-127) should be equal to those of the global palette (more info on this subject can be found on the character page). The other colours (index 128-255) may be used at your discretion (except if you use neon panels, see below).

The width of the background image should be a multiple of four for the image to align properly! So, 200 is a valid width, but 201 is not.

The background image's height may be anything between 1 and 240.

Example:
background data/bgs/bridge/harbor.gif

Mandatory 
water data/bgs/boat2/water.gif 15 Define an image to use as water. This image will be placed directly under the background image (see above). If "rock" is enabled (see below), the water surface will be drawn as a plane (as in level 3). If not, it will be warped with a sine (as in level 4). You may also define the strength of the sine deformation. 15 is a good value.
Optional 
rock 1 The entire level will move slightly up and down, just like a boat
Optional 
panel [path] [path] [path] Specify the images to use as "panels". These are the sections that make up a level.

A panel is normally 244 pixels high, and can have just about any width. It is advised, however, to use a width of 100 or 200 pixels. This way you can easily determine the width of your entire level by counting the panels.

If you're making a boat level, panels should be 256 pixels high because the level will move up and down a bit.
All panels in the same level should have the same dimensions.
Panels are drawn as sprites, i.e. the first colour in your palette (index 0) will be transparent.

You may specify three paths:
The first one defines the image to be displayed in normal mode.
The second one defines the image to be displayed in neon mode.
The third one defines the image to be displayed in screen mode.
It is advised to prevent overlapping of the three images, as it is a waste of CPU time.

Images displayed in neon mode will be remapped as follows: colour index 128 through 135 will be cycled two steps, three times per second. You can use this to create blinking lights. To use the neon effect properly, you'll need to have some understanding of working with palettes and palette rotation.

Images displayed in screen mode will appear translucent. It is implemented in the same way as Photoshop's screen mode: Black is fully transparent, and white is fully opaque. You may use this to create stuff like windows or coronas.

If you do not want to use a specific kind of panel, enter "none" as the path (without the quotation marks).

The maximum number of panels per level is 26.

Example: panel data/bgs/bridge/bridge10.gif none none

Mandatory 
order abcd The order in which the panels appear in the level. This also defines the width of the level. The maximum length of the order is 1000. However, you cannot specify that many characters on a single line (about 100 max). So if you want to make a very big level, distribute the order over multiple lines, like so:

order abcd
order efgh
order abcd
order ijkl

Mandatory 
frontpanel data/bgs/street/f00.gif Like the aforementioned panels, only much simpler. You cannot specify any front panels to be displayed with any effects. Front panels will be displayed in front of all other sprites (except the status window). The maximum number of front panels is 26.

Optional 
direction [direction] You may specify a direction for levels to scroll in. Valid directions are up, down, left and right. Up and down are used for elevators, obviously. By default, levels scroll to the right.

Optional 
mirror [0/1] When mirror mode is enabled, the program will draw copies of all objects between the panels and the background. You may use this to create mirrors on the walls (as seen in level 6).

Optional 

Putting the enemies in


After creating the backgrounds for your level, you can start putting in the enemies, objects, and items. There are a number of things you can do in a level. We'll first start with adding enemies, objects, and items. When a property for a "character" is used, remember that this also applies to objects and items.

spawn [id] Command to spawn a character, object or item in a level. The id is the characters name a defined in the character.txt.
Mandatory 
alias [name] Change the displayed name. If you don't use this the name defined in the character.txt will be used. Names consisting of more parts must be connected with an underscore (e.g. Timmy_Turner)
Optional 
map [num] This changes the colourmap for this character, as defined in the character.txt. E.g. Ralf has 3 remap colours. If you don't define the map, it will take the standard colour.
Optional 
health [num] This changes the health of the character. When it is not used, the standard health for this character will be used.
Optional 
item [id] Only obstacles can contain items, and only one item. However items can also be spawned without an obstable. Simply state "spawn 1up" (for instance).
Optional 
2pitem [id] You can also have items that will only be spawned when 2 players play simultaniously. use 2pitem for this.
Optional 
boss [0/1] Use 1 for a boss, and 0 for a regular enemy (or leave it out). You can have multiple bosses, but once a boss has been defeated the level ends.
Optional 
flip [0/1] 0 = face left, 1 = face right. With this you can flip a character horizontaly, only useful for objects.
Optional 
coords [num] [num] These are the coordinates at wich the character will spawn relative to scroll posistion. The first number is the x coordinate, the second number is the y coordinate of the screen. So to spawn a character in the top left of the screen you need coords 0 160. Between x coordinates 0 and 320 an enemy will fall out of the air (objects and items suddenly appear). To have a character walk into the screen you must use a x coordinate of about 350 (to let him walk in from the right) of -30 (to let him walk in from the left). Use a larger x coordinate for biker-k's (e.g. 400), because of their speed.
Mandatory 


The coordinates in Beats of Rage
The coordinates in Beats of Rage


at [scrollpos] Use this to give the position in the level when the character should be spawned. The number can range from 0 to the end of the level. E.g when the scrollpos is 700 the character will be spawned after the hero walked through a little over 2 screens.
Mandatory 


Example of a spawned character
spawn ralf
alias Timmy_Turner
map 1
health 45
coords -30 210
at 700

Other commands


wait
at [scrollpos] 
This blocks scrolling until all enemies, that were spawned prior to the wait, are defeated. 
group [min] [max]
at [scrollpos] 
If the number of enemies drops below [min], more enemies will be spawned (if possible). No more than [max] enemies will be present. So, to make enemies appear in groups of four, use this: group 1 4. To make them appear normally, use this: group 100 100.
Waits, objects and items do not count in a group AFTER they have been spawned. Before spawning, they do count. So if you work with a small group (e.g. group 1 2), a wait will only be spawned when only one enemy is left. Therefore it is best to use groups only when a wait is already active. 


Example of a bad grouping
group 2 2 
at 700 

spawn ralf 
coords -30 210 
at 700 

spawn ralf 
coords 380 210 
at 700 

spawn ralf 
coords 380 210 
at 700 

wait 
at 700

The problem with the above example is that there will always be 2 enemies present, until all are defeated. So if you don't defeat 2 enemies, the wait will not become active, and the player can keep walking.

So you should do it like this:

Example of a good grouping
wait 
at 700

group 2 2 
at 700 

spawn ralf 
coords -30 210 
at 700 

spawn ralf 
coords 380 210 
at 700 

spawn ralf 
coords 380 210 
at 700

Levels.txt


In data\levels.txt the order of the levels is defined. And here's how you do it.

set [name] Start a new set of levels (e.g. "easy" or "normal"). 
file [filename] Specify the location of a level file. 
next Go to next level (show "stage clear" and stuff). 
scene [filename] Enter the location of a scene, and it will be shown. 
© Senile Team, 2003-2010