Inform 7 Bootcamp Notes
Find slides at http://aramzs.me/7j
Find example at http://aramzs.me/7k
More examples at – http://iat.ubalt.edu/blodgett/TCG/
Inform 7 – entirely graphics free.
Natural language
Errors tab -> Problem button will tell you where things have gone wrong.
You can change the code as the came is running.
All you need to create a room is the room name.
[Room name] is [direction] of [room name]
Directions:
East
West
North
South
Up (above)
Down (below)
in
out
You can also declare something enterable (thing).
When dealing with directions ‘of’ can always be replaced by ‘from’.
You can declare a group a Region. – Group of rooms that are adjacent and share some attribute.
“There is a region called the cave. Everything in the cave is…”
Rooms can be lit or unlit. Unlit is completely dark, they need an inventory item to light it.
All objects are “thing” type and must be declared. If they are declared in a room they do not need to remain in that room.
You can create doors, which can be locked or unlocked. Doors do not have to be “Doors” they can be other things, like grates.
You can create something outside of a room (or without a room) and move it in later.
Using some will make the thing plural (a collection of multiple objects.)
No article causes it to treat the thing as a proper noun.
Properties that you can declare:
Portable
Fixed in place
Described
Undescribed (there is nothing interesting there)
Lit
Unlit
Wearable
Only listing ‘wearable’ assumes the opposite is ‘not wearable’
Properties are paired opposites
Kinds:
Supporter – something other things can be on top of
Enterable/not enterable
Container – thing that can enclose another thing
Enterable, open/closed, openable, transparent/opaque.
To make a new kind, just assert it exists
You assert that states exist for a property
You can use the always modifier.
Relationships
defines one way in which the rooms, things, or properties connect.
Identify types of connections that are fundamental to your story.
Use language to stipulate database relationships (one to one, one to many, etc…)
Verbs
Properties can be “verb-ed” – you must specify the conjugation of that verb.
Create conceptual relationships.
Description
You can say explicitly “The description is “…”
If you want to use quotes in there you’d have to use single quotes
Use chekhov’s gun (http://tvtropes.org/pmwiki/pmwiki.php/Main/ChekhovsGun) – objects should be useful.
Can use [apostrophe]word[apostrophe] to create apostrophes. Using [‘] also works.
Objects can exist in only one place at a time.
The Backdrop property allows you to declare an object that is similar to scenery but can exist in multiple rooms.
Conditions
Boolean states that adjectives have and which may change over time.
e.g.: A flashlight being turned on or off
You can create new adjectives by defining them.
You can create complex actions to allow for scripts to be played out at certain times (scenes)
There is an extensive user supported extension community to support complex actions, these extensions can be plugged into any I7 game.
File -> Install extension
Call with “Uses x extension”
Change the rulebooks: Before, Instead of, After
Properly scope your work!
Sadly: No advanced conditional statements/structures.
If you describe something make sure it is actually there.
Breaks and Tabs are important only when you are making rules. So:
Instead of taking a shower:
say “The cool water is refreshing and wakes you up.”;
stop the action.
Thus breaking the action.
Inform 7 – opens folders of projects.
[if closed] [otherwise] to define states (descriptions) of a thing when it is open or closed.
Something can exist but then no longer exist as in:
After opening the kitchen door:
say “Rhapsody runs out the door barking and happy to be outside.”;
now Rhapsody is not shadowing the player;
remove Rhapsody from play.
and bring it back into existence:
Instead of taking the kitchen door:
now Rhapsody is in The Kitchen;
now Rhapsody is shadowing the player.
For complex player events you can create invisible objects.
Skien and transcript tabs are fascinating tools for testing how your game works and visualizing the player path.
Find more IF at http://www.ifarchive.org/.
Source: https://docs.google.com/document/d/1YexrG5riG_4uJIx5I652iik5SZHbAqI4MsRNbgloAn0/edit