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.