New Author - Trying to wrap my head around the enormity of it all

I haven’t used it, but “Notepad by Jim Aikin” might do what you want.

6 Likes

This is useful! Thanks!

1 Like

Yes: unless the game requires it for plot/logistical reasons, or there’s limited inventory space, there is no reason to drop anything the game lets you carry around. At minimum, you might be able to store extra items in a room you know you can reach so long as there isn’t a thieving NPC wandering around. You do risk getting stuck in a space where you can’t reach the storage room and will throw up your hands “Whyever didn’t I think to bring the vacuum cleaner down into this desolate sewer system I’m trapped in?” :smiley:

What the Anchohead tribute game taught us all is if you have a holdall (a container like a backpack to put things in, or any container that will accept objects and can be closed) is you can store everything in there and when the container is closed that keeps stray objects out of your way and doesn’t include them in disambiguation (“What do you want to unlock the door with, the BBQ chicken, the tablecloth, the bug spray, the glowing blue sword…”)

3 Likes

Unless you have a really good reason, such as printing an alternate opening with credits, generally avoid skipping the banner completely as it lists a lot of information some players like to know. It’s like the title drop in a movie after the pre-credits scene.

If you suppress it with the above rule, I think you can invoke it with display the banner text to have it happen where you want.

The display banner rule is not listed in the startup rulebook.

Instead of going north from YOLO Peak:
    say "Everything freezes. 'That's me, and I bet you're wondering how I got into this mess...'";
    display the banner text;
    now the player is in Base Camp;
3 Likes

Oh, of course; I only suggested that solution since @Kristian said he printed it manually already. If it’s manually printed it doesn’t need to be part of the startup rulebook, but I obviously agree that it should be printed somehow. (I don’t remember if the information within, like the version of Inform used to compile it, MUST be printed after Inform went open source?)

Yep! I’m working on a story where there is an interactive pre-credits scene/tutorial like that, which is why I didn’t suggest the (simpler, but less versatile) solution @Hutch suggested. But if this opening crawl is simply text that’s printed during startup, then that works too.

2 Likes

I will give the advice I never followed (cautionary tale: I ended up turning into an I7 contributor and still not yet a game author): start with digestible chunks. Set achievable goals. The whole of the sprawling tech stack of Inform and its infrastructure is actually really mind-bogglingly large and complex, moreso than any outsider would guess for something that remains a framework to build games recognizably like the text games that ran on home PCs in the eighties. But you don’t need to know it anything close to all of it (no one person does, truly!) to get useful stuff done.

Sometimes people discourage newcomers from using extensions. Even the docs say

Newcomers will probably not need extensions for quite some while

I personally think that overstates the case somewhat. Modified Exit is an improvement for most games. Far Away is good for anything involving backdrops that can be seen but not touched, which is a lot of games.

I made the Friends of I7 github docs page to provide (something approaching) an easy to browse directory of extensions (something similar can be seen by browsing the Public Library in the IDE… for 10.1, the contents of the two are very, very close).

But don’t get bogged down in coming up with some perfect set of extensions and tweaks that customizes every aspect of the World Model straight out the gate. Inform’s defaults were selected because they worked well for many cases, and were at least ok for most cases.

Read over (and bookmark for reference) the I7 docs and resources thread. Look at the tutorials there if you haven’t yet.

Read Jim Aikin’s I7 Handbook: it’s easier to learn from than the docs.

The Z-machine Matter is a now-defunct blog about an author’s development of a murder mystery game. Play The Act of Murder if you haven’t yet.

For a notebook system, you might like to check out Notepad by Jim Aikin. You might like to try playing The Weight of a Soul which has an interesting journal system and the Weight of a Soul source code is available.

How to organize/structure your project (spoiler: it begins “there’s no one answer”)

8 Likes

It’s a great adventure, in more ways than one! Glad you’ve found your way here. (Just be careful crawling through the narrow, windy tunnel, as your candle may blow out…)

My suggestion for learning Inform would be to start by sketching out the basics of your story – the rooms, the objects, and then after that the characters. (Eric Eve’s extensions are excellent for adding realistic character interactions, by the way.) Details of presentation, such as the banner, I would suggest that you leave for later on, when you’re more familiar with Inform syntax.

For organizing, I typically group all of the rooms in one Volume, with a separate Book for each, and within those Books the Chapters on movable items, scenery, and so on. (My Inform is really rusty, but you get the idea.) I put the Hint system in a separate volume, my new verbs in a separate volume, and so on. That keeps everything tidy. And as someone else suggested, there should be a Contents tab that you can switch to in order to navigate more quickly from place to place within your code.

4 Likes

Tons of good advice here!

re: extensions, I think the most common are easy doors and locksmith. If you are ever looking for something specific, asking here is a good way to go about things. I just did this yesterday! Speaking of which, my number one bit of advice is

:clap:ask for advice here :clap:

most requests for help are answered quite quickly. lots of helpfulness and experience here for Inform 7 programming.

It’s good to share some code when doing so. You can copy paste here then apply the “preformatted text” style to it (it’s under the little gear icon).

Alternatively, share a code snippet! Welcome & good luck on your journey.

5 Likes

Not OP, but as someone who’s also pretty new, I hesitate to post. Not because anyone is unkind or anything, I just feel weird starting a whole forum post for (what seems to me) a small question, that I couldn’t figure out from the docs or searching the forum. Is there maybe a Discord server?

4 Likes

We like answering I7 questions in these here parts, and we don’t do the thing where we say or imply that someone should already have known it. We’ve all been there.

5 Likes

Yeah, for every question one person has, there are probably five or six other folks with the same question who have it but haven’t registered or don’t feel up to saying anything. So it’s really a good deed to post a question, even for something that seems small – I know I’ve run into what I thought was a tiny issue, only to learn that resolving it was actually a fairly involved process that stretched my knowledge of Inform in all sorts of ways.

Oh, and there is a chat in the forum, and various other IF fora and venues, but they tend to be less searchable or permanent, so generally this is the best place to put coding questions.

6 Likes

Love the idea of breaking it into extensions - I hadn’t even considered it, but I think that’ll be my temporary solution.

I’ll take a look at the VS Code extension, too, to see if I can make something that works.

Thanks!

2 Likes

Ah - that’s exactly what I’m after. I initially tried to make the rule for displaying the banner text: do nothing (but this obviously resulted in me not being able to manually call it, either.).

Thanks heaps!

1 Like

What a fantastic response - thank you!

I will do as you suggest, and yes, I am rapidly learning that the best (and only) way to eat the proverbial element is in frustratingly small chunks.

2 Likes

Great suggestions, thank you!

You’re quite right, of course, that I have found myself agonising over window-dressing before I have actually laid the foundation. But, in my defense, I blame it at least partially on the excitement of finding an interactive story-telling medium that is relatively easy to use and has low barriers to entry.

That system of organising sounds very sensible - thus far I have been proceeding scene-by-scene, but I find myself rapidly losing my place and forgetting where, exactly, the rule for xyz interaction or relationship first appeared.

This may be a leap, but going purely off the name I assume you are the same Jim Aikin who wrote the Notepad extension? In which case - do you think that Notepad would be a good fit for the detective-style notebook I have in mind?

3 Likes

I get that. I remember feeling that way when I first discovered Inform 6, and that was 25 years ago.

I tend to think in terms of the player wandering around the map. I seldom try to construct scenes, other than cut-scenes. But that’s just my admittedly old-fashioned take on interactive fiction.

Yeah, that’s me. But I have to be honest. It’s been a long time since I wrote a game in Inform. I first wrote the Handbook about 15 years ago, and I have updated it twice as a community service, but these days I use a different development system when I write a new game. That being the case, I can’t even tell you whether Notepad will compile under the latest version of Inform. You’ll need to try it out for yourself. I seem to recall that it only wants to hold one message at a time, so that would be a limitation for a detective-style notebook. But maybe there’s an easy way to modify it. I might have a look at it – no guarantees.

1 Like

I tested it just now. Notepad compiles fine with the current version of Inform. You can technically put multiple notes into the detective’s notebook, but the output won’t be pretty. Here’s a sample:

>write #1 The butler did it! in the notebook
You write "#1 The butler did it!" on the notebook.

>add #2 In the conservatory? to the notebook
You add to the text on the notebook. The text is now "#1 The butler did it! #2 In the conservatory?"

>add #3 With the truncheon -- or was it the revolver? to the notebook.
You add to the text on the notebook. The text is now "#1 The butler did it! #2 In the conservatory? #3 With the truncheon -- or was it the revolver?"

>read notebook
On the notebook is written "#1 The butler did it! #2 In the conservatory? #3 With the truncheon -- or was it the revolver?"

Note the syntax: “add … to the notebook” must be used after the first entry, or you may accidentally overwrite what was there.

4 Likes

My philosophy toward notepads in games is:

  • Notebooks are very useful things! Include them if you can!
  • The player shouldn’t have to keep an in-game notebook updated by hand: they can use their own paper notebooks for that

In other words, if you provide an in-game notebook, it should record information automatically as the player makes progress. If you don’t want to do that, a physical notebook, note-taking app, or the like will be more convenient than anything you can provide in Inform.

7 Likes

(Specifically, neither the Z-machine nor Glulx provides any way to have a multi-line editable textbox. Any notebook software without that feature is going to be sorely limited.)

2 Likes

That’s one advantage of the Notepad extension: you can drop it in and the player can basically use it however they want to. It’s literally a functional in-game notepad object they can have in inventory - you don’t even need to define how they’re supposed to use it. They can ignore it if they’d rather keep notes outside the game.

You can also change the text on a notepad via rules, so you could cutscene an interview with a character and then add a relevant page of authored information automatically in addition to what the player wants to add.

I basically wrote Psychomanteum to experiment with this extension’s functionality!

1 Like