Problem with Cloak of Darkness specification

COD is mostly useful for quickly giving people an idea of what coding in a system looks like. It’s not meant to prove the “completeness” of any system.


Y’know what? It seems to me that CoD is kinda like a more involved Hello World. Just about every programming language under the sun has one of those and all it does is demonstrate how to print a short text with no consideration of the rest of the language’s features and flaws.

1 Like


So why does that excuse it lacking a walk-through?

Sorry if my earlier post was a little incoherent :wink:

What I was trying to say was that I regard CoD as a loose brief to showcase the features of an IF framework, while still being simple enough for a newbie to get to grips with.

So defining a canonical walkthrough would bind the framework author to some preconceptions about how an IF should play, and I don’t think that’s healthy for the future of the form.

And reading earlier, I see that I posted a hope that a future spec for CoD could try to prove that an IF framework scales well for large projects. I’m not sure how compatible that is with what is clarified here, so that part is optional.


I get your point, but I think it fails on that score too, because it is too prescriptive. Someone mentioned NPCs earlier. CoD stops you including an NPC in the game that is supposedly showcasing what your system can do!

I am curious how the scaling issue could work with a game that would have to be small. It is important, but how do you showcase that?

I think this thread is starting to veer into territory that has been covered by at least one other, recently… as in, what would be a “better” alternative to Cloak of Darkness… something that would cover some of the other key elements of IF. Cloak of Darkness’ focus on light/dark seem incredibly old fashioned even to someone like me who spends their time exclusively playing old text adventures!

(See threads like… Standard Demo Kit for modern IF systems?
Cloak of Darkness 2: Survey Results
Medium sized open source text adventure code? )

There’s nothing to stop you coming up with your own specification for an alternative “standard demonstration game” that might include elements like containers or NPCs. The trick is to come up with a tiny, compact game that incorporates all the key elements of a “good” IF/text adventure system whilst also having some narrative appeal to encourage others to recreate it on multiple platforms. There are plenty of clever people here, though, who could handle that challenge… So, I guess, the main obstacle might be how much of a need for a new CoD is out there? Do people really use it to help them get an idea of what systems are like?

As an aside, I think that aiming to produce a much larger demo game would be a mistake. You want something small and streamlined enough that a newcomer to a coding system can easily take in the full scope of the game code. That is one of the attractions of CoD. Any new “standard” game should be able to be replicated across the full range of systems; but most systems can cope with containers, NPCs, wearable items, item weight, etc. without getting too bloated.


Unfortunately, Scottkit cannot easily handle wearable items and items weight. It’s too limited that way. Maybe if you assign a special room as “worn”, and have the daemon sums up each items weight being carried. But there’s no easy, convenient way to do it.

Also, a 2 word parser is inconvenient to deal with container system, anyway. You’d create special verbs to deal with that.

Which begs the question: Do I need to specify that items be worn/equipped? Do I need to worry about size/weight? Do I even need inventory systems?

My conclusion is that you don’t need it to have a good, fun game. In fact, it’s better if you skip it, if my test game is of any indication. So what if a player wants to put an elephant into his pocket? :rofl:

1 Like

My favoured systems of choice are old-school text adventure ones, so there are always workarounds. In simple systems, object states can be implemented by using multiple items, e.g. “a torch” and “a lit torch”. For worn items I can swap two objects over, e.g. “a cloak” with “a cloak (worn)”. Containers can often simply be dealt with by “a bucket” and “a bucket of water”. EMPTY BUCKET or OPEN BOX are usually sufficient to deal with simple containers of that type. NPCs just take a lot of manual coding, but are doable. So, as long as any demonstration adventure isn’t too specific, it can still be implemented in old school adventure systems.


Re-implementing Colossal Cave Adventure would be the next step up from COD, which, I agree, is the Hello World of IF.

If you are trying to prove your IF system is feature complete, I think working through all the examples given in the Inform 7 documentation might be an option.

Colossal Cave Adventure is already one of the most copiously ported games, already implemented in many systems, and I really don’t think it’s a good candidate for a “demonstration adventure”. That’d be like choosing War and Peace as a standard text for translation. Something a little more compact would be better… I guess, you could, as some authors have done, strip down Colossal Cave to a minimum number of rooms and essential puzzles and use that as the basis of a demo game.

agree, Colossal cave is so much more that what is needed. Perhaps a revised Cloak of Darkness (2023), where specs and walk-through are agreed to, by a community of several volunteers, as a more modern bench-mark.

Oh, mid-sized at best(*). Colossal Cave isn’t compact but its sprawl is mostly empty rooms.

It is widely ported, which argues that porting it is a relatively tackle-able task.

(* I tried to come up with a novel that would be an example of “comfortably mid-sized but padded-out with extra wordage,” but it would just turn into a literary flamefest so let’s skip it. :)


There can’t be many systems that don’t already have a version of Colossal Cave, though. Personally I couldn’t get excited about working on yet another port of that.

Oddly enough, I’m not sure if there’s an Inform 7 version of the 350-point Colossal Cave, though there is one of the unfinished Crowther version. (Years ago I started working on one while learning Inform 7, but I’m unlikely to finish it. I expect many could say the same.)

Hmmm. And if you don’t cover each one, then it’s incomplete? Or if you have an extra feature, it’s not really IF?
The sad part about Cloak of Darkness is that it hasn’t changed because there is fundamentally a wish for it not to change.

Where is the initiative for extensions, plugins, extra taxonomies? Where is the Cloak of Darkness on board a wayward cruise ship? With a day/night cycle? With timed puzzles, side missions, or power-ups?

‘Lack of ambition’ is what that says to me. And we know where that leads.

1 Like

That’s kinda where my mind was headed, too. It would prove that the system is able to support a traditional parser game, but if your system is engineered to make IF, but with very different mechanics, then it might fail to replicate Cloak of Darkness, even if it’s still an IF system.

Judging a fish on its ability to climb a tree, and all that.

1 Like

I mean, no one’s forcing anybody to go implement any of these things. If you find them useful, do it. If not, don’t. There’s no need to be overly literal about it.

To me, the Inform 7 examples seem like a good-sized corpus of small self-contained examples designed to show off particular features. If you want to “prove your IF system is feature complete” (whatever that means, and if it’s even a desirable goal) you could do worse than to look through this pile of things that people thought were interesting or important enough to include at the time, and decide whether they’re important to you and your system here and now.

I’ll also point out Ryan Veeder’s 2014 Craverly Heights, which is smallish and he’s said it’s ok to port it, both on the game page and in this intfiction thread. So that’s a somewhat more modern example that may or may not be interesting to you, though it’s certainly not a “standard” in any respect:

I am passionate about art that is thrown together without a lot of preparation or revision. […the game was] designed and programmed over about a week.

The narrative of the game concerns acts of extemporaneousness similar to the game’s creation, and I like to think the game creates the sense that the characters, the player, and the author all don’t really know what’s going on. So it is ironic that this game has been painstakingly recreated several times, in several different programming languages


Very true, too! I guess I don’t know what the general expectation is.

Hey, this is my new IF system. I’ve implemented Cloak of Darkness, but uh… it’s a bit tweaked. So…y’know, don’t mind the sound propagation, day-night cycle, stealth mechanics, and motion tracker. Oh, also there’s no inventory system or clothing mechanics, lol. Oh, there’s also a mission overview menu, and level select, but obviously this is just one level.


Are you describing a Twine game with definitive World model, and limited commands of NSEW, L, Z, I (Info)?

Auto inventory and puzzle solving. No need to do anything but go into various rooms. I believe there’s automap as well?

Can’t think of the title at the moment, but I’m sure somebody will correct me if I’m wrong.

1 Like

I was reading this thread and thinking of a fun new standard to write (I still want to think of one and propose it, just to see if it’s any good), but honestly this game by Graham Nelson might be a better standard for a ‘serious’ IF engine:

I don’t remember everything in it, but I know it was designed as a demo to show off Inform’s features, and from copying my review is has “indistinguishable objects, games involving large numbers, magical spells that interact with each other, [and] a balance that weighs different objects”, among other things.

The specification would include:
-Have a pile of oats that you find a scroll in when you examine it
-Have a blocked exit with a custom message
-Have a spellbook with multiple spells, some of which you can memorize temporarily and others permanently
-Have a spell that copies scrolls into your spellbook
-Ridable mount taking you to other area (bozbar’d horse)
-A way to remove characters from on-stage (bozbaring the tortoise)
-A way to have a distant character you can’t interact with (flying tortoise)
-Events with random chance (the feather falling down)
-Etc. (going to stop there for now)