GuideMe Scripting Engine

Webteases are great, but what if you're in the mood for a slightly more immersive experience? Chat about Tease AI and other offline tease software.

Moderator: 1885

Post Reply
User avatar
PlayfulGuy
Explorer At Heart
Explorer At Heart
Posts: 778
Joined: Sat Jul 07, 2012 10:08 pm
Gender: Male
Sexual Orientation: Bisexual/Bi-Curious
I am a: Switch
Dom/me(s): No domme
Sub/Slave(s): No sub
Location: British Columbia, Canada

GuideMe Scripting Engine

Post by PlayfulGuy »

Hi everyone!

The GuideMe Scripting Engine was inspired by this post by desertfox. This set of XML pages and Javascript routines implements most of the features desertfox discussed in his that post. In a nutshell, it allows you to write a Guideme tease in a simple script language. The page creation is handled automatically for you. It allows you to focus on writing your tease and making the best use of images etc, rather than learning all the complexities of Guideme. Don't be fooled by the simplicity of it though. It's surprisingly effective, and full of features, with even more planned.

The script engine requires Guideme 1.5 or higher

NOTE: Guideme versions 3.3 through 3.8 all have a bug that prevents proper saving of the tease state if you exit Guideme while a script is in progress. There is a workaround to this issue described in this post.

Latest release: Jan 7, 2018 Version 1.53 Download (63mb). See this post for notes. If you've already downloaded version 1.52 you can just grab the updated .js file from that post.
Dec 16/2017 Version 1.52 See here and here
Dec 10/2017 Version 1.51 See this post
Nov 12/2017 Version 1.5 See this post

Just unzip it to your Guides folder. It will place several files in the Guides folder and create a subfolder named "ScriptTeases" with the remaining files.

See file ScriptEngine-Readme.txt (found in the ScriptTeases folder) for a full list of commands and features.
Detailed information on the features and commands added in version 1.5 can be found in
ScriptTeases\Common\ScriptEngineChangeLog.txt
and in the tutorial scripts provided.

Also check the edit notes below for links to other posts in this thread that provide more details.

Next open Guideme and load GuidemeScripts.xml. You should see a screen like this:
ScriptEngine1.jpg
ScriptEngine1.jpg (85.34 KiB) Viewed 17469 times
For the full tutorial select Tutorial and click OK. This will give you brief tutorial of the features. Have a look at the script source in PG/Common/Scripts/Script Tutorial.scr to see how it works.

If you've used the ScriptEngine before start with New in v1.5.

There are now numerous sample teases and scripts included to help you discover what's possible with the script engine.

That's all you really need to get started, but more details are in the spoiler below:
Spoiler: show
Once you extract the GuidemeScriptEngine.zip file in your Guides folder You will find three new XML files, and a PG (PlayfulGuy) folder. The XML files are

DenialCardGame.xml
GuidemeScripts.xml
King vs Queen.xml
Reena's Edging Game.xml
SarasTease.xml
ScriptTease.xml
Stroke By The Cards.xml
Teas2Script.xml

In the ScriptTeases folder you will find welcome.jpg, a Scripts folder and a folder named Common.
Just put your scripts in the Scripts folder, load the GuidemeScripts tease in GuideMe, and your new scripts will appear in the list.

To create a standalone tease you use the ScriptTease.xml template. Have a look at SarasTease.xml for an example. The ScriptTease template includes the required files from the PG/Common folder. All you need to do is make a copy of ScriptTease.xml with a new name like MyAwesomeTease.xml, edit the line that specifies the script to be run. It looks like this:

Code: Select all

         // Load the script file        loadScript("Scripts/SarasTease.scr"); 
When you open your tease in GuideMe your script is loaded and executed automatically.
Please feel free to provide feedback, suggestions and praise, and to award me edges and/or orgasms in appreciation of my efforts :-D

Enjoy,

**EDITS**
Jan 6/2019 Updated links to other posts and reorganized this post a bit.
Dec 16/2017 Updated to version 1.52 to fix a bug introduced in 1.51.
Dec 10/2017 Updated to version 1.51 to fix a few bugs and add a few enhancements. See this post for notes.
Nov 12/2017 Uploaded version 1.5. Modified this post to better reflect the new version.
Feb 24/2016 Uploaded new version 1.4 files with bug reported by desertfox corrected.
Feb 20/2016 Uploaded version 1.4. Includes the If command, changes to the Audio command, and other features outlined in this post: <TBA>

Feb 10/2016 Upload version 1.3 with some bug fixes for supporting reloading a script.

Jan 25/2016 Uploaded version 1.2 which supports being reloaded in the middle of a script. This allows a user to close Guideme (or load a different tease) then reload the scripted tease later, and the tease will continue from where it was. This was required to support the random mazes being developed by DesertFox.

Nov 12/2015 Uploaded new version with basic expressions like "count = count + 1" and for videos. The link above should download the latest version (1.1)


PlayfulGuy
Last edited by PlayfulGuy on Sun Jan 06, 2019 5:14 pm, edited 14 times in total.
philo
Explorer At Heart
Explorer At Heart
Posts: 831
Joined: Sun Jan 08, 2012 3:10 pm
Gender: Male
Sexual Orientation: Straight
Location: UK

Re: GuideMe Scripting Engine

Post by philo »

Nice work!

If this takes off it will be worth building in support for .scr files directly into GuideMe (assuming you don't mind)
It is amazing how collaborative projects go off in unexpected directions.
desertfox
Explorer At Heart
Explorer At Heart
Posts: 365
Joined: Mon Dec 03, 2012 7:26 pm
Gender: Male
Sexual Orientation: Straight
I am a: None of the above

Re: GuideMe Scripting Engine

Post by desertfox »

Damn, awesome. Now I have no excuse not to write some sort of tease, you've forced my hand!

I therefore sentence you to playing your own example tease, except before you start open a browser here. When you are about to start the final edge sequence, alt tab out and ride edge all the way through the short video.
User avatar
PlayfulGuy
Explorer At Heart
Explorer At Heart
Posts: 778
Joined: Sat Jul 07, 2012 10:08 pm
Gender: Male
Sexual Orientation: Bisexual/Bi-Curious
I am a: Switch
Dom/me(s): No domme
Sub/Slave(s): No sub
Location: British Columbia, Canada

Re: GuideMe Scripting Engine

Post by PlayfulGuy »

desertfox wrote:Damn, awesome. Now I have no excuse not to write some sort of tease, you've forced my hand!

I therefore sentence you to playing your own example tease, except before you start open a browser here. When you are about to start the final edge sequence, alt tab out and ride edge all the way through the short video.
Dang! Didn't see that coming! :)

Can't wait to see what you write with it. Let me know what features you might like added. In the ScriptEngine.xml file you will find a list of planned enhancements that I came up with while developing this.
philo wrote:Nice work!

If this takes off it will be worth building in support for .scr files directly into GuideMe (assuming you don't mind)
It is amazing how collaborative projects go off in unexpected directions.
That was exactly my thinking 8-) .

PG
desertfox
Explorer At Heart
Explorer At Heart
Posts: 365
Joined: Mon Dec 03, 2012 7:26 pm
Gender: Male
Sexual Orientation: Straight
I am a: None of the above

Re: GuideMe Scripting Engine

Post by desertfox »

So I finally found some time to start something.

It's really god damn easy to write. Seriously. Really nice job here. I spent about an hour or so gathering an image set, reading through the tutorial, getting all the files in place, and then I was writing. Once I started writing, took about 15 minutes from cold to have a "skip intro, intro" branch in the beginning, then start writing about 20 "pages" (guideme pages) worth of short dialog, flipping between having a global continue button or taking it away and using timers to advance the pace.

Have to eject tonight but have everything in place to just create now, a few image sets and just have to fire up the imagination. (Don't get too excited though I am pretty vanilla as far as topics go).

Still wow, really awesome, I hope more people are able to check this out if they have given up on writing teases/guides due to tediousness.

One feature I thought would be useful off the top of my head would be a way to color dialog depending on the speaker. Not sure if possible to add another optional parameter for predefined colors, or just away to enable some sort of css as done normally (not quite sure how it is regularly done).

It's so easy to just bang out short sentences that it can get confusing between narration and a person talking to you without some colors.
User avatar
PlayfulGuy
Explorer At Heart
Explorer At Heart
Posts: 778
Joined: Sat Jul 07, 2012 10:08 pm
Gender: Male
Sexual Orientation: Bisexual/Bi-Curious
I am a: Switch
Dom/me(s): No domme
Sub/Slave(s): No sub
Location: British Columbia, Canada

Re: GuideMe Scripting Engine

Post by PlayfulGuy »

desertfox wrote:So I finally found some time to start something.

It's really god damn easy to write. Seriously. Really nice job here.

<snip>

One feature I thought would be useful off the top of my head would be a way to color dialog depending on the speaker. Not sure if possible to add another optional parameter for predefined colors, or just away to enable some sort of css as done normally (not quite sure how it is regularly done).

It's so easy to just bang out short sentences that it can get confusing between narration and a person talking to you without some colors.
Thanks. I'm very happy you like it, and that you're finding it as effective as I did. It really allows you to focus more on the details that make a tease great (writing, good use of pics, timing, etc).

And thanks for the "sentence" you gave me. It was carried out yesterday and I totally enjoyed it. That video clip is Very Hot! I wish it was longer :-).

As for adding colors I thought about that at one point myself so I'll add something.
I also thought about adding some for text size like <small></small>, <large></large>, <veryLarge></veryLarge>. What do you think?

Below are a couple thoughts I had about colors. Do you have any suggestions?

My initial thought would be shortcut tags like I did with <mySubName> for example, but that's kind of limiting. Using something like

Code: Select all

<red>this is red text</red>
is limited since you can't realistically code a shortcut for every color people might want.

Another thought (and my preference) is to add some default CSS to the ScriptTease and GuidemeScripts files, and then make some shortcut tags to those styles. For example, I could add styles named things like Instruct, Command or Narrate, and then in the text you include shortcut tags like

Code: Select all

 <Instruct>Start stroking now slave.</instruct><Narrate>As you start stroking and get warmed up the mistress goes to a cabinet at the other side of the room and takes something from a drawer</narrate>
Each segment would then be styled by the default CSS, which people could customize as they want for their tease. For something like <Narrate> I would automatically wrap the whole bit in paragraph tags to improve the layout.

Let me know your thoughts and suggestions and I'll start working on how to make it happen.

And by the way, I've already added an Audio command to have sounds played for a page, and am working on the gotoPage command to allow use of "regular" GuideMe pages coded elsewhere in the XML files (I need this for a project of my own and to support some additional features).

The Include command is next on my list.

Regards
desertfox
Explorer At Heart
Explorer At Heart
Posts: 365
Joined: Mon Dec 03, 2012 7:26 pm
Gender: Male
Sexual Orientation: Straight
I am a: None of the above

Re: GuideMe Scripting Engine

Post by desertfox »

I stumbled on that video a bit ago and was really upset there wasn't more, but might be so hot because there isn't anymore, hard to tell :)

Here is how ren'py does dialog/colors right out of their docs:

Code: Select all

define s = Character('Sylvie', color="#c8ffc8")
define m = Character('Me', color="#c8c8ff")

label start:
    "I'll ask her..."

    m "Um... will you..."
    m "Will you be my artist for a visual novel?"

    "Silence."
    "She is shocked, and then..."

    s "Sure, but what is a \"visual novel?\""
So they give a name and color for a character, then tag each line with whom is speaking. So maybe a combination of both ideas, default sets defined with some css.

So somewhere in the beginning maybe some function call
add_char('s', 'sarah', 'ffffff')

Then later down change the parser for

picture, <delay>, <metronome>, <charcode>,text

That might not be as versatile as the spans since you couldn't mix text styles, but its always nice to really cut down character length. Maybe its possible to have it available as a <shortcut> and as the character codes. The benefit of the character codes is you could even put in the person's name like "Sarah<br><br><text>"

Of course this might be getting to rigid over all, though I can see writing long dialog using spans might be a touch annoying, even with an editor that will fill out the close tags for you automatically after you type </ like sublime.



While I'm at it, was thinking if there was a way to access vars like in guideme, but might be that is starting to step too far on what is already in place and to break out into standard pages for those kind of options, and leave the scripting engine for branching tease sequences, then pushed out to a regular page for stat accumulation. Not sure since I already forgot what I learned about writing guides.
User avatar
PlayfulGuy
Explorer At Heart
Explorer At Heart
Posts: 778
Joined: Sat Jul 07, 2012 10:08 pm
Gender: Male
Sexual Orientation: Bisexual/Bi-Curious
I am a: Switch
Dom/me(s): No domme
Sub/Slave(s): No sub
Location: British Columbia, Canada

Re: GuideMe Scripting Engine

Post by PlayfulGuy »

@desertfox:

Interesting... I have been giving it further thought and came to the same conclusion about all that tag typing. I came up with two ideas that dovetail nicely with yours. One is to shorten the tag structure like <red this is red text>, and this is <strong strong text>.
To support multiline text I thought about the following syntax (because this is how it's done in javascript and I finally noticed it staring me right in the face)

Code: Select all

            Button Continue
            image01.jpg, delay, metronome, {
              Start stroking <mySubName>.<br>
              As you start stroking Mistress Sylvie goes to a cabinet at 
              the far side of the room and takes something from a drawer
            }
If we combine that with your idea we get something like

Code: Select all

define Sylv = Character('Sylvie', color="#c8ffc8")
define Me = Character('Me', color="#c8c8ff")

start:
    Button What's that Mistress?
    image01.jpg, delay, metronome, {
      Sylv Start stroking <mySubName>.

      As you start stroking Mistress Sylvie goes to a cabinet at 
      the far side of the room and takes something from a drawer.
      
      You ask hesitantly...
    }
The defined names can be one or more characters. Doesn't matter to me.

There are some issues with this approach, but I get annoyed having to put everything in quotes which is why I like to leave them out, but it does make it a bit easier to parse. Another issue I can think of right away is how the above gets layed out?
How do we distinguish lines that are meant to stay separate from ones that can be merged into one line?
Probably the simplest is to assume we keep the layout as given and each line in the input (including blank ones) remain a separate line on the final page.

What do you think of all that?

Also, you said
desertfox wrote:While I'm at it, was thinking if there was a way to access vars like in guideme
I plan to add simple variable and flag support, and support for simple expressions. As it is now you can refer to script variables defined in "regular" guideme pages using the <span>variableName</span> syntax, but you can't yet create or modify them.

Eventually (and that won't be too far off) I would add these basics:

Code: Select all

set flag1,flag2,...
unset flag1,flag2,...
ifSet flag1 command (where command can be almost any valid script command)
ifNotSet flag1 command

myVar = value
myVar = myVar + 1  // and myVar = myVar - 1 etc.
Beyond that I think you're right and it's getting to where you should just shift to a regular guideme page and do your thing there.

I want to make this as flexible as possible while keeping it simple, with the goal of making advanced tease writing accessible to more people, and make it possible for people to collaborate on teases. For example, you could script a lot of pages for a tease, while I work on Guideme pages and javascript to handle stats, game mechanics, etc.

And don't forget that all of this is helping me out on another project of my own, so don't hesitate to ask for more than you think is reasonable. Sometimes it turns out to be far easier to code something than you expect, and even if it's difficult to code it, well, I only have to code it once, then you and I and everyone else gets the benefit of that for a long time. That's a win in my book.

PG
desertfox
Explorer At Heart
Explorer At Heart
Posts: 365
Joined: Mon Dec 03, 2012 7:26 pm
Gender: Male
Sexual Orientation: Straight
I am a: None of the above

Re: GuideMe Scripting Engine

Post by desertfox »

Hrmm, started copying the renpy way of doing things, but they seem to have a different style of format. Guideme flips pages every time something happens, while I think renpy flips elements on a single page. So you'd have a page composed of a background image, one or more character images, and a text box that drives with it. In the code you do 'show Sylvie happy.jpg and it would flip the character image.

Basically you get

Code: Select all

define sylvie Character( s, "#445554)
define me ...

background background1.jpg
show Sylv sylv_happy.jpg
s "I'm super happy right now!"
m "Great..."
background thunderstorm.jpg
show Sylv sylv sad.jpg
s "I'm sad, boo hoo"
I guess to do something like that here you'd have to stay on one page and use java script to control everything, which gets you rewriting guideme essentially and is somewhat pointless. It doesn't 100% work with how a tease needs to flow either, but for doing dialog and characters is appealing.

So I was able to write a bit more last night and was able to get a really good flow using what was in place already, just sticking to using one line of dialog each page with a global continue button, or using local buttons for things you say or choose. It flowed really nice without quotation marks or brackets around everything.

So this:

Code: Select all

define Sylv = Character('Sylvie', color="#c8ffc8")
define Me = Character('Me', color="#c8c8ff")

start:
    Button What's that Mistress?
    image01.jpg, delay, metronome, {
      Sylv Start stroking <mySubName>.

      As you start stroking Mistress Sylvie goes to a cabinet at 
      the far side of the room and takes something from a drawer.
      
      You ask hesitantly...
    }
I'd have written as:

Code: Select all

define Sylv = Character('Sylvie', color="#c8ffc8")
define Me = Character('Me', color="#c8c8ff")

Button Stroking
image01.jpg, Sylv, Start Stroking <mySubName>.
",20,60, As you start stroking Mistress Sylvie goes into a cabinet at the far side of the room and takes something from a drawer.

metronome 0
Button What's that Mistress?
",You ask hesitantly...
So maybe that is just a style choice. It might be harder to craft things the way you have without the multiline thing, one way gives more freedom than the other but takes a touch more typing too.

Might be able to leave both ways in? When you split on the line and start parsing a text area, if it starts with the { launch into the line by line text parsing, otherwise use the standard text parsing? I think my worry here is it starts to look close to the page elements in a guideme, and you might start to lose the free flowing authorship somewhat.

Also don't know if I said it but the <mySubName> was how I was accidentally writing things before I realized it had to be surrounded by the spans, so I really like that replacement style a lot. Less typing the better!

Let me for a second go back and reread how the 80 days dudes do it, their day job is composing thousands of lines and trying to hide their code as much as possible so they have to have some well thought out ideas in there that are worth stealing :)

I am thinking that with variables what would make sense in the framework of the scripting engine is to access variables in specific ways rather than general ways. Guideme already lets you do that, so the trick would be to wrap variable access in the script engine be done in a time saving way rather than reinventing what is already there.

Going to start another post with more rambling about that a sec (might have to bail on the PC in a moment)
desertfox
Explorer At Heart
Explorer At Heart
Posts: 365
Joined: Mon Dec 03, 2012 7:26 pm
Gender: Male
Sexual Orientation: Straight
I am a: None of the above

Re: GuideMe Scripting Engine

Post by desertfox »

Ok I suck have to head out, but I think you should totally watch this GDC talk:

http://www.gdcvault.com/play/1021774/Ad ... ovating-in

When he gets about midway and starts showing screen shots and explaining how they do their parser take a pause and look at their syntax. I think it nails a good combination of parse-ability and authorship and might send your brain spinning with some ideas.
User avatar
PlayfulGuy
Explorer At Heart
Explorer At Heart
Posts: 778
Joined: Sat Jul 07, 2012 10:08 pm
Gender: Male
Sexual Orientation: Bisexual/Bi-Curious
I am a: Switch
Dom/me(s): No domme
Sub/Slave(s): No sub
Location: British Columbia, Canada

Re: GuideMe Scripting Engine

Post by PlayfulGuy »

desertfox wrote:Ok I suck have to head out, but I think you should totally watch this GDC talk:

http://www.gdcvault.com/play/1021774/Ad ... ovating-in

When he gets about midway and starts showing screen shots and explaining how they do their parser take a pause and look at their syntax. I think it nails a good combination of parse-ability and authorship and might send your brain spinning with some ideas.
I finally got around to watching this and it does give me some good ideas. I'll let it simmer and see what comes out. I like how it kind of keeps a page format, and how it keeps the buttons/options within the page instead of having to precede the page definition the way I have it now.

In the meantime I have been playing with the code base and added a bunch of features (set, unset, conditionals and more) and will be posting a new version shortly, unless this throws me off in a really different direction.

Have you had a chance to play with it any further? Any more ideas or feedback you want to throw out?

PG
desertfox
Explorer At Heart
Explorer At Heart
Posts: 365
Joined: Mon Dec 03, 2012 7:26 pm
Gender: Male
Sexual Orientation: Straight
I am a: None of the above

Re: GuideMe Scripting Engine

Post by desertfox »

Actually yes! Have been slowly hacking away at something (SLOOOWLLY) and really is flowing nicely though. It really is a pleasure to just write, though I haven't done a lot of branching yet and have been really linear.

But basically I have the image dir open in one tab and the text editor in the other and just flip around the pictures to see what is coming next and copy/paste the image title in when flipping and I'm able to just write stuff with no hassle.

Let me think of any areas I've thrown myself off.

1. Debugging - since you are jumping around your tease with the script its hard to jump to a particular place in time after you have changed the script. I found I had to often click through a lot of pages to return to the spot of the fix.

I was working around by this using a goto button right at the start of the tease. This had some issues such as needing to set anything that had been set previously. For example:

Code: Select all

Start:
Button jump, To the Jump!
imgDir myfiles/girl2
img01.jpg,  Whats up!

jump:
img02.jpg, Oh no!
and you click the to the jump button, you would get a blank screen because the imgDir instruction hadn't been parsed. Also things like metronome state would continue from wherever you jumped from etc.

This was easy to work around by basically creating a debug block and copy pasting it as I worked down through sections.

So at the top

Code: Select all

Button debug, debug
then later

Code: Select all

debug:
Metronome 0
imgDir myfiles/girl2
timerStyle hidden
I'd just keep updating the stuff under debug to reflect whatever is supposed to be the state where I 'debug jumpped'. Also of note is that I have to try my stuff out a lot in guideme because I haven't written a tease before and I'm not quite sure how fast say a 60 metronome is vs a 30, or payed attention if it takes 3 seconds or 5 seconds to read a line of dialog, or even if 15 seconds is too long to be looking at a picture.

Once I knew more of this in my head I could easily debug a lot of it by just reading the text values back over.

2. Using commas in the wrong place. For a bit I was using buttons as dialog responses, and I put some comma's in the button name, which parsed out wrong.

Code: Select all

Button to_the_end But, why go to the end? 
would parse out wrong. Very easy to fix by just using ... in place of the comma and gets the point across. Possibly maybe use an escape comma? /, Might be a pita...could you use the html commas? I forget how they go, kinda like %22 for url spaces?

Was thinking about how I probably need to break up my scenes from one giant text file to multiple .src files. I think it can handle that as is, but didn't look into doing that yet and am still stream of conscious writing at it when I have time.

Other than that it's coming along nicely, I haven't written so much it would be a PITA to update to whatever the next release is and I really like authoring with the 'engine' so far, I don't feel like boilerplate code is getting in the way and the only slow down is my authorship and writing blocks.

Anybody else wanting to try this out, it really is pretty damn easy to make a tease that flips pages often and has short lines of dialog on each page and is worth a look if you found guides /teases having too much overhead.
philo
Explorer At Heart
Explorer At Heart
Posts: 831
Joined: Sun Jan 08, 2012 3:10 pm
Gender: Male
Sexual Orientation: Straight
Location: UK

Re: GuideMe Scripting Engine

Post by philo »

The next version of guideme has the ability to change images and text on the page based on timers, so it will make the engine a lot easier to write.

longer term I want to write a .scr parser that would load .scr files.
my current plan is to try to convert the scr lines to guideme pages on the fly.
this should make debugging scr scripts a lot easier.

I am also thinking of adding an scr node to the guideme xml so scr scripts can be mixed with more complex xml pages giving the best of both worlds.

priority at the moment is testing the next release, after that it will be looking at having the whole window as a single html page and converting all the java controls to html, that way the author can over ride everything on the screen.
after that I will probably look at incorporating scr.
desertfox
Explorer At Heart
Explorer At Heart
Posts: 365
Joined: Mon Dec 03, 2012 7:26 pm
Gender: Male
Sexual Orientation: Straight
I am a: None of the above

Re: GuideMe Scripting Engine

Post by desertfox »

Sweet baby jesus, sounds awesome.
User avatar
PlayfulGuy
Explorer At Heart
Explorer At Heart
Posts: 778
Joined: Sat Jul 07, 2012 10:08 pm
Gender: Male
Sexual Orientation: Bisexual/Bi-Curious
I am a: Switch
Dom/me(s): No domme
Sub/Slave(s): No sub
Location: British Columbia, Canada

Re: GuideMe Scripting Engine

Post by PlayfulGuy »

Wow!. you've covered a lot of ground there. I'll reply to bits and pieces, then give you something new to ponder.
desertfox wrote: ... I haven't done a lot of branching yet and have been really linear.

But basically I have the image dir open in one tab and the text editor in the other and just flip around the pictures to see what is coming next and copy/paste the image title in when flipping and I'm able to just write stuff with no hassle.
Excellent. Just the way we wanted it to work, and I'm glad you haven't gotten too much into branching because I've made some significant changes and additions to the branching capabilities.
desertfox wrote: Let me think of any areas I've thrown myself off.

1. Debugging - since you are jumping around your tease with the script its hard to jump to a particular place in time after you have changed the script. I found I had to often click through a lot of pages to return to the spot of the fix.

I was working around by this using a goto button right at the start of the tease. This had some issues such as needing to set anything that had been set previously. For example:
Yeah, welcome to the world of coding/testing/debugging. Your solution to the problem is right on the money though.
Hopefully with a few tweaks to the design of the scripting commands and markup we can "hide" as much coding as possible and make it even easier.
desertfox wrote: Once I knew more of this in my head I could easily debug a lot of it by just reading the text values back over.
Exactly. As you get used to the tool it should get a lot easier. One of the comments the guy in that video made was that with their markup method it was really easy to modify the dialog and flow and that it was simple enough you didn't even need to test most changes, they would just work. Hopefully we can get close to that.

That's a huge part of what makes this so useful. You spend more time on the quality of the finished product, fine-tuning transitions, using the best pictures, making the writing great etc.
desertfox wrote: 2. Using commas in the wrong place. For a bit I was using buttons as dialog responses, and I put some comma's in the button name, which parsed out wrong.
Hmmmmm. I didn't think of allowing a comma in the button text. That's actually an (invalid) assumption in my code more than something you did wrong. My assumption was that there would only be two arguments delimited by commas.

There are a couple ways to fix that. I could use a different delimiter like a vertical bar (|) or the --> used by the authors in that video you posted. We can even just eliminate the delimiter and assume that the target is the first word following button, and everything else is button text.

Code: Select all

Button to_the_end | But, why go to the end?
Button ThisIsTheTarget But, everything else is button text
The downside to the second option is that it's not quite as clear visually that ThisIsTheTarget is the target label.

And unfortunately I've broken this even more in the new version. I've reversed the order of Button and GlobalButton arguments so instead of "Button target, label" we now have "Button label, target". There were a couple reasons for this but mainly it just seemed more natural to me. It's a simple matter to change it back if we decide it's better the original way, but this also fits very well with the syntax used in the video.

Code: Select all

button But, why go back?  --> MainEntrance

I've no problem at all using their ideas. They've already put a lot of thought into it.
desertfox wrote: Was thinking about how I probably need to break up my scenes from one giant text file to multiple .src files. I think it can handle that as is, but didn't look into doing that yet and am still stream of conscious writing at it when I have time.
In the new version I've added an "Include" command so that you can do exactly that. The Include command along with some of the other additions makes that kind of splitting super useful, and you can easily reuse parts of a tease in future teases.
desertfox wrote: Other than that it's coming along nicely, I haven't written so much it would be a PITA to update to whatever the next release is and I really like authoring with the 'engine' so far, I don't feel like boilerplate code is getting in the way and the only slow down is my authorship and writing blocks.
Fantastic. I'm really happy to hear that. I love it when a plan comes together :-D but also because you will need to change some things so I'm glad you're such a willing tester.

So, things to ponder:
  • Should we use a delimiter other than comma for script elements, and where should we use something different? Comma is just so ingrained that I used it without thinking about it really. There's no reason we can't use something else.
  • Referring to the discussion above how would You like to see buttons implemented? I'm actually already planning on implementing * as a short form of Button and probably ** as a short form for GlobalButton.
  • I'm also giving serious thought to making the page definition more along the lines of what they present in the video you posted. (I started going on about that here but it's gotten too long so I'm moving that discussion to a separate post)

    Code: Select all

    - image.jpg, delay, metronome, page text here is optional    // The "dash" at the beginning of the line marks the start of a new page definition
    m Welcome slave. You are about to enter the house of coding horror.
    s Um. I don't think I really want to do that
    button button1, target1
    button button2, target2
    Audio someAudioFile.mp3
    
I've finished all of the code updates for the next release, which I'm calling version 1.0 just for purposes of keeping track. I just need to finish off the tutorial script to demonstrate everything.
More coming very soon.

PG
Post Reply

Who is online

Users browsing this forum: cbtsubik and 28 guests