From One In Darkness

From one in darkness

Edit: I had a search of threads for “darkness” before I posted, and I found answers along the lines of creating a new “dim” value and using that instead of darkness, but that means abandoning Inform’s built in light-source rules and hand coding every instance of such lightless environments myself. That seems the highway to bug hell. I also noticed that a lot of posts stemmed from people frustrated by having to go around the back of their head to scratch their ear and manually correct for all the problems that Zork-style darkness introduces, and has to introduce when you’re running a game on something that rusts, fills a basement and has less ram than your bluetooth ear-jewelry. But times have changed. I’m fine if the consensus is “yeah, we know: see Inform 8.” In which case I’ll fire up the chainsaw and see what I can manage.

First of all, I want to say that I like Inform’s handling of light and light sources. I like the way that if I put the flashlight (which is lit) in the drawer, and close the drawer, then I no longer get the benefits of it being a light source. This is logical real-world behavior, and consequently something that seems inherently fair.

I’m a lot less happy with Inform’s way of handling darkness, because it’s not real, it’s magical. The player is silently transported elsewhere (actually out of play) and presto-bingo! Everything’s out of scope. Seasoned adventure gamers will get a little thrill, feeling a sense of IF history, and know at once that it’s the old find-the-hidden lightsource puzzle. For everyone else the game might as well print up “What a dumb idea.” There’s nothing a player can naturally do when in adventure-style darkness except leave.

Essentially it means that writers only naturally have access to half a world: the half that’s lit. Why should exploring darkness be less natural than exploring light?

I know, Informants more experienced than I (pretty much everyone) are probably clutching their heads and howling “and why not the moon too, ungrateful wretch?” It can’t be coincidence that every example I’ve found in the documentation simply stops the whole shebang with instead, rather than unlisting the bits of the machinery causing this cheap special effect that is darkness.

I’ve found: No.26 “Down below”, and 364. “Peeled” which puts something in scope.

Zorn of Zorna deals with “printing a refusal to act in the dark” but simply slaps an “instead” on the action. Besides, I don’t want to refuse to act. Why isn’t there an example of “printing something helpful” insead of refusing to act in the dark.

364 “Peeled” puts large objects in scope, but Look is still unavailable. Besides, in general I don’t want objects popping in and out of scope: it seems a great way to introduce bugs. I want the player to be in the same space as when lit, so he can interact and experiment with things, just not be able to look in an unlighted room unless (say) wearing the night-vision goggles.

Hymaenus, Reflections, don’t deal with darkness.

Sure, it means writing the description of everything twice, not to mention tampering with Look – which I’m guessing is going to need expert surgery, and I can quite understand people not wanting to spend time on what is after all, a beginner’s whim.

But wouldn’t such a revised world be more fun? Not only for lycanthrope and stealth games of all kinds, but simply because a richer handling of darkness would be more in line with with what non-if players expect to happen, not to mention helping authors to help players in the dark, rather than hindering them or insulting their intelligence?

I’m not suggesting anything along the lines of seeing into other rooms, or indirect light or anything like that as part of the standard world model. Just leaving the player where she is, switching the printed room description to “[the location](in the dark)” and actions that require light (Look, Search and Examine spring to mind) responding with “You see nothing, it being dark,” unless I’ve written dark-descriptions for the room and all the dark-discoverable things in it.

I’m happy to write the extra descriptions, I just don’t like having to fight the engine if I want to use the cool, inbuilt, lighting rules.

On a practical note, unless it’s vastly more work for any of the knowledgeable and willing, I’d prefer not to have to use text substitutions: having everything jammed together makes it harder to give the different responses a consistent feel – imagine some night creature for whom the dark is its natural, but ever-shrinking realm having to venture into those dangerous bright places where to be seen is to be suddenly, crunchily dead. A crucial part of putting the player in the creature’s sucker coverings is going to be the association of light with danger rather than safety, as it is for us.

I know, the current implementation of darkness preserves the fog of war: preventing a player from getting hints of what’s in an unknown, dark room by randomly typing in “x table” or other reasonable guesses, or one who already knows the room from “cheating” by typing “open drawer. take watch” or similar.

But honestly: is the player in the first case having much fun? I’d guess not. That’s the sort of real-world logic that non IFers try.

In the second case I’m fairly easy about players cheating in that fashion: that’s the kind of knowledge that comes from having played the work before; if they’re playing it again, they liked it, but perhaps didn’t want to complain about the only lamp being nine floors away and guarded by the riddling Gnurger, when they only wanted to give the watch to the white rabbit so they could walk through the Candy Gardens again in what, after all, is a free game. Someone re-reading a book doesn’t consider it “cheating” to skip right to their favorite parts, why should an IFer?

Isn’t it time the limited Crowther and Woods style Darkness was given a gold watch, a pat on the back, and told to go hang out with the Hunger Daemon and the Thief? (Or heck, even a fond memorial in the form of an extension, why not?)

Of course, I’m kinda hoping that some Wizzard will give me a one line reply, here. Preferably beginning with Unlist :slight_smile:

Failing that, hints about where to apply the chainsaw will also be gratefully received.


I think we all accepted that when I7 originally shipped with a default of “no darkness”.

In I6, rooms defaulted to darkness, and you had to either mark them all as lit or patch out the lighting model entirely. (Or sneakily mark the the player object as a light source – a popular hack.)

A more up-to-date conception of darkness, I’d say, would want to model mostly dark rooms. This is a more common experience – moving around in a basement without a flashlight. In such a model, you’d have objects which are visible (the stairs, the furnace) and objects which are imperceptible without light (the lost keyring in the corner). And then of course everything needs a different description in the dark.

But I wouldn’t try to set up objects unlisted in the room description, while still being in scope. In my experience, that never works out well. If the player can interact with it, it should be in scope and described in story text. (Perhaps requiring a SEARCH or other extra effort, but described.) If the player cannot interact with it, it should be out of scope.

I’m afraid that in my efforts to show that I’d made a good-faith attempt to search the documentation, I came off as rather crabby. Sorry if I did.

Reading all the old posts about darkness, I was struck by the bewilderment of people who’d become used to the idea that Inform uses containment to model a world (and for everything else we have to use smoke and mirrors) and had come to trust that. Only to then have Inform suddenly break its own rules: they seemed to me to be saying that it’s an unfair puzzle for the coder to have to solve. Or maybe I’m projecting. :wink:

But having got it all off my chest, I did have some sneaking ideas. That’s why I had a go at A lighter shade of Darkness, jiggering the look, search and examine actions to do different things in light and “dimness” once I’d figured out how to piggyback on the light handling machinery. (There was zero chance I could work that out for myself, and I still don’t understand about visibility ceilings, but happily it turned out I only had to do some careful copy typing, followed by some experimental code mangling.)

I take your point that if the player is completely unable to interact with something, then it effectively isn’t there, and should be out of scope, but I was interested in letting the player do some things in the dark(ish)ness, but with sight lessened in usefulness, as a first step towards thinking about creatures that perceive things we don’t, and building a story utilizing that.

Of course, I’d barely gotten the first can of beans into my shopping cart when I realized that I should have checked the light condition each turn (doh) and a bunch of other things, too. So it looks like the next thing I’ll be learning is versioning.

Mostly though, I’m interested to see if others are interested in this too, or if I’m like a guy busting into an SF convention suggesting we should write stories about rocketships; or am re-hashing some old chestnut like relative travel directions.

Anyway, thanks for replying. It’s really useful to sit down and think it through. I’ll try not to use the group as unpaid consultants for every wacky idea I get.

You’re welcome to discuss this; that’s what we’re here for.

I believe the intention of Inform 7 (and probably 6) was to duplicate the functionality and look-and-feel of Infocom’s output, from they way darkness is handled by default, to the player obituary.

I’ve struggled with an attempt at non-absolute darkness in another game, and also find it complicated.


This is one of those times when I feel like pressing the heart button is not enough to express how much I agree with this.