Okay now, let's have something more closely resembling an actual design doc for this game.
Overview
Dream Towers is an “action roguelike” game (in the vein of Spelunky, The Binding of Isaac, or Rogue Legacy) based on the idea of exploring a dream world every night. It focuses on the way your mind invents people and places in your dreams.
In this game you wander around a non-persistent procedurally generated map, solving puzzles and dealing with monsters, interact with procedurally generated characters, and attempt to pursue procedurally generated plot goals. There are a variety of special items or special plot events that boost the player's stats, alter their controls, or give them special powers while also altering their appearance (much like items in The Binding of Isaac). Players attempt to create stable, persistent locations across an ever changing dream map by completing various tasks, such as doing character quests, defeating every monster in a room, and traveling between two locations frequently. They will also have to try to maintain their emotional state, as the world is created by the player character's dreaming mind, the character's emotional state affects and is affected by many aspects of the dream world.
As is one of the primary hallmarks of the genre, a game session is relatively short, and each time the player plays a new session, they start from scratch with a new map and all their most basic abilities. Each session represents one night's dreaming. One session is meant to last about 30 minutes to 2 hours from the beginning to achieving the final goal, though it can be much shorter if the player wakes up (fails or is defeated) before then.
Certain things may persist between sessions, such as access to unlocked items, access to secret areas, and, especially, certain specific characters that populate the dream world. Characters that were important in previous sessions, or characters that the player has indicated resemble real people from their lives, may appear in future sessions and make references to previous events that they took place in.
In More Detail
At its most basic level, the game is a simple side-scrolling platformer. Players can run left and right, jump, pick up and throw objects, and attempt to fly. Flying is intended to be difficult, requiring concentration on consistent button presses with irregular timing. Pressing the button once will allow the player to stall or hover briefly in the air (Such as in Yoshi's Island, Banjo Kazooie, etc) allowing them extra time and precision in their jumps. Actually gaining and maintaining altitude are the difficult parts.
Other possible player actions might include some sort of attack and the limited ability to try to control or “reroll” some of the random aspects of the world.
Map generation works on multiple layers. Maps are based on a number of pre-defined “room chunks.” When generating a room, the game first creates/picks a room shape, basically choosing how many chunks to use and how they're arranged (horizontal hallways, huge 3x4 room, L shaped room, etc). Next, the game picks the actual specific chunks to use, making sure there's a clear path through the room. Then the game adds “obstacle chunks” (basically like smaller room chunks) at certain points in the room chunks. From there, the game randomly picks certain tiles (so the same room chunk might not always feature the same things). Finally, active entities (monsters or characters you can interact with) are placed. There are also additional “feel parameters”, including which tilesets are used, which backgrounds and cosmetic objects (furniture, wall hangings, etc) are used, and what kind of lighting, particle systems, and background sound effects are used.
There are a number of different zones, generally defined by a certain setting or theme (skyscraper zone, forest zone, suburbia zone). Each zone is like one floor or one level in Binding of Isaac or Spelunky. Once a zone is completed you cannot generally revisit it during that same session (I might change my mind on that rule, actually). The player must complete a certain number of zones to win the session. Zones may proceed in a certain order, or may be chosen randomly, with certain feel parameters (creepy atmosphere? Time of day changing?) indicating progression (zone 1 is always sunset, zone 2 is always midnight, something like that).
When a new zone begins, certain key locations are generated. These are special rooms with visually distinctive elements and important functions, used as navigational landmarks and as the starting points or goal points for game events. Initially key areas do not occupy specific points in space, but rather are stored in terms of the direction you need to go to reach them (the player might be presented with sort of a radar system indicating which direction key areas are.) Key areas may occupy constantly shifting points in space, meaning the player would need to chase them down, or they may always be defined entirely by their direction, meaning the player has some limited ability to control where they appear (that is, a room is always above you, but you can keep moving left and right before you go up to define where above you it is).
As the player explores, new rooms are generated on the fly depending on how persistent an area of the dream world is. With low persistence, a new room is generated more or less every time the player goes through a door (in extreme cases, segments within the same room may even change when far enough away, even when on-screen). As rooms gain persistence, the game will remember certain details and randomize other details. A fully persistent room will occupy a specific point in space and will maintain its shape and its segments (though obstacle chunks, entities, and feel parameters may still change). The game will remember different features of rooms and randomize them on different layers depending on their level of persistence. Certain events may cause well-defined rooms to change, or to move to a different location.
(random idea. Feel parameters might float through dream space like clouds. The “weather” of a room may change while you are in it as new feel parameters float by).
So, as a general overarching goal, the player is attempting to spread persistence, to create stable paths from point A to point B. As rooms become more persistent and more tied to specific points in space, they begin to appear on the map. The specific shapes players create with the map may appear somewhere, perhaps in the form of a key, or a special item, or a building block that can be used somewhere. In order to activate some end of zone challenge (such as a boss fight or a chase sequence or something) players may have to create a certain amount of persistence, or create certain shapes on the map to match a keyhole or something.
Things that increase persistence may include traveling between two key areas multiple times, completely clearing a room of monsters, completing plot events, or perhaps simply spending time in a room looking at how pretty it is (whatever might make a place stick in your memory or make you feel you have control over it, since that's what persistence represents). Things that might decrease persistence could include taking damage from enemies, plot events that incite more chaotic emotions, or attempting to “reroll” a room too many times (there need to be good ways for players to intentionally “erase” a room from the map if they want to create a certain shape). Taking too much damage from traps and monsters, having very chaotic emotions, or activating certain special events may cause a room to completely change before your eyes.
The purpose of the reroll ability is for the player to attempt to control the dream, using the randomization system for their advantage (representing either the control of lucid dreaming or even just that sort of vague feeling in dreams that something isn't what you expected, which causes events to change) Say, you get to a key area looking for a character that was there earlier, only to find that they're gone. You could ask the game to reroll the entities for that area in the hopes that the character would reappear. Perhaps you need to go up to get where you're going, but the game won't give you rooms with an up-facing door. You could attempt to reroll the room shape in the hopes that it would give you what you need. I'm not sure if this should be part of the same ability or something separate, but I was also considering a way to use rerolls offensively to try to control, change, or erase monsters (representing the attempt to “think away” unpleasant things in a dream).
This ability may require some sort of limited resource (you need coins for the slot machine) and/or perhaps this ability merely lowers persistence and makes your character more stressed.
I'm not sure exactly how this reroll ability should world controls-wise. I've been considering some sort of “control wave” ability (a wave of energy you throw at things to try to change them) but I think it would feel more sorcery and less dreamy.
Since you are in your character's mind, their emotions influence everything and are often influenced by everything. There will be some simple emotion variables, measuring happiness, anxiousness, anger, stress vs relaxaction, etc. There should be some visual indicators for emotions, but they shouldn't reveal exact numbers to players. Completing some plot events might increase happiness. Discovering some plot events might increase worry. Defeating monsters might increase the sense of calm and control, while being vexed by monsters might increase stress and anxiousness. Basically everything will influence emotion somehow. Players can eventually get a feel for what influences emotion and try to get into the emotional states that they want, but there are also events beyond their control that affect things (random monster ambushes. You never know what a character will say, if they'll bring up your character's deepest insecurities or if they'll remind them of happy times).
Emotions will affect feel parameters, they might affect how open or closed and difficult the map layout is. They might affect how many monsters appear and what artwork is used for those monsters (that cute pink bird monster could appear as a creepy floating face if you're having a bad dream). They'll affect what characters you can meet and might even affect what sorts of items you'll find. Basically the emotional state is a complex system that affects everything. Player can try to push it one way or the other, but should never be completely in control of it.
Waking up before completing your final goal is the fail state. Basically, the health gauge takes the form of a “sleepiness gauge”. I'm not entirely sure what sorts of things should decrease sleepiness. Things like sudden surprises (the room shifting and the floor disappearing below you, triggering a falling dream. I guess this is a reason for the typical bottomless pits in platformers). Intense emotions of plot events that just feel wrong might affect this. Attacks from monsters should not directly decrease sleepiness, but may cause secondary effects that can. Perhaps when sleepiness works a bit like regenerating health in an FPS. When you start to awaken you can see the dream world dissolving, but if you can retreat to a safe area you can try and fall back asleep before fully waking.
Monsters come in many forms, but tend to display a set of basic behaviors (and maybe there's some mix-and-match so different monsters do different things in different sessions). They're generally pretty simple and can be defeated by jumping on them or using attack items. The frequency of monster appearance depends on emotional state, plot events, and player behavior. If the player often runs right past monsters, then monsters might become more passive or stop appearing or they might be more aggressive and give chase depending on how anxious or worried the emotional state is. Alternately, if the player takes time to defeat monsters, then more monsters might appear for the player to defeat, or fewer monsters might appear because the player is exterminating them. Taking damage from monsters (or just being vexed by them rather than physically assaulted) might increase stress or chaotic emotions and lower the persistence of an area (and if the newly generated room doesn't have a floor where you were standing, it can trigger a sudden fall, which decreases sleepiness).
Monsters may also be used in puzzles. Perhaps you have to lead a monster into a trap, or use them as a key to a door. Some monsters may have effects (flatten you out, set your on fire, make you a vampire) that you can use to pass certain obstacles or activate certain plot events.
There are also special characters and boss monsters. Bosses might represent certain compelling or difficult ideas (monsters that are cool to fight or that represent fears and insecurities) and would be designed to elicit certain emotions. Some kind of zone-ending goal event should be randomly chosen (or perhaps chosen based on what the overarching plot thread of the zone is) once the map is completed, and this event is often some sort of boss fight. Bosses may be fought in a specially made boss arena, or they may take on different forms, such as a boogeyman character that chases you through the map as you try to catch it in traps, or merely escape from it. Or perhaps the boss is a shapeshifter that disguises itself as characters you've met, and you have to figure out who it is and defeat it.
Speaking of those characters you meet! The game will randomly generate characters by picking clothes, facial features, names, and personality traits. Characters can simply deliver dialog, or they can activate plot quests and even wander around the world with you. There are a few different ways that personalities might be represented. Like Animal Crossing, there might be a pre-defined set of specific personality types, each with their own dialog set. What's most likely, I think, is using a set of variables to define the character's personality and relationship to you. These variables could determine what dialog they use and also their behavior (a flaky character might randomly disappear while following you while a dependable one sticks to you and grabs useful items for you and stuff). Important traits could be things like, rich, poor, related, older or younger than the player, young, middle-aged, elderly, dominant/submissive, reliable/flaky, adventurous/unadventurous, etc.
Certain characters will ask questions allowing the player to indicate a pre-existing relationship. For example, a character might claim to be the player's sister, and then the player could indicate through their dialog options whether they even have a sister and if this randomly generated character resembles her. (perhaps there are secret rooms that allow the player to change characters' appearances, or, like, if the game is on the WiiU it could look at Mii's on the system). Important characters will persist from session to session, and may come and go over time.
There are multiple types of character. First there are random extras, throw-away characters created on the fly. Then there are characters which represent real-life relationships (best friend, mother, son, brother, etc.) Next there are made-up characters in game (essentially random extras who became important and are remembered and re-used by the game). Then there are understudies, which are randomly generated characters that essentially “play the part” or the previous two categories. Finally, there are persistent roles, such as shopkeepers or bus drivers, which are randomly generated characters always playing the same part.
Characters will be the primary source of plot quests. Here are some ideas for plot quests.
Your good friend Jimmy is really worried about his girlfriend. You can try to locate his girlfriend and address these worries directly, or you can keep talking to Jimmy and try to help him figure out how to deal with these problems and what to say to her.
Your mom bought some new flower pots and wants something to put in them. You find a puppy and give it to her. She plants the puppy and it seems happy.
Greg has been kidnapped by monsters! Track down the boss monsters and defeat it to rescue him. You might get slowed down on the way helping people the monsters have hurt, though.
Your friends Alice and Jenny are having a fight. You can try to talk to each of them separately, maybe playing messenger. You can tell them to deal with it themselves. Or you can actually try to lead one of them through the map to the other to try and get them to talk.
Now, some of those dialog tree situations I mentioned could get crazy complicated pretty fast. What I'm thinking is, there are some general rules, a pretty general set of dialog options, and what you have to do is learn what the characters' personality traits are in order to determine which options will work.
What I'm shooting for here is to have plot events be sort of a gamble, or sort of a risk reward scenario. I'm thinking of things like in Binding of Isaac, you need a key to get into a treasure room and you need a key to get into the shop. You might not find enough keys, and you need 15 cents to buy the good stuff at the shop anyway, and you have a limited number of bombs to try and locate the secret room (which is a quick way to get money for the shop). So you're always kind of gambling with your extremely limited resources, depending on how generous the game is with handing out things like keys and bombs (sometimes you just get nothing and can't get into treasure rooms).
So plot events might require resources, or they might actually be timed (maybe 3 plot events in a zone require having someone follow you, but you can only have one person follow you at a time and someone might be offended you have another person with you and cancel their quest). What I want is for the player to have to make choices. Half the time the player might have more plot events than they can hope to address, and even then they might be able to address all plot events only if they play their cards right. Perhaps certain kinds of plot events should consistently give certain types of rewards, so players can decide where to focus their attentions depending on the needs of the moment. Plot rewards would include special items (those cool things that change your stats and abilities), simple items (things like keys, money, or whatever it is that allows you to make rerolls), added persistence, or changes to emotional state.
Also, I'm thinking each zone should have one major plot event that ties into the zone-ending challenge. The major plot events between zones might tie together, too. In fact, regular plot events from zone to zone or from session to session might tie in. A minor plot event in the final zone of one session might be your mom is worried about your friend. Then the next session might see that friend go missing and you have to find them. Or maybe two friends who were in an argument you never managed to resolve are now having a big feud that's causing problems for everyone, or just won't talk to each other. In this way the game creates a persistent, ever-changing world, and players who play enough may even manipulate events in one session in an attempt to access certain events in other sessions.
Let's talk a little bit about the special items. They're interesting in action, but they don't seem so interesting to talk about. The item system in The Binding of Isaac is really one of the major inspirations for this idea. Special items would be unique objects that alter your appearance and hint at something of an underlying plot or a general symbolism. “The kings crown” could be a crown that appears on your head and makes characters more likely to do what you say. “Moon rocks” could give you a gray glowy look, and make your movement more floaty. Many items would simply increase or lower different stats while others would have special abilities, like completely changing how your flight ability works or giving your new attacks.
There would be different categories of items. Most would be “identity” items. These would be objects or special events that affect your character's sense of identity. There's no limit on how many of them you can have and all of their generally stack. Then maybe you could have one or two kinds of equipment items, which you could only carry one of (one item that you wear and one item in your hands). These could be special clothes or a necklace or a sword or a book, etc. Items held in your hands would be active use things, such as a sword or a crystal ball that shoots hamsters.
Each zone should more or less give away two or so special items. One for finding a special room or completing a special plot event, and one for completing the zone (I really am just copying design from Binding of Isaac here. Maybe I'll figure out something a little different?). There could be further opportunities for special items beyond that, though. Completing a difficult plot event, fighting a super tough enemy, finding a secret room, etc. I'm thinking each session has a special hidden area that has one of the really good, powerful, or just plain weird special items.
So, there you go! That's a coherent general overview for the game. And it only ended up half the length of my trying-to-figure-things-out ramble :p