This article is currently only a proposal
The features or design guidelines described in this article are only a proposal made by one or some persons. It has not been evaluated or accepted by the core development team yet. Feel free to add your personal opinion about them or make counter proposals.
Dying in the mana world
When a characters hit point reach zero or another situation causes the demise of a player character the character lies on the ground lifeless and unable to act. The player can either wait for another character to cast a revive spell on his character or just give up and accept the death of the character.
The realm of death
When a character dies it is teleported to the realm of death. The realm of death is a surreal location where the laws of physics don't apply. People in the realm of death have no access to their inventory, can not attack, use magic, craft or use any other active abilities. The characters actions are limited to moving around and communicating with NPCs and other characters. Luckily the realm of death is not the final resting place for a poor adventurers soul. A cunning adventurer can find his way out of the death realm and back into the world of the living.
The Grim Reaper
As soon as the character awakes in the death realm he/she is greeted by the grim reaper. The grim reaper NPC counts how often the character died and responds accordingly. The first time the character dies he will just explain the situation. The next few times the reaper will give the character some useful tips for staying alive.
When the death count increases (and it will increase) the purpose of Reaper's greeting shifts from information to cheering up the player after its defeat using sarcastic remarks, dark humor and occasional 4th wall breaking. Example phrases:
- Died again? That was quick.
- Oh, you again? Did you miss me that much?
- You really seem to enjoy dying.
- Did you bring me a present?
- Wow, of all your 37 deaths this one was by far the most hillarious.
- You died 50 times in a row. This qualifies you for our frequent dier program.
- dingdingding! You died for the 100th time! PARTY!
- Why don't you just activate the god mode cheat? You don't know it? Did you try up, up, down, down, left, right, left, right, B, A?
- The god mode cheat didn't work? Maybe you entered it at the wrong moment?
- Oh dear, you used up all of your extra lifes. Now you have to stay here forever. Do you want to delete this character and create a new one? Just kidding, you know the way.
- Congratualtion! You died 1000 times!
Escape
To escape the world of death the character has to find its way through a labyrinth. The labyrinth is randomly generated for each character and each visit in the death realm, so memorizing it or consulting guides does not help. This is implemented by using a map containing of multiple rooms connected by smart warp scripts. The labyrinth has multiple exits which represent the location where the character will reenter the world of the living. The most desirable location is the one which is furthest away from the players start location in the labyrinth. Exits ordered by increasing desirability:
- respawn at first town
- respawn in last visited town
- respawn on the entrance of the map where the player died
- respawn at the exact location of death
The purpose of the labyrinth is to punish the player by stopping the progress of its character for a short time but to keep the player occupied and entertained during this forced time-out period.
Technical implementation of labyrinth
labyrinth generation
The script engine randomly-generates a labyrinth of 7x7 elements (or maybe larger or smaller - we have to see how the players react on it). Possible element types are:
- straight (x2)
- curve (x4)
- t-crossing (x4)
- crossing (x1)
- dead end (x4)
The algorithmn has to make sure that every element of the labyrinth is reachable and it has to generate the labyrinth based on a random seed. The algorithmn must produce the same labyrinth when receiving the same seed. I did not develope the algorithmn yet, but I am confident that this problem is solvable in acceptable time. It is very likely that there is already a standard solution to this problem somewhere.
The start location is the center (a crossing). The exits are the corners of the labyrinth (dead ends facing clockwise). The algorithmn assigns the desirability rating of each exit based on the length of the optimal route to the start.
Representation of the labyrinth in the game
The layout of the map the player walks on while exploring the labyrinth does not represent the real layout of the labyrinth. Instead of that there is one single, isolated room to represent every instance of each of the possible 15 element types + 5 additional rooms for the start and the 4 exits. The layout of the labyrinth is "virtual". It is only known to the script.
When the player is, for example, in the south/west curve room of the map he could be in any south/west curve of the virtual labyrinth. Only the script knows the real location inside the virtual labyrinth. When the player leaves the room through the west exit the script checks the type of element in the virtual labyrinth one element to the west and teleports the character to the eastern exit of the appropriate room.
Effect on gameplay experience
All characters who are currently trying to get back into the world of the living are technically on the same map. This means that it is possible to meet other characters while traveling through the labyrinth. But the warp connections work differently for everyone. So when both characters leave the room they met in through the same exit they will most likely lose each other.
Saving the labyrinth
To make sure that the character does not get trapped when the server is rebooted while the character is in the labyrinth the state of the labyrinth has to be saved as quest variables in the database. Only two variables are necessary to do so: Location inside the labyrinth and the seed used by the random number generator for generating the labyrinth.