Summary | Redesign the tutorial as a separate minigame. |
---|---|
Further information | See Hints Mode Feedback, The Usability Project report. |
This is an old page, the redesign has been implemented in 0.8
The tutorial added in 0.7 is a huge improvement to the old hints mode (which is badly in need of an overhaul) because it …
However, I think we can take things a step further… (For the old concept see the bottom of the page.)
“Problems” with the current concept:
The idea is to offer the player several distinct lessons picked from a sub-menu similar to the Sprint maps.
Each lesson would comprise a fixed map with messages triggered by defined squares, as currently. At the beginning of each lesson, a message summarizing the goal of the lesson is displayed, e.g. “In this lesson, you're going to learn how to move around and explore a level.” along with the command to access the message history. At the end of each lesson the player is congratulated and is presented with a screen displaying all commands learned over the course of the lesson. Ideally, finishing a lesson (or leaving early) would land you back at the submenu (and the last lesson on the main menu).
Commands:
Commands:
The current tutorial is actually pretty good with providing mini-puzzles for the player:
I also suggest:
This is the one lesson I don't have a very clear concept for. I am anticipating the following:
All spells contained in either of the two books should fulfill completely different functions. The idea is that the player can learn about targeted spells, direct-effect spells and position dependent spells. No spells above level 3.
In addition, the following is possible: Start out with Spellcasting skill slightly below the first level and enough xp in the xp pool to get to the first level by reading scrolls. Explain about skills, hand the player a stack of scrolls and let them train Spellcasting. The first book could be handed out beforehand or afterwards.
We could also cover success rates: Give the player a choice of body armour types (leather armour, ring mail, plate mail), point to the I screen and let them work out how spellcasting and armour interacts.
All of this is good stuff. We should also explain that players can read spell descriptions. (If we want to, we could show how ”?/” is one way to access information in-game. Once they've seen it for spells, they can apply this to branches, gods etc. on their own.) — dpeg 2011-01-23 14:26
Offer choice between two gods, e.g. Makhleb and Trog.
Here, the idea is to give the player a chance to apply the lessons naturally *and* bring across the game's goal at the same time. The best way to do this is to design a minigame that tasks the player with collecting three different runes, get the orb behind a door that can only be opened with 3 runes, and then return back to the exit.
On “winning” the tutorial, there should be a congratulatory message (possibly screen).
Great stuff! Here's a tutorial idea: stat screens. There could be a short course on how to use and observe '%', '@' and even the stat area top right. There could be different equipment scattered around the tutorial to try on, and see how they change the character's statistics. (Idea comes from after reading the Immortal Warwalrus report.) — evktalo 2011-01-16 10:11
I think it's more interesting if the player learns about these naturally over the course of the tutorial (e.g. '%' in response to putting on some type of equipment that confers resistances). Personally, I don't feel the @ command is _that_ important. It's almost completely superceded by the status lights and the overview screen. However, the stat area worries me. I've no idea how to explain about AC, EV, SH or even where to broach the issue of hit points or the xp pool. The stats, at least, are mentioned in the level-up messages, though not their abbreviations. (Should they be?) — jpeg 2011-01-23 13:18
Implementation patch: here
The aim is to improve learnability of the game. The very basic commands are taught in a terse manner, so that the player needs to read as little as possible and can effectively scan for the commands needed. Unlike the current tutorial (future “hints mode”), these maps don't have any randomness.
The following problems identified in the Usability Project report are addressed (or an attempt is made to do so):
To test these maps: replace entry.des with these maps.
Known bugs: Overflow altars break these maps spectacularly sometimes.
# TODO: Use dynamic commands instead of hard-coding them to text. NAME: tutorial_basic_1 TAGS: entry no_rotate no_monster_gen no_item_gen no_hmirror no_vmirror no_trap_gen no_shop_gen BFLAGS: islanded KMASK: + = no_secret_doors ORIENT: encompass ITEM: mace, helmet # TODO: This message should be displayed when the tutorial game starts. Do it in the code side, not the maps. MARKER: { = lua:message_at_spot ( "Welcome to the tutorial. We start with \ basic movement. You can <white>click</white> on a square to move there. You can also \ use <white>numpad</white> or vi-keys to move. (TODO: add numpad/hjklyubn diagrams \ here)", "tutorial", "true" ) # TODO: Include a travel stopper to the message square. MARKER: A = lua:message_at_spot ( "\nYou need to move diagonally here. <white>Click</white> with \ mouse, <white>3</white> or <white>n</white>.", "tutorial", "true" ) MARKER: B = lua:message_at_spot ( "\nNow use <white>1</white> or <white>b</white>.", "tutorial", "true" ) MARKER: C = lua:message_at_spot ( "\nExploring manually can be tedious, try auto-explore <white>o</white>.", "tutorial", "true" ) MARKER: D = lua:message_at_spot ( "\nThis is a door. Open it by moving into it, you can close it with <white>C</white>. \ Note that it is a capital <white>C</white> - keyboard commands are case-sensitive. \ <white>Ctrl-click</white> and <white>Ctrl-direction</white> also works.", "tutorial", "true" ) MARKER: } = lua:message_at_spot ( "\nTake stairs down with <white>shift-click</white> or <white>></white>.", "tutorial", "true" ) MARKER: E = lua:message_at_spot ( "\nPick up the mace and the helmet with <white>g</white> or <white>clicking</white> your \ character while standing on the items. You can also <white>click</white> items in the floor \ section in the inventory region to pick them up.", "tutorial", "true" ) # TODO: Make the messages sensitive to if the game is tiles or console. MARKER: F = lua:message_at_spot ( "\nWield it by <white>clicking</white> the mace in the inventory in the lower right (or by \ hitting <white>w</white>). Wear the helmet by <white>clicking</white> in the inventory (or \ by hitting <white>W</white> - again, note the capital <white>W</white>.", "tutorial", "true" ) MARKER: G = lua:message_at_spot ( "\nTo attack monsters, move into them (or <white>click</white> while adjecent).", "tutorial", "true" ) MARKER: H = lua:message_at_spot ( "\nRest! You have probably lost health in your battle. (See upper right stat area.) You regain \ health by resting. Press <white>5</white> to rest untill healed. ", "tutorial", "true" ) KFEAT: ABCDEFGH = . COLOUR: ABCDEFGH = blue #TILE: ABCDEFGH = tutorial_message_tile_name_here MONS: training dummy ; damaged club MAP xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x..[..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x.....xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x..{.............Axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x.....xxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxx....xxxxxxxxxxxxxxxxxxxxxxxxxxx x..(..xxxxxxxxxxxxx.xxxxxxxxxxxxxxxx...EdeF.........xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxx.xx....xxxxxxxx.xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxx...xxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxx.].xxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxx...xxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxoooxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxx...xxxxxxxxxxxxxGxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxBxxxxxxxxxxxx.}.xxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxx...xxxxxxxxxxxxx1xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx.xxxxx.Cxxxxxxxx+xxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx.xxxxxx.x.xxxxxxxDxxxxxxxxxxxxxxHxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx.xxxxxx.xxx.xxxxxxx.xxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxx.xxxxxx.xxxxx.xxxxx.xxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx.xxxxxx.xxxxxx.xxxxxx.xxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx.xxxxxx.xxxxxxxx.xxxx.xxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx.xxxxxx.xxxxxxxx.xxxx.xxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxx.xxxxx.xxxxxxxxx.xx.xxxxxxxxxxxxxx)xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx.xxx.xxxxxxxxxx.x.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx.x.xxxxxxxxxx.xx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx..xxxxxxxxxxxx..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ENDMAP NAME: tutorial_basic_2 TAGS: no_rotate no_monster_gen no_item_gen no_hmirror no_vmirror no_trap_gen no_shop_gen KPROP: l = no_cloud_gen ORIENT: encompass PLACE: D:2 KITEM: A = dart q:25 ITEM: randbook disc:conjuration numspells:1 slevels:1 spell:magic_dart \ owner:Newbie KFEAT: ABCDEF = . COLOUR: ABCDEF = blue MARKER: [ = lua:message_at_spot ( "\nPress <white>shift-click</white> your character or <white><<</white> to climb these stairs.", "tutorial", "true" ) MARKER: A = lua:message_at_spot ( "\nHere are some darts, pick them up.", "tutorial", "true" ) # TODO: Targetting needs tutorial messages; these can't be done on the map side. MARKER: B = lua:message_at_spot ( "\nPress <white>f</white> to throw darts.", "tutorial", "true" ) MARKER: C = lua:message_at_spot ( "\nRemember to rest with <white>5</white>.", "tutorial", "true" ) MARKER: D = lua:message_at_spot ( "\nMemorize the spell from this spellbook by <white>clicking</white> on the \ memorize tab on the lower right. You can also press <white>M</white> to enter \ memorization screen.", "tutorial", "true" ) MARKER: E = lua:message_at_spot ( "\n<white>Click</white> magic dart in the spell tab, or press <white>z</white>, \ or <white>ctrl-click</white> on the monster.", "tutorial", "true" ) MARKER: F = lua:message_at_spot ( "\nRest up!", "tutorial", "true" ) MONS: training dummy ; stone q:30 MAP xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx.xxxxxxxxx.....xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...xxxxxxxx xxAxxxxxxx...d.D...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.[.xxxxxxxx xx.xxxxxxx.x.....x.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...xxxxxxxx xx.xxxxxxx.xxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.{.xxxxxxxx xx.x.....x.x.l...x.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...xxxxxxxx xx.x.....x.x.l...x.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx.B.....C.x1l...E.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxlllllxxx.l...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxx..1..xxx.l...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxFxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxx)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxx}.]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ENDMAP NAME: tutorial_basic_3 TAGS: no_rotate no_monster_gen no_item_gen no_hmirror no_vmirror no_trap_gen no_shop_gen KPROP: l = no_cloud_gen ORIENT: encompass PLACE: D:3 KFEAT: , = . KPROP: , = bloody ITEM: hand axe ITEM: bread ration ITEM: scroll of identify q:3, ring of slaying ITEM: meat ration q:50 ITEM: cursed great sword, scroll of remove curse q:3 KITEM: p = potion of healing q:3 KITEM: m = potion of restore abilities q:3 KITEM: n = potion of degeneration q:3 KFEAT: pmn = . KITEM: o = wand of fireball KFEAT: o = . KFEAT: ABCDEFGH = . COLOUR: ABCDEFGH = blue MARKER: A = lua:message_at_spot ( "\nYou can chop up corpses with <white>c</white> into edible meat chunks. \ You need a sharp object, such as the axe here.", "tutorial", "true" ) MARKER: d = lua:message_at_spot ( "\nThis axe was picked up automatically because you didn't have a butchering tool.", "tutorial", "true" ) MARKER: B = lua:message_at_spot ( "\nThis bread ration is permanent food. It will not rot, like the chunks from corpses.", "tutorial", "true" ) MARKER: C = lua:message_at_spot ( "\nHere is a scroll of identify and an unknown ring. Item properties are often \ hidden and you need to find out what they do by experimentation or identification. \ Try the scroll on the ring. (use it by <white>clicking</white> or <white>r</white>ead). \ You can put on jewellery with capital <white>P</white> or <white>clicking</white> it in \ the inventory.", "tutorial", "true" ) MARKER: D = lua:message_at_spot ( "\nThese meat rations weigh too much. You can drop them with <white>d</white>. \ You can also drop e.g. only 10, by typing <white>d</white>, <white>10</white> and \ then selecting the meat rations.", "tutorial", "true" ) MARKER: E = lua:message_at_spot ( "\nThis sword is cursed. If you wield it, you can uncurse it by reading this \ remove curse scroll. You can use the scroll by first <white>clicking</white> it in your \ inventory and then selecting item to be uncursed.", "tutorial", "true" ) MARKER: F = lua:message_at_spot ( "\nHere are three stacks of unknown potions. Go ahead and experiment! \ <white>Click</white> or <white>q</white>uaff.", "tutorial", "true" ) MARKER: G = lua:message_at_spot ( "\nYou can evoke wands with <white>V</white>.", "tutorial", "true" ) MARKER: H = lua:message_at_spot ( "\nHere's some gold. Shops exist in the game. Note that they don't buy items from you, \ so there's no need to carry stuff around that you can't use. Gold is picked up automatically.", "tutorial", "true" ) MONS: rat, rat always_corpse MONS: training dummy ; stone q:30 MAP xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx..3..xxxxxx....xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxlllllxxxxxx.$$.xx)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xx[.(xxxxxxxxxxxxxx..........H.$$..}.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxx{xxxxxxxxxxxxxxx..o..xxxxxx.$$.xx]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxAxxxxxxxxxxxxxxxxxGxxxxxxxx....xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x.....xxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x,....xxxxxxxxxxxxxxx.xx.....xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x.1,1.xxxxxxxxxxxxxxx....pmn.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x..1.,xxxxxxxxxxxxxxxxxx.....xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xd.,2.xxxxxxxxxxxxxxxxxxxxFxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxx.xxxxxxxxxxxxxxx.....xx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxx.x.....xxxxxxxxx...i.xx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxx.x.....xxxxx.....E......xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxx...B.e...xxx.xxx...j.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx.....x.xxx.xxx.....xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx.....x.x.....xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxx.x..h..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx.....x.x.....xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx.f...x.x..D..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx...C...x.....xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx.g...xxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx.....xxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxx.xxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxx.........xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ENDMAP NAME: tutorial_basic_4 TAGS: no_rotate no_monster_gen no_item_gen no_hmirror no_vmirror no_trap_gen no_shop_gen KMASK: + = no_secret_doors ORIENT: encompass PLACE: D:4 KFEAT: ^ = needle trap KFEAT: _ = altar_makhleb KMONS: S = Sigmund KFEAT: S = . KFEAT: ABCDEF = . COLOUR: ABCDEF = blue MONS: rat, rat always_corpse MONS: training dummy spells:blink;blink;blink;blink;blink;blink ; whip ego:reaching MARKER: A = lua:message_at_spot ( "\nYou may have got poisoned from the trap. Drink a potion of healing, or rest \ with <white>5</white> to try to wait it out.", "tutorial", "true" ) MARKER: B = lua:message_at_spot ( "\nLook for the secret door in the glass wall. Either wait a single turn with \ <white>s</white> or <white>.</white>, or search longer with <white>5</white>.", "tutorial", "true" ) # TODO: Hax some piety for the player so that minor destruction is immediately usable. MARKER: C = lua:message_at_spot ( "\nHere's an altar to one of the gods in the game. You can <white>p</white>ray \ on an altar to start worshipping.", "tutorial", "true" ) MARKER: D = lua:message_at_spot ( "\nMakheb accepts kills and corpse sacrifices. Kill these rats, and then \ <white>p</white>ray over their corpses to sacrifice them to Makheb", "tutorial", "true" ) MARKER: E = lua:message_at_spot ( "\nUse minor destruction <white>a</white>bility to attack this annoying dummy.", "tutorial", "true" ) MARKER: F = lua:message_at_spot ( "\nBehind this door is Sigmund. He is a powerful unique monster, and is likely \ to kill you. In Crawl, running away is often a very important tactic. Thanks for \ playing the tutorial!", "tutorial", "true" ) MAP xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x(xxxxxxxxxxxxxxxxxxxxxxxx].)xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x.{...^.A..xxxxxxxxxxxxxxxx}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x[xxxxxxxx.xxxxxxxxxxxxxxxS..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxBxxxxxxxxxxxxxxx...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx.....xxxxxxxxxxxxx...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx.....xxxxxxxxxxxxx...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxoo=ooxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx..C..xxxxxxx..3..xxFxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx.._..xxxxxxx.....xx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx.....xxxxxxx........xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxx.xxx..1..x..E..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxx.xxx....rxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxx..D+.....+...xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxx.1..1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxx...2.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ENDMAP # TODO: The game should end after dying to Sigm.. after managing to enter D:5 # Could have a conglatulatory map as D:5 with nice scenery.