ASML Specs

ASML is copyright 2006-2013 Hartmut Koenitz all rights reserved – we are considering licensing options for broader adoption.

This is an ongoing effort to document the ASML format for describing interactive narratives. So far ASML is explained here by giving examples. We will further expand this documentation.

Top Level Entities

<settings />

<environment />

<chars />
<plot />

Settings

<settings>
<debug firstbeat=”0″ showvals=”off”/>
<colors pcolor=”0x7D8DA3″ palpha=”90″ nonpcolor=”0xCCCCCC” nonpalpha=”90″/>
<textbox radius=”10″/>
<hotspots visible=”on” labels=”on”/>
<fonts titleFont=”Gothic” textFont=”Handwriting2″ btnFont=”Handwriting2″/>
<copyright notice=”Copyright © 2009 Hartmut Koenitz All Rights Reserved”/>
</settings>

Environment

<environment>
<prop id=”3″ name=”sweets” fPath=”Sweets.png”/>
<prop id=”4″ name=”book” fPath=”Book.png”/>
<prop id=”5″ name=”gift” fPath=”Present.png”/>
<prop id=”6″ name=”axe” fPath=”Axe.png”/>
<prop id=”9″ name=”knife” fPath=”knife.png”/>
<node id=”1″ name=”titleNode” fPath=”Hut_ext.jpg”/>
<node id=”2″ name=”hutInterior” fPath=”Hut_interior_new.jpg”/>
<node id=”3″ name=”forest” fPath=”forest_complete.jpg”/>
<node id=”4″ name=”GrannyOutside” fPath=”Grannys_outdoors-1.jpg”/>
<node id=”5″ name=”GrannyInside” fPath=”Grannys_indoors-1.jpg”/>
<node id=”6″ name=”GrannyInsideDetail” fPath=”Grannys_indoors-detail.jpg”/>
<node id=”7″ name=”forestDetail” fPath=”forest_detail.jpg”/>
<node id=”8″ name=”wolfBelly” fPath=”Belly.jpg”/>
<node id=”0″ name=”GrannyInsideKitchen” fPath=”kitchen.jpg”/>
</environment>

Characters

<chars>

<char>
<id>0</id>
<name>Red</name>

<graphics>
<state kind=”default” fPath=”Redsm.png”/>
<state kind=”right” fPath=”RedSmR.png”/>
<state kind=”attacking” fPath=”LLRH_fightSM.png”/>
<state kind=”attackingAxe” fPath=”LLRH_fightAxe.png”/>
<state kind=”attackingR” fPath=”LLRH_fightSMR.png”/>
<state kind=”attackingAxeR” fPath=”LLRH_fightAxeR.png”/>
</graphics>
<charloc x=”200″ y=”400″/>
<role kind=”interactor”/>
<counter name=”friendly” val=”00″/>
<counter name=”adult” val=”00″/>
<counter name=”aggressive” val=”00″/>
<inventory item1=”matches”/>
</char>

<char>
<id>1</id>
<name>Wolf</name>

<graphics>
<state kind=”default” fPath=”Wolf-sideSM.png”/>
<state kind=”right” fPath=”Wolf-sideSMR.png”/>
<state kind=”attacking” fPath=”Wolf-frontSM.png”/>
<state kind=”asgran” fPath=”Wolf_gran.png”/>
<state kind=”asgranmad” fPath=”Wolf_mad_gran.png”/>
<state kind=”mad” fPath=”Wolf_mad1.png”/>
<state kind=”asgrandead” fPath=”Wolf_gran_dead.png”/>
<state kind=”maddead” fPath=”Wolf-mad-dead.png”/>
</graphics>
<charloc x=”500″ y=”400″/>
</char>

<char>
<id>2</id>
<name>Gran</name>

<graphics>
<state kind=”default” fPath=”Gran.png”/>
<state kind=”standing” fPath=”GranStandingSM.png”/>
</graphics>
</char>

<char>
<id>3</id>
<name>Mom</name>

<graphics>
<state kind=”default” fPath=”MomSM.png”/>
</graphics>
</char>

<char>
<id>4</id>
<name>Woodsman</name>

<graphics>
<state kind=”default” fPath=”WoodsmanSM.png”/>
<state kind=”gun” fPath=”WoodmanGunSM.png”/>
</graphics>
</char>
</chars>

Plot

<beat>
<id id=”0″ name=”Start”/>
<node>titleNode</node>

<locs>
<loc kind=”text” name=”button1″ x=”541″ y=”356″ width=”180″ height=”38.9″/>
<loc kind=”text” name=”author” x=”49″ y=”212″ width=”160″ height=”64.55″/>
<loc kind=”text” name=”title” x=”49″ y=”49″ width=”450″ height=”64.55″/>
</locs>
<defaulttarget targetBeat=”undefined” val=”0″/>

<function kind=”titleScreen”>
<title>Red’s Path through the woods</title>
<author>ASG</author>
<button>click to continue</button>
<target targetBeat=”1″/>
</function>
</beat>

<beat>
<id id=”1″ name=”Beat 1″/>
<node>titleNode</node>

<locs>
<loc kind=”text” name=”text” x=”49″ y=”51″ width=”690″ height=”129.25″/>
<loc kind=”text” name=”button1″ x=”560″ y=”345″ width=”175″ height=”129.25″/>
<loc kind=”char” name=”RED” state=”default” size=”90″ x=”320″ y=”250″/>
</locs>
<defaulttarget targetBeat=”undefined” val=”0″/>

<function kind=”introText”>

<intro>
Red lives a difficult life at the edge of the woods. She and her mother eke out a meager living selling hand-crafted pinatas on e-bay. Their craftsmanship is of unusual quality but under-appreciated by the majority of e-bay’s clientele.
</intro>
<button>click to continue</button>
<target targetBeat=”2″/>
</function>
</beat>

<beat>
<id id=”2″ name=”Beat 2″/>
<node>titleNode</node>

<locs>
<loc kind=”text” name=”text” x=”46″ y=”46″ width=”690″ height=”188.3″/>
<loc kind=”text” name=”button1″ x=”560″ y=”345″ width=”175″ height=”129.25″/>
<loc kind=”char” name=”RED” state=”default” size=”90″ x=”320″ y=”250″/>
</locs>
<defaulttarget targetBeat=”undefined” val=”0″/>

<function kind=”introText”>

<intro>
Red enjoys all her classes at the newly established progressive school. Red particularly enjoys Mz. Madden’s Health class. Mz. Madden delivers frank discussions on “anatomical gender difference” and “reproductive issues.” In the school library Red finds an illustrated version of Lady Chatterley’s Lovers. She isn’t impressed with the plot but several pictures piqued her curiosity. She brings the book home hoping to hear her mother’s explanation of the drawings.
</intro>
<button>click to continue</button>
<target targetBeat=”3″/>
</function>
</beat>

<beat>
<id id=”3″ name=”Beat 3″/>
<node>hutInterior</node>

<locs>
<loc kind=”text” name=”text” x=”81″ y=”73″ width=”310″ height=”129.25″/>
<loc kind=”text” name=”button1″ x=”465″ y=”131″ width=”310″ height=”129.25″/>
<loc kind=”char” name=”MOM” state=”default” size=”100″ x=”147″ y=”196″/>
<loc kind=”char” name=”RED” state=”right” size=”100″ x=”477″ y=”239″/>
</locs>
<defaulttarget targetBeat=”undefined” val=”0″/>

<function kind=”conversationChoice”>
<questioner>1</questioner>

<question>
Red, darling, you’ve made enough pinatas for today. You should visit your Grandmama. We’ll make her a nice basket
</question>
<delay>1500</delay>
<choice id=”1″ content=”Mother, before I go, I’d like to ask you some questions about I book I found in the library.” counter=”undefined,00″ targetBeat=”4″/>
</function>
</beat>

<beat>
<id id=”4″ name=”Beat 4″/>
<node>hutInterior</node>

<locs>
<loc kind=”text” name=”text” x=”49″ y=”41″ width=”690″ height=”188.3″/>
<loc kind=”text” name=”button1″ x=”529″ y=”418″ width=”175″ height=”129.25″/>
<loc kind=”char” name=”RED” state=”right” size=”100″ x=”477″ y=”239″/>
<loc kind=”char” name=”MOM” state=”default” size=”100″ x=”147″ y=”196″/>
</locs>
<defaulttarget targetBeat=”undefined” val=”0″/>

<function kind=”introText”>

<intro>
Red, darling, I was a perfectly dreadful student. Your Grandmama no doubt surpasses my skill.

Now remember, we need to stay in your Grandmama’s good graces. If you’re especially sweet, she may remember us in her will.

Now here’s the basket.
</intro>
<button>click to continue</button>
<target targetBeat=”5″/>
</function>
</beat>

<beat>
<id id=”5″ name=”Beat 5″/>
<node>hutInterior</node>

<locs>
<loc kind=”text” name=”text” x=”50″ y=”51″ width=”580″ height=”129.25″/>
<loc kind=”prop” name=”knife” size=”100″ x=”313″ y=”270″/>
<loc kind=”prop” name=”book” size=”100″ x=”565″ y=”319″/>
<loc kind=”prop” name=”sweets” size=”100″ x=”29″ y=”342″/>
</locs>
<defaulttarget targetBeat=”undefined” val=”0″/>

<function kind=”pickProp”>
<questioner>1</questioner>

<question>
And before kissing her mother goodbye, Red adds to her basket:
</question>
<choice id=”1″ loc=”sweets” desc=”Some pinata candy” counter=”friendly,02″ targetBeat=”6″/>
<choice id=”2″ loc=”knife” desc=”A knife” counter=”aggressive,02″ targetBeat=”6″/>
<choice id=”3″ loc=”book” desc=”Her illustrated Lady Chatterley’s Lover” counter=”adult,02″ targetBeat=”6″/>
</function>
</beat>

<beat>
<id id=”6″ name=”Beat 6″/>
<node>hutInterior</node>

<locs>
<loc kind=”text” name=”text” x=”41″ y=”94″ width=”690″ height=”129.25″/>
<loc kind=”char” name=”MOM” state=”default” size=”100″ x=”52″ y=”168″/>
<loc kind=”char” name=”RED” state=”right” size=”100″ x=”420″ y=”250″/>
</locs>

<function kind=”durScreen”>

<text>
Now Red. Get along. And don’t stray from the path. The woods can be dangerous for young girls.
</text>
<duration>5000</duration>
<target targetBeat=”7″/>
</function>
</beat>