- Emulator used: Grrl (Linux port of Gens, should be Gens 9z/9.5b compatible)
- Settings: 3-button controllers for players 1 & 2, sound rate set to 22050 (important!)
Fatal Labyrinth is an early Genesis turn-based dungeon crawler. It consists of 30 levels (which I'll call floors to avoid confusion), plus a final battle. The object of each floor is to reach the stairs that take you up to the next floor. Normally this involves lots of exploring, collecting equipment, and fighting with numerous monsters; but, this being a TAS, you don't see so much of that.
Fatal Labyrinth falls into a genre of games called rogue-likes. A key feature in a rogue-like is random content: the level layouts and item placement is generated at random. Items are usually listed by generic identifiers, often colours, and these identifiers change each play as well. This gives the game a high replay value, assuming you found it fun the first time.
- Aims for fastest time
- Manipulates luck
- Takes damage to save time (mainly to manipulate luck)
- Abuses programming errors
This run is mainly about manipulating luck. Virtually all aspects of this game are based around randomness, and many are not controlled by the same means as one another.
The layout for the different floors is based on the time you leave the intro level (or bypass it with the start button), and is seeded once for the whole game. This includes all the rooms and corridors for each floor, the staircases, and any traps (none of which are seen in this TAS). This process also sets up the initial randomness for the items, monsters, etc. The layout of the 10th, 30th, and 31st (boss) floor are never randomized.
Obviously it is important to get a good starting position on each floor. Starting right next to the staircase every time would be ideal, but this is impossible for a few reasons. First of all, the start position for the next floor is influenced by most, but not all, aspects of combat. (Attacking an enemy from a distance and missing does not vary the start position.) Second of all, the randomness algorithms seem to prefer certain locations sometimes, i.e. given a large number of start positions it's quite likely most of them will be in only a few different rooms. The teleport scroll, which randomly takes you to another location on the current floor, seems influenced by the same things as the start position.
Item and monster distribution
Items and monsters are generally influenced by the same aspects (although not always in the same ways, something I never fully figured out). Combat is the primary means of changing the distribution of monsters and items on the next floor. Timing for combat doesn't seem to matter, either in terms of seconds or turns, but everything else does to an extent, including the weapon you're using and the position you attack from. Items and monsters on the next floor can also be influenced by the position of monsters on the current floor.
Combat seems to be based simply on results from previous combat. There's very little you can do to guarantee a hit against a monster, or to keep from getting hit yourself. Fortunately, I'm mostly concerned with combat as a way to manipulate items.
Monster behaviour is very predictable, and based entirely on your character's actions and position. If you are beside a monster, it will always follow you if you move away from it, and it will always attack if you do anything else that counts as a turn. Monster movement is generally based on trying to get near your character, though it's obviously not very smart.
There are two ways for your character to get confused: by drinking a chaos potion, or having an enemy cast a certain spell on you. When confused, you get the message “You feel like dancing”, and your directional controls become randomized. The game remaps each direction every frame, and in doing so takes over the RNG that affects the start, items, and monsters on the next floor. Therefore it's possible to use confusion to change positions of things based on time. Confusion goes away after enough turns, or when you get to the next floor.
The butterfly effect
Because of the random nature of the game, what affects one aspect of the next floor will likely affect all aspects of all subsequent floors. This makes luck manipulation even trickier, since it's impossible to figure out the best result without often going a few floors deep. A very simple illustration of this is on floor 8. I shoot the insect (green bat) to change the monster layout on floor 9, however there's no benefit for floor 9 since I can make it to the stairs without any combat either way. However, I get a much better starting position on level 10 this way.
GLITCHES, TRICKS, AND OTHER NON-OBVIOUS THINGS
- A very useful glitch exists in this game. When you equip a bow, your armour level often decreases permanently by 1. With two bows it's possible to get an underflow, bringing your armour up to 153 (though it reads 99). Note that this is still not enough to keep enemies from hitting you, particularly on later floors.
- There are a few cursed weapons available in the game. Normally equipping these gives you a very low attack, and causes other ailments. However, using a weapon power-up scroll on them lets you wield them normally and makes you quite powerful.
- Normally you gain experience by fighting monsters, letting you gain levels as per most RPGs. Collecting the Holy Goblet on floor 30, which you're required to do, gives you a ton of experience points, and so in this run I don't bother killing any regular monsters.
- As long as you have food, your health will slowly replenish while your food supply slowly runs out. You continue to use food even if you're at full health. If you run out of food, then your health will slowly decrease until you die or get more food. Also, not seen in this run, this is the only RPG I know of where the character can die from overeating.
Thanks to all the coders here who have worked on Gens, especially IdeaMagnate for making a Linux port.
Also thanks to ventuz and Aqfaq for posting in my WIP thread.
: Good votes and interesting luck manipulation. Accepting for publication.