"Phasing"?

Alright, using the term “phasing” loosely here. I remember a game way back when I first started investigating IF called “Shades of Grey (Gray?)” I think it was written in AGT. Anyway, it was one of my favorite games, probably for no good reason.

Point being, the player “shifted” between one “reality” and another. I think. It’s been a minute.

Question being, because I know the subject is vague… What are the opinions on the best way to handle this? Would it be creating whole separate rooms with separate objects and NPCs and whatever? Or making them conditionally different based on X? I can see creating whole new regions/rooms/items/et cetera being nightmarish. But I can see problems with the other approach as well.

I think both ways could/would work. But I would do whole new regions/rooms/objects for the “other world” (just because I think I would make it so different that rules would be cumbersome) but just give NPC’s different attributes when in the other world.

I have a bit of this in my WIP, and for me, this was the best way to go. Rooms and objects took on so many new aspects that the if/when/while/instead rules became unreadable. So I made a new “Part” and “Chapters” for the regions in the “other world” and just gave the same NPC’s different properties when they are there. I only have 5 NPC’s (so far) that this applies to. But it seems to work so far.

Basically I just copied the rooms and objects, renamed them, then added the new descriptions and properties to them. So it is a whole separate “Part/Chapter” scheme, copied over and altered. I saved the if/when/while/instead rules for the PC and NPC’s. And I name (and comment) the “mirrored” areas in a way to make finding the same place in the other world easier.

But like I said, both ways could work. But when I edit in a week, a month, whatever… or someone else reads my code, I hope this will be more readable. I think this comes down to a programmer philosophy decision.

As a beginner to Inform, but not to programming itself, my guess would be to make use of classes in where you define as much as possible that’s possible to be done in both layers, then use individual rooms/objects/… for finetuning. That way you’d save time AND keep your code readable/manageable. Just my guess.

Alright, allow me to further complicate the situation… Let’s say that the “phases” are not dramatically different. Let’s say, as a harsh example, you have a heroin addict exploring a room. Doesn’t matter why. He’s just there. :slight_smile: Different objects take on different properties based on how much he’s smoked. (He’s afraid of needles.)

Let’s say he has a number called “stoned”. In the room is a clock. If stoned is somewhere around 10, the clock looks mostly normal. At 20, the numbers on the clock turn blue. At 40, the hands on the clock become insects. At 60, the clock begins talking to him.

And so on…

I’m assuming that making entirely new rooms for this kind of thing would begin to get… unweildy?

Probably. I am doing more of a Alice/Wonka/OZ (or Wicked if you prefer) on mescaline type of reality change. I guess it all depends on the extent of the variance from “reality”.

If you’re just going for description changes, this sounds to me like you should make the descriptions functions and switch() according to the variable you have.

Well, I’m thinking it wouldn’t just be description changes. But I guess I’ll cross that bridge when I get to it.

I agree. Given the limited scope of change, it would be better to vary the descriptions (and reactions) based on the variables.

This sounds to me like a good opportunity to apply Inform 7’s Scenes functionality. It’s relatively easy to change things like descriptions and vocabulary words based on “when [scene] X is happening”.

That is probably the best solution if the situation is just a few variables. Or even several spread around. I had tried this, but in my case the exceptions became greater than the norms (example: if in this scene, with this item, already knowing this, and/or having triggered that, and/or PC has spoken to the NPC clock, 10 things might change. But maybe only 2 or 3 will change if one or more of those variables was not true)…

And with the “other world” being only a subset of the real world, but twice as complicated (normal scenery items and objects might have new meaning, or become animate, sometimes randomly or by triggers, and other paths and rooms appear that did not exist before in the “real” world, also at random or by triggers) it seemed easier to create a separate “mirrored” world for these regions.

And none of these variables are deal breakers for completing the game. They are just to add color and make it so every game follows a different path to the outcome. So I am only making my life harder… not the players. :wink: