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

Hi all,

I’m completely new to all this, but am in desperate need of a creative outlet, and after making my way through two-thirds of Anchorhead have found myself here.

(For the record, I was new to IF and unaware that one should never drop anything. I dropped the broom at some point, but have no idea where, and now need to take a trip in an elevator, and it all became just a bit much after I had come so far.)

I’m building out the first scene in my story and working my way through the documentation (which, as far as instruction manuals go, is very approachable). But I am now exploring extensions, and don’t even know where to start. A lot of them seem great for just generally enhancing playability, and others seem to fill gaps that I’d previously thought I just needed to work around. Does anyone have any advice on, I don’t know, the Top 20 most widely-used (but not pre-installed) extensions and what they do? Or are there any reference documents/cheat-sheets that lays out the basic, ‘must-haves’ for a newbie like me?

Also - a few specific questions, if anyone will indulge me -

  1. I have a bit of an opening crawl that triggers when play begins. Currently, I am manually triggering the banner text before this opening crawl, but it still shows up just prior to the first time the player finds themselves in a room. I imagine I need to modify the rule somehow to prevent this, but I’m not quite sure how; any assistance would be appreciated.

  2. I want to implement quite an advanced notebook-system, as the story I am writing will be a detective-style game, and I would like players to be able to record various evidence/facts, events and conclusions. Is there already an extension for this that I could use? Or, if not, has anyone else implemented a similar system who would be willing to offer some advice?

  3. How on earth do you guys keep your source text organised and easy to navigate? I’m using headings (books, parts, chapters etc.), but without the ability to collapse/expand sections I’m still finding myself scrolling through a lot of text (once rules, relationships, etc. are taken into account), even for a single scene! Is there some kind of trade-secret system that makes things easier?

Edit: Sorry for the lack of replies - I’m in Australia, so all of this came in overnight. But thank you all for the fantastic advice and feedback, it’s much appreciated. I had heard this community was super-helpful, and now I’ve seen it for myself, too!

8 Likes

Regarding 3, you can:

  • break your source into fake extensions
  • on top of the Source panel in the IDE (at least on MacOS), their a “Contents” tab which is a table of contents linking to each section.
  • not applicable unless you’re confortable doing some tech work yourself: there’s a VS Code extension for Inform7 by @Natrium729 and I’ve contributed a header folding feature last year but it has never been released. So you could use the unreleased version: Nathanaël Marion / vscode-inform7 · GitLab
3 Likes

I’m still quite new to Inform myself, but re: extensions, this thread has a bunch of recommendations: Your favorite extensions

5 Likes

Here you go:

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

Alternatively, you could also just say your opening crawl after printing the banner text. That’s what I do in something I’m writing now.

3 Likes

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