a year ago i posted about what a level of letters from beneath looks like on the inside, but a level from that game is a simple grid with walls and triggers. what does a level look like in a game like lesbian spider-queens of mars, where a level’s contents aren’t tied to what it actually looks like? there are twelve levels in lesbian spider-queens from mars (not counting the final confrontation) and sixteen “rooms,” four for each part of the martian palace. most levels happen in one of three different rooms, each of which has a different layout. what does a level look like behind the curtains, then? well, each level is a script.
“script” is one of those words games take from theater, like “player” or “stage.” it’s an appropriate one, since the script for every level of lesbian spider-queens is just a list of cues for which actors come out, in which order, during which scenes. there’s a lot of variance in any game: enemies come from random entrances, every player will take a different amount of time to clear enough enemies to make room from the next, the game may be at any one of four different speeds at any given time, depending on how long the player’s taken. the script works around all of this stuff.
this is what the script for level five – the second level of the “palace grounds” – looks like in the game code:
the first line of numbers are rules for this particular stage. this stage starts at speed 2 (of four), it takes 1280 frames for the game to raise the speed (at 30 frames a second), there will be at most 8 enemies on the screen (excepting assassins) at any time, and there’s a pause of 32 frames between one enemy entering the screen and the next enemy entering the screen. i can change these numbers throughout the game to vary the difficulty of each level. the first level of the game starts at speed 1, for example. in the “dungeon” levels, there are up to 16 enemies on the screen at once.
every other set of brackets is a “scene” in the level. it contains a set of enemies: dagger-carrying slaves, shield-carrying slaves, gladiators, alchemists, and the slave princess. the first enemy in a scene will appear, then, 32 frames later (in this level), the next one will. if the maximum population has been reached (8 in this level), the game will wait until the player’s removed one before letting another one out. you can see the first scene starts with an “ambush”: that’s one dagger-carrying slave from each of the four entrances. there’s also a “glad_wave” (four gladiators) and a “shield_wave” (four shield-carrying slaves).
when all the enemies in a [scene] have come and gone (the last enemy leaves on her own if the player takes too long), the next scene begins. there are some special triggers in the script that can be used to set the stage for a particular scene. “speed3″, for example, immediately sets the speed to 3 if it hasn’t reached there already. (there’s a speed2 and speed4 too, of course.) “speed-2″ immediately reduces the speed to 2 regardless of what it is and resets the timer. and “-assassin” tells all the assassins on the screen to leave – they’re introduced by the “assassin” trigger (they aren’t counted toward the enemy population limit or the ending of a scene).
there’s no pause after any of these special triggers, so that a bunch of them can happen at once at the beginning of a scene. there is a “pause” trigger, though, to help pace scenes. for instance, in the last scene there’s a wave of shield-carrying slaves, then a pause to let them stride out into the room (they’re slower than the other enemies) before the alchemist shows up. at the beginning of the third scene, there’s a pause to let the player collect herself after the previous scene before four gladiators appear. the pause trigger adds an extra 32 frames (in this level) to the time before the next enemy or trigger in the scene.
every level in the game is a script like this: a set of scenes, each with a list of enemies in the order they appear. there are numbers that dictate how quickly the enemies may appear, but not how slowly. a script like this accomodates a lot of the chance in the game. in fact, it accomodates the most unpredictable element of all: the player. there’s room in between the triggers for whatever the player needs to do and how long it takes her to do it, but the triggers will all still be met before the level is over. the script doesn’t define everything that will happen in a level of lesbian spider-queens, but it does define the shape.