Confusion caused by physically impossible environments.

Started by
33 comments, last by Kest 15 years, 4 months ago
The question is pretty simple, but explaining it won't be so easy, unless you're a 'Dr Who' fan. For the 'Dr Who' fans out there, just think of the TARDIS, specifically the relationship between it's exterior and interior space, and skip the next paragraph. For the rest of you: This question involves environments that are representable within a purely logical context, but may not be spatially consistent, and thus not physically possible. For example: You are standing in a hallway, and there are two doors right next to each other that are open. You look in one door to see a huge room that branches out in all directions, and thus would overlap the door next to it. Logically then, this other door must lead to the same room, but when you look through that door, you see an entirely different very large room. This is, of course, impossible [within our current understanding of possible, but I won't touch on that here]. This creates an environment that isn't spatially consistent, and there are two regions of space that are clearly separate, where the existence of each should prove that the other doesn't exist. It is also a very obvious example. For a less obvious example, picture a tiny house that you walk into in an RPG or such. Perhaps you can count off 3 windows from the inside of the house looking out, and see only two from the outside looking in. This is a comparatively benign sort of inconsistency, and would likely go unnoticed, and thus is likely 'okay'. And thus it comes down to my question. Under what conditions is this sort of spatial inconsistency acceptable, and under what conditions is it not acceptable? There is of course a substantial design advantage to allowing such inconsistencies. There is even more an advantage in allowing such things in the case of procedurally generated environments [which is actually what is prompting this question], in that there can be a relaxation on the constant problem of the procedural algorithm designing itself into a corner. It gives freedom in that you can design for artistic purpose with disregard for physical restrictions in many cases. So, I would like to prompt you all for a discussion about the confusion that can be the result of such inconsistencies, and a mechanism with which to measure the impact of these inconsistencies on the player, preferably in a somewhat precise and systematic way. To get things going, I propose the following: To present the illusion of consistency, no single point in any environment should have visible from it a spatial inconsistency. Small inconsistencies are less noticeable than large ones. Inconsistency with respect to features that the player does not interact with are less noticeable than those that are relevant to the game. As distance between points between which a inconsistency can be deduced increases, the chances of a player noticing this inconsistency decreases. "Busy" environments are less noticeable to be inconsistent that "not busy" environments [in that lots of things, and high action, will take the players attention away from the absurdity of the environment]. Got any opinions? Additional constraints? or discussion about how to manage confusion resulting from physically impossible play environments? The primary goal of this thread is to discuss mechanisms for minimizing the impact on the player due to these inconsistencies, as opposed to a discussion of these sorts of things as intentional play mechanisms.
Advertisement
It's typically not an issue. The most common indoor situations can be hidden with small hallways. And in all cases, props and decorations can be used to obscure the view angles that would give away the anomaly.

Implementation of a mini-map will obviously be a problem.

You didn't mention why you're doing this, or why you have to put up with it. Why do you need to overlap things? If you're doing it for positive user-friendly design issues (such as having a smaller outside area - which isn't difficult to wander back and forth through - that links through doorways to huge indoor areas), it's totally understandable. Otherwise, space in virtuality is pretty cheap.
The reason I'm doing it is because I am attempting to make a procedurally created play environment that is generated at run time from the game's current state. "From the game's current state" pretty much boils down to this generation tool running during game play, and the play environment is likely only partially created at any given time. In other words, if you don't go down a hallway, then there really is nothing at the end of that hallway [nothing meaning literally nothing, not just a dead end, but really just a clean cut in the map]. This opens up a number of potentially interesting options with respect to procedurally generated environments. The problem it presents though is the possibility of the procedurally generating algorithm making loops, and then being forced to string a number of long, goofy, and wholly uninteresting tunnels together to work its way out of strange situations on large maps. This is a problem because the generation algorithm isn't capable of taking back decisions that are made, because the player is already in the region that would be revoked or be able to go back to a region that has already been committed, and is restricted from making decisions too far in advance because the game state may change.

Thus I am left with a few options. One of which is to rigidly restrict the choices of features that the algorithm can create such that it is impossible to result in these situations. The second choice is to permit the use of features specifically designed to escape these loops [like stair cases, and bridges, and little tunnels to let the design alg work out of the trap it has created]. A third option is to make everything line-like [not a straight line, but somehow monotonic], and thus there will never be a loop because the map only proceeds in certain directions. A fourth option that I am considering is to allow for the algorithm to generate physically impossible terrain, and thus make only choices that are most optimal for game play, and not consider the impact of decisions that result in traps or the impact this decision will have on the availability of future decisions. I'm liking the sound of option 4, and so I am coming here to discuss the design implications, and the effect on the player, of these types of play features. Option 3 gives a lot of freedom, and lets me design for the exclusive purpose of player enjoyment rather than having to consider if things actually make any sense when viewed as a whole. I don't want it to allow such strange environments that the player gets confused and disoriented by such things though.

[Edited by - Drigovas on November 25, 2008 7:14:04 PM]
If you are procedurally generating these 'traps' then the algorithm would need to recognize them to be able to obscure them visually within the game. That might be difficult for the algorithm to do. If you have a map in the game, something likely requisite to basic navigation of a procedural world, then no amount of disguise within the space to make it unnoticed will help when you can see it so plainly on the map. The solution there is to style the game and visual world such that spatial impossibilities are acceptable and expected.
Just an observation, any of those physically impossible environments become possible and even simple to understand if you add in a concept of (invisible/border-less) portals. That way your doorways are simply portals to huge rooms, etc. and everything is 'physically possible'.
Is your system consistent in time? In other words, if I travel back the way I came will I always recognise what I have already passed (until I reach my starting point) or will my past have been replaced by dynamically generated content?

Visit http://www.mugsgames.com

Stroids, a retro style mini-game for Windows PC. http://barryskellern.itch.io/stroids

Mugs Games on Twitter: [twitter]MugsGames[/twitter] and Facebook: www.facebook.com/mugsgames

Me on Twitter [twitter]BarrySkellern[/twitter]

Re: Drigovas

In your post you didn't mention partition. If you use partition, the entire generated stage could be bounded by a volume. Everytime the player opens a door, the engine cuts a new room from the volume, until there is little room left, then the engine knows that the last room must be the "boss room" where things end.

I suppose the traditional way of doing this is to let all the stages be underground. Everytime the player takes the stairs down, the level is generated. The level could be any width. This is essentially the same as your "linear" concept.

It helps if the player does not have line of slight into a door. If the player cannot look into the door from the outside, then there is no implication that the next room is positioned immediately behind the door. The player would infer that there could be a cooridor or other rooms that were skipped between the two rooms. This is probably easier to do in 2D. In 3D you could restrict the camera angle (in a third-person game) or use L-shaped corridors with zoning.

In 2D, you could also condition the player to understand stages that are "unwarped".

Another way to do this is to have a set of fixed structures, and only randomize their internal layout. Imagine that the game takes place in a castle. There is the moat, the walls, the gate, the stable, the barrack, and the keep. The locations of these structures are randomized but fixed when the game began for the first time. The structure inside the gatehouse, the stable, the barrack, and the keep are randomized as the player go into them (assuming that the player cannot see inside them before going into them). Suppose the keep has 16 windows. Using a loose partition method, the game may only create 4 chambers inside the keep, using only 10 windows. There could be 6 windows where the player can never reach. In the dungeon of the castle, you could use the linear method everytime the player go down one level.


Another common spacial inconsistency that nobody has yet mentioned (I think) is, in games with house interiors that don't share a world space with their exteriors, a large size difference between the two. Not to mention the common RPG standard of 'enormous cellar with tiny house.'
Quote:Original post by PKLoki
Is your system consistent in time? In other words, if I travel back the way I came will I always recognise what I have already passed (until I reach my starting point) or will my past have been replaced by dynamically generated content?
I am intending it to be. The decisions that are made will be permanent. The same will not be able to be said in the opposite direction [with respect to time] though, in that if you are playing through a level and save, and play forward, you may experience one map. Upon reloading, you may experience a different one if your actions result in differences that the generating algorithm is observing.
Quote:Original post by Wai
In your post you didn't mention partition. If you use partition, the entire generated stage could be bounded by a volume. Everytime the player opens a door, the engine cuts a new room from the volume, until there is little room left, then the engine knows that the last room must be the "boss room" where things end.
I'm sorry, I really don't understand this, or rather how partitioning is a design concern here. Clearly it is a technical hurdle, but one that isn't too terribly complicated to overcome. It is more likely the case that I am misinterpreting what you are trying to say. Could you clarify?

With respect to the 'cutting rooms out of some volume' idea though, that is effectively the mechanism that would preserve spatial consistency. There is a problem with this though, in that if I wanted the level to proceed for X rooms, and my algorithm backs itself into a corner somewhere where it isn't possible to actually create X room within the volume provided [or ignore the volume entirely, and just consider the case where my algorithm runs rooms in a loop, and at the point where the loop would join, turns inward instead of outward]. This is pretty much the core of the issue. In this case, something must be done. I either restrict the choices that the algorithm could have made up to this point, or allow it to make whatever choice it deems appropriate, and allow for contingencies in the event that it circles in on itself. The question then is how the player should experience this event.
Quote:Original post by Wai
I suppose the traditional way of doing this is to let all the stages be underground. Everytime the player takes the stairs down, the level is generated. The level could be any width. This is essentially the same as your "linear" concept.
Exactly. So long as the environment is generated linearly along some axis, then this issue is solved immediately, and the conversation becomes a rather moot point. The issue of dealing with inconsistencies becomes irrelevant because any time in which an action would have been taken that would result in such state, a different action could be taken along this designated axis [down, in this case] that would solve the problem. If bizarre and impossible spatial configurations cannot be tolerated, this is likely the route I will end up taking.
Quote:Original post by Wai
It helps if the player does not have line of slight into a door. If the player cannot look into the door from the outside, then there is no implication that the next room is positioned immediately behind the door. The player would infer that there could be a cooridor or other rooms that were skipped between the two rooms. This is probably easier to do in 2D. In 3D you could restrict the camera angle (in a third-person game) or use L-shaped corridors with zoning.
Line-of-sight, or rather continuous playability of levels [no fade-to-black, followed by resurfacing in a new room] in any fashion, is really where this problem comes from. "Line of sight" isn't so much the issue so much as having some situation that results in the player stopping suddenly and saying to themselves "Something's not right here!", which is the effect that I am attempting to avoid. The fixed structure point [not quoted] is actually how many procedural maps are generated, in that they are placing pre-fabricated chunks in a non-predetermined way, and is an option if I can't iron out the details of my current plan.

Since we are bringing up spatial inconsistency examples: Dungeon Siege had this exact issue, and dealt with it by having really huge maps. It created a big problem for strategy guide artists though who were left trying to make world maps that made absolutely no sense.

[Edited by - Drigovas on November 22, 2008 2:04:56 AM]
I mentioned partitioning just as a method to eliminate the overlap problem altogether. "Partitioning" is the "cutting rooms out of some volume" method. If you know rough how many rooms should be cut inside the volume, then you set the volume to be large beforehand to be large enough to easily accommodate the run-time need. The method itself does not generate loops or overlaped rooms.

I suppose the linear method is the simplest. The environment could be
o a dungeon (such that no one can ever see the levels from the outside)
o a tower (where the width of each level is bounded by the width of the tower)
o a maze starting from the center (where new room tend to extend radially outward, such as in this fashion of fibonacci squares)

It always help if you could obscure the exterior view of the structure. But it seems what helps the most is to have obscure the transistion from one room to the next. Suppose you could prevent the player from looking directly into the next room through a door, then you can design the two interiors to be dissimilar enough such that the player would imagine that the designs of the rooms did not change abruptly, but the passage was skipped. The game time could also skip forward during the transision to tell the player that the character didn't teleport to the next region, but walked for an hour to reach the next region, the sky changes from bright to dark.

I think the player would only demand so much that the designer suggest them to demand. If none of the physics in the game is realistic, the player wouldn't mind the inconsistencies of overlapping physical volumes of the rooms. You get the problem when everything else is realistic except the physical placement of the rooms. When that happens the player would feel that somehow the room-generation algorithm is lousy and is the weakest link of the game design.

Suppose you cannot, or don't want to, obscure the line of sight into a room, but you still want to mitigate the chance that a player would complain about overlapping rooms, what could you do? Some ideas:

o have angled connective corridors and use more stairs. It is harder for the player to construct a mental map when the environment is not flat. (Breaking the 2D)

o have connective corridors that spin on an axis or have a rotation about an axis. People usually cannot keep track of the angles in their mind. (Breaking orthogonality)

o have rooms with irregular shapes (especially, irregular long shapes , snake shape, octopus shape, or star shapes, have 7 sides instead of 4 sides, or have the room be round and use curves). When the shapes are irregular, people may not even be able to tell which side is North, so that they cannot suspect whether two other irregular shaped rooms that are connected to the current room could collide. To do this, you could use the alignment of the floor tiles to destroy the player's sense of absolute direction (The player could still recognize that the next room is at the end of the hallway, but cannot tell whether that room is facing north or south).

o Destroy the player's sense of dimension: have rooms where the player simply cannot see from one end to the other end, so that the player cannot easily/unintentionally perceive the size of the current room.

o Have physically convoluted but consistent rooms to impress the player, so that the player would assume that the rest of the rooms are also physically consistent.

[Edited by - Wai on November 22, 2008 1:46:17 PM]

This topic is closed to new replies.

Advertisement