Lyric Storytelling Widget r1


If you've been reading along, you know that this project I've been calling "Portrait With Wolf" is a kind of poetry widget. It creates screens of parser poetry, each one boasting familiar features of a parser game. Here's an example:

================================

Still Life with Wolf ^-^

A good time by A Loving Friend
Release 1 / Serial number 12345 / Inform 7 v10.x / D

Press the "enter" key or choose a letter to have your fortune told.

Wolf Gallery (unoccupied)

It's a cool morning in late March, and the air through the windows is sun-drunk and brisk. The floors smell like wood soap, shining dully in the indirect light. Here, the real vanishes into the possible, each day longer and warmer than the one before.

This table certainly looks safe and stable.
(*C*) cat card
(*T*) turnip card
(*B*) boot card
(*A*) astronaut card

>c

A friendly, charismatic predator.

*** How Precious ***

Let's try again!

================================

Over the course of seventeen posts, we've discussed ways we can change what prints in this format, using text substitutions and tables. It would be easy, I've said, to change the text: just edit the tables! My idea has always been that authors could enter their own text in a template to make their own games.

how do I make screens like that.

The first step is to create a new project in Inform 7 and copy in this code. If you compile it, you'll see what the basic structure is.

## A FAKE TITLE ## 
## A FAKE AUTHOR ## by ## A FAKE SUBTITLE ## 
Release ## 1 ## / Serial number ## FAKE SERIAL NUMBER ## / Inform 7 v10.1.2 / ## FAKE COMPILER VERSION ## 
## TEXT BETWEEN BANNER AND ROOM NAME 1 ##
## ROOM NAME 1 ##
## ROOM DESCRIPTION 1 ##
## SENTENCE OR SNIPPET INTRODUCING THE OPTIONS 1 ##
  (1) ## NAME OF OPTION ONE 1 ##
  (2) ## NAME OF OPTION TWO 1 ##
  (3) ## NAME OF OPTION THREE 1 ##
  (4) ## NAME OF OPTION FOUR 1 ##

Every bit of quoted text that has two pound signs in it (##) is something that an author can replace with their own text. At a very basic level, this is all that's required. Fill in your text, and you have a game. Really!

what about endings.

Out of the gate, the Lyric Storytelling Widget can have five endings. Each option has an ending associated with it. If the player makes the same choice more than half the time, then the game will have the "option one" ending. In other words, over the course of four turns, the player chooses option 4 three times. That will trigger the "option 4 ending."

What about ties and other cases? Those lead to the "default ending." Writing these endings is easy. Just update the table of concluding texts with your own content. Once again, no code required.

but I want to change things (change code).

That's great! Change away! Perhaps four choices and four endings feels like too much. It's easy to cut back to two or three. I've made a lot of comments in the code, so if you feel like experimenting, those should help you along. In this case, removing options is easy!

  1. Go to the place in the source code where the options are defined: Volume 3 (the options).
  2. Comment out (I recommend doing this rather than deleting) the options you want to remove. Work backwards, removing 4 first and, if desired, 3 as well. Don't start with just 3.
  3. Go to the place in the source code where the commands are defined. Just search the text for Part 2 (commands).
  4. Comment out the commands related to the options you just removed.
  5. Finally: go to the table of contents and comment out the table rows for every option you just removed

That's it! You work now only offers fewer choices per turn. You can add them, too, if you are comfortable following these steps in reverse.

Maybe you'd like to remove the total number of turns in your work. That's easy, too. Just comment out rows from the tables themselves. In every table that has an "index" column (i.e., almost all of them), comment out the relevant rows, starting from the back. If you want three choices, go through and comment out row four. If you want a single choice game, comment out rows 4, 3, and 2.

That's it. Really! This template uses a count of rows to decide endings, so all of that logic stuff should be handled automatically.

The reverse, adding turns, is what you probably expect: add rows to every table with an "index" column.

NOTE: keep your tables in sync, and leave blank, empty rows. Inform gets upset when it checks empty rows/fields. Don't panic, though, these errors are easy to catch and easy to fix. Just be aware.

but I want players to be able to do things like EXAMINE and TAKE.

That's all disabled, but you can enable it! The back half of this project is code dealing with Inform's built-in commands. While it isn't hard to reenable certain commands (just comment out what's there), be sure you want to add them to your testing protocol, especially if you're thinking about elaborate constructions like "take all from possibility space."

You can find more discussion in the comments for my "removing built-in commands "Disabling Inform 7 Commands" extension. You can find it here.

Disabling Inform 7 Commands by Drew Cook

I strongly encourage you to get something working with with this widget before experimenting with adding/enabling commands.

neat. what else could I do.

Some possibilities:

  • get rid of the header and fake final question stuff, and make a traditional linear narrative instead.
  • introduce more complex state tracking and use conditional texts or even complex "to say" definitions to make a more sophisticated choice game.
  • make a personality quiz.

what's next?

So far as this thing goes, I have a someone complicated major work based on this design. It is feature complete, and will be in Spring Thing 2025. Please look forward to it! I'm also working on a similar template people can use for linear stories. This template is a work in progress, so I will continue to revise it, especially if I get helpful suggestions or feedback from my fellow authors.

So far as my own IF stuff: I have some game criticism I need to post, and then we can get back to Marbles, D, and the Sinister Spotlight. That's right! D and Marbles, two characters the RTEverse, are back!

Files

story.ni (template for PWW) 79 kB
6 days ago

Get Lyric Storytelling Widget for Inform 7

Leave a comment

Log in with itch.io to leave a comment.