Making a shmup level


Patterns and rails (for illustration, watch this video : http://www.youtube.com/watch?v=effHsell8GU )


Patterns and rails are basically the same thing; the only difference is that a pattern is meant to be followed by a bullet while a rail is to be followed by an enemy. Aside from that, they are identical objects.

Properties :

- Arguments : an argument is a line with two float values. They have different consequences for each pattern type (detailed further down). There is a syntax to be respected : you should simply put a space between the two values, and for an argument to be taken into account, you MUST create a new line after it. Only one though, as if you make two or more, empty lines will be thought to be arguments and this will have unwanted repercussions.

- Types :

- Speed (float) : the bullet's speed

- Delay (integer, in frames) : time between the spawning of each successive bullet. (note that this value is here for testing purposes only and isn't carried on into the actual game; you'll have to set the delay values of emitters or enemies in the timeline instead)

- Next pattern (integer) : ID of the pattern that should follow the current one. Allows you to create composite patterns. If set to -1, then there will be no next pattern.

- Transition (float): time before the bullet should start following the next pattern. Useless if next pattern is set to -1. Value indication : for a bezier curve, 1.0 means the pattern will change as soon as the bullet reaches the last inflexion point.

- Max tick (integer) : only useful for types “Bezier vector” and “Spiral vector”. Number of bullets which should be shot to make a full “loop”.

- Number (integer) : number of bullets shot at once. Only useful for types “Bezier vector” and “Spiral vector”.

- Pause (float) : time the bullet should wait without moving after the first pattern and before the next pattern. Useless if next pattern is set to -1. Can be set to 0.

- Smooth : makes speed transition smooth for “Bezier” and “Spiral”.



Bullet types


Properties :

- Size X (integer) : width of the bullet.

- Size Y (integer) : height of the bullet.

- Texture (string) : name of the file of the texture.


Emitters


Properties :

- Bullet type (integer) : ID of the type of bullet which should be shot by the emitter.

- Period (integer, in frames) : time which should elapse between each shot fired.

- Patterns : patterns which should be followed by the bullets shot by the emitter.



Enemy types


Properties :

- Life (integer) : how much life the enemy should have.

- Model (string) : name of the file of the model.

- Texture (string) : name of the file of the texture.

- Emitters : emitters which the enemy should use.


Timeline (enemy spawning point)


Properties :

- Rail : rail which the enemy is to follow.

- Type : enemy type.

- Number (integer) : number of enemies that should be spawned.

- Delay (integer, in frames) : amount of time between each enemy-spawning.

- Life (integer, in frames) : how long the enemy should be drawn after it spawned. (note that this value is here for testing purposes only and isn't carried on into the actual game)

- X scale (float) : horizontal scale component for the rail (allows you to make it bigger, smaller and/or reverse it)

- Y scale (float) : vertical scale component for the rail (allows you to make it bigger, smaller and/or reverse it)