Moriarty "Advanced AIF Hints for Adrift Authors"
Wednesday, September 25, 2002 11:37
If you're thinking of writing your first AIF game and thinking about doing
it in Adrift, I've got some hints for you after you've become accustomed to
the general setup of the program:
1) The ALR is your best friend. That evil acronym just means a text file
where things on the left translate to things on the right divided by a |
symbol. I recommend grabbing a copy of notetab light:
http://www.notetab.com/ to work with your ALR files. An example ALR entry
looks like this:
LookAtBob|Bob is so cute!
Then ANYWHERE I insert the phrase LookAtBob into Adrift it puts in the
text "Bob is So Cute!"
What is on the left and on the right of the | is completely arbitrary.
I just happened to use the phrase LookAtBob. I could have used anything.
The immediate advantages of using an ALR are... I can copy my entire ALR
and paste it into a Word document for spell checking. I can look at my
entire ALR file outside of Adrift so I don't have to click on things to
check each instance of everything. In fact I can almost write every
descriptive aspect of my game in the ALR before I "program it" in Adrift.
General organization. I can come up with my own naming convention I'm happy
with that suits my purpose. You can even add comments to the ALR using the
# symbol.
Here's a bit of real ALR text from the game I'm working on so you can see
what it really looks like and some of its uses. Note the # symbol is just
used to comment and the text inside the # # is ignored:
#Ask Fontine about Bethany#
FontineQueryBethany|Fontine sighs, "She's a bit brainy. Magic isn't all
about getting the technicalities right every time. There's got to be
feeling and wonderment there." She pauses. "Though I think that deep down
Bethany has a passion not yet realized." she smiles at you. "Yes,
perhaps."
#Ask Fontine about Magic#
FontineQueryMagic|Fontine goes wide eyed with exuberance at the question.
"Yes my dear apprentice, magic!" and with that she crosses her hands across
her chest, speaks a word of power, and throws her hands outward as swirls of
rainbow colors escape her hand. You feel as if watching a theatricle
performance with the flourish she shows for the act. Refocusing on you as
her student she asks, "Speaking of, how is your current array of spells?
The task ahead of you will require your top performance which requires a top
book" she nods knowingly.
2. Learn the Adrift language syntax. I shelled out for Adrift 4 so I can't
comment on previous versions if they have this feature, but you can skip a
lot of "guess the verb" action by carefully using the language syntax.
Here's an AIFer's example from the game I'm working on:
[remove/take/strip] {Bethany's} {lacy} {aqua} [bra]
if I use that for my task all the following works (and more) works just
fine:
remove bra
strip bra
remove Bethany's bra
take Bethany's lacy aqua bra
take aqua bra
remove lacy bra
It's really easy! Things inside the [ ] characters MUST be in the text the
player types. Things inside the { } characters CAN be in the text the
player types. Things separated by the / character means a "choice of one".
3. If you use a verb a whole lot, especially for sexual acts, consider
setting up synonyms (another Adrift option) instead of using wildcards.
AIF example in my game. I set the following synonyms:
rub - feel
rub - fondle
rub - caress
rub - squeeze
So anywhere I use the verb "rub" when writing my game, the player could use
any of the verbs caress, fondle, feel, or squeeze instead.
Now this can lead to some strange things in allowing "over verbage" such as
"squeeze magic lamp". But I think that's a better sin than "guess the verb"
4. Variables are also your best friend.
I'm using variables for the AIF like feature of noting different variations
on theme of undress and many many (did I say many?) other things. Here's my
Bethany progress states and the variable is named "BethanyState" that tracks
your progress with Bethany and generally what's happening with Bethany. I
picked the following states:
BethanyState = 0 = notta, you're nowhere, she don't want you yet and she's
clothed, and she's got a dilemma that needs to be solved
BethanyState = 1 = you've been good and solved her dilemma, and by AIF logic
she wants you to ravage her, but she's still clothed
BethanyState = 2 = she's unclothed but wearing bra and panties
BethanyState = 3 = she's topless and wearing panties
BethanyState = 4 = she's in the buff
BethanyState = 5 = action's over, she's gone or in an inaccessible state for
romance (note here we could have a "Second round" of actions starting on
some new surface like the bed, the floor, etc)
What's absolutely wonderful about this is on a task completed, you can
advance or set a variable to a specific value. so.. undress her.. set to 2
remove the top, set to 3, etc. Also, for certain actions that only make
sense in certain stages of undress, you can set a restriction such as the
variable BethanyState must be greater than 3
What's the best though is using variables with the ALR you can make things
dynamic, for example, examining Bethany's rump (and all sorts of other
things based on Bethany's level of clothing):
For the task examine Bethany's rump or (learn that language parser!)...
[x/look/examine] {Bethany's} [ass/butt/backside/rump]
for example I set the "message upon completion" to (drumroll) :
BethanyExamineRump%BethanyState% and make the task repeatable.
Follow me one more step here.. in my ALR file I can now do this:
BethanyExamineRump0|Clothed description here
BethanyExamineRump1|Clothed description here
BethanyExamineRump2|Undergarment Description
BethanyExamineRump3|Undergarment Description
BethanyExamineRump4|In the buff description
Dynamics rarely seen in Adrift! Here's another example of using variables
with the ALR with real text (from my game):
#Room descriptions#
BethRoomDescriptCore|This is the room of one of your dormmate's, Bethany.
Bethany was lucky enough to get a single which means she doesn't have to
share her room with a roommate like you do. Her room is rather bare, with
virtually no furnishings. A bed covered in black satin sheets is positioned
up against a corner of the room and a dark mahogany desk sits opposite the
bed facing a curtained drawn arched window. The room is dominated by a huge
wooden bookshelf along the south wall filled with various volumes on the
arcane arts. Bethany's walk in closet lies to the east and the doorway back
to the Upper Dorm Hallway lies North.
BethRoomDescript0|
The spray of colors from the outside hall trails
into the room and comes to a singularity on the bed. You surmize that
Bethany must be the one responsible for the current state of affairs in the
dorm hallway. It's comical to see Bethany's room covered in shades of neon
greens, purples, and yellows since she's usually such a bookworm and a
little on the boring side.
Bethany is here sobbing quietly in the
corner of the room on her bed, oblivious to your presence.
BethRoomDescript1|
From your recent actions the colors are gone and
the room has returned to its normal drabness.
Bethany sits casually
on the bed, swaying her feet. She looks at you with a smile of appreciation
and sheepish thanks.
BethRoomDescript2|
From your recent actions the colors are gone and
the room has returned to its normal drabness. Bethany is here
wearing...(well I can't give my entire game away now can I!)
So I have a "core" room description and then a "what's going on" part of it
that uses a variable to determine what else to say about the room. So if my
BethanyState variable is 0, I get the RoomDescript0. But If My BethanyState
variable is 1, I get descrption 1. My actual room description text in
Adrift is just:
BethRoomDescriptCore BethRoomDescript%BethanyState%
So if BethanyState is 0 (player has done nothing) the player sees this:
This is the room of one of your dormmate's, Bethany. Bethany was lucky
enough to get a single which means she doesn't have to share her room with a
roommate like you do. Her room is rather bare, with virtually no
furnishings. A bed covered in black satin sheets is positioned up against a
corner of the room and a dark mahogany desk sits opposite the bed facing a
curtained drawn arched window. The room is dominated by a huge wooden
bookshelf along the south wall filled with various volumes on the arcane
arts. Bethany's walk in closet lies to the east and the doorway back to the
Upper Dorm Hallway lies North.
The spray of colors from the outside hall trails into the room and comes to
a singularity on the bed. You surmize that Bethany must be the one
responsible for the current state of affairs in the dorm hallway. It's
comical to see Bethany's room covered in shades of neon greens, purples, and
yellows since she's usually such a bookworm and a little on the boring side.
Bethany is here sobbing quietly in the corner of the room on her bed,
oblivious to your presence.
BUT if the Bethany State is 1 (player has solved her problems), the player
sees this:
This is the room of one of your dormmate's, Bethany. Bethany was lucky
enough to get a single which means she doesn't have to share her room with a
roommate like you do. Her room is rather bare, with virtually no
furnishings. A bed covered in black satin sheets is positioned up against a
corner of the room and a dark mahogany desk sits opposite the bed facing a
curtained drawn arched window. The room is dominated by a huge wooden
bookshelf along the south wall filled with various volumes on the arcane
arts. Bethany's walk in closet lies to the east and the doorway back to the
Upper Dorm Hallway lies North.
From your recent actions the colors are gone and the room has returned to
its normal drabness.
Bethany sits casually on the bed, swaying her feet. She looks at you with a
smile of appreciation and sheepish thanks.
etc.
Adrift interprets these from the ALR depending on the Bethany state!
lots of fun, and I think using the above can add a lot to your games.