skip to content

anatomy of a martian slave revolt

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.

10 comments

  1. snapman wrote:

    (Funny that this is exactly what I had planned to work on today…) I didn’t realize the assassins were part of the scene script. I just figured those were random. A tribute to the seamlessness of the pacing, I guess? By the way, is the only difference between dagger and gladiator the speed change on line-of-sight, or is there a difference in pathfinding?

    4/26/2011 at 1:18 pm | permalink
  2. auntie wrote:

    the gladiator is the only slave with any semblance of pathfinding at all. the others just choose a direction at random every time they find a junction. the gladiators always try to turn towards the queen, though they don’t know the layout of the maze so they won’t always pick the shortest path.

    4/26/2011 at 1:47 pm | permalink
  3. prettyboy wrote:

    So do these scripts mean that Lesbian Spider-Queens has a hard upper limit for high scores? If so, any idea what that maximum possible score is?

    4/29/2011 at 12:20 am | permalink
  4. kirkjerk wrote:

    Excellent.
    This reminds me of the alligator in Goedel Escher Bach who appreciates music by slapping an LP disc on his very sensitive stomach area. He thinks it’s much superior to the conventional way of taking in music, since you can take it all in at once.

    4/29/2011 at 10:25 am | permalink
  5. auntie wrote:

    there is certainly a highest possible score in lesbian spider-queens. i havn’t computed it yet, but it would be a matter of just adding up the point values of every enemy in the game (doubling the ones who carry gems). so far only two people have broken 300,000 points on the high score table, something i’ve never even done.

    4/29/2011 at 11:21 am | permalink
  6. snapman wrote:

    Getting the highest possible score is partially based on chance, since assassins can spawn without 2 free spaces in front, making it impossible to turn to face them, because of the queen’s pre-turn-cornering movement.

    4/29/2011 at 12:26 pm | permalink
  7. auntie wrote:

    there’s a lot of chance involved in zapping assassins, and i make no apology for this. if you want to get TECHNICAL, though, mister snap, it is technically possible to keep any “scene” going until all the assassins therein have been harvested.

    4/29/2011 at 1:14 pm | permalink
  8. snapman wrote:

    So assassins don’t actually leave when sliding back into the wall unless a “leave” trigger is hit? They wait some amount of time and then reappear elsewhere? Sneaky.

    4/29/2011 at 2:04 pm | permalink
  9. auntie wrote:

    yep! they disappear and reappear somewhere else. like wizrobes? until they’re shot or the level ends or an “assassins go away” is triggered. that way you can keep their population in check by zapping them. the speed at which they disappear and reappear, of course, is based on the present speed of the level.

    4/29/2011 at 2:15 pm | permalink
  10. prettyboy wrote:

    Neat! I’d been wondering how the Assassins work exactly. I’m a little bummed that you can wait indefinitely to harvest them, as that discourages speedy play somewhat, but oh well.

    I’ve been trying to break 300,000 points off and on, but I’m still about 1,200 points short so far.

    4/29/2011 at 10:09 pm | permalink

post a comment

your email is never published nor shared. required fields are marked *
*
*