Author Topic: Flashback Fugue  (Read 408 times)

Legacy_Rolo Kipp

  • Hero Member
  • *****
  • Posts: 4349
  • Karma: +0/-0
Flashback Fugue
« on: January 02, 2012, 03:38:10 pm »


                <opening a mostly empty tome...>

Following on the interesting stuff Henesua is doing with AID and a little time spent in Arbor Falls recently (I like the new character area, but think it is under used), I was <once again> reminded of some stuff I have on a back burner. Specifically, I plan for new PCs (lvl 1, 0 xp) to be redirected to a context (race/class) sensitive flashback fugue with one of the worlds recurring NPC/DMs.

During this flashback the PCs establishment within the world and society of Amethyst will be established, his home base area created, his sponsoring/mentoring/supporting/opposing NPCs created, and certain obligations/privileges assigned.

To this purpose I will not only be using some rather involved dialogue (and some character generation tables from Runequest, Arduin Grimiores, Chivalry & Sorcery, Swordbearer (*anyone* remember that? Great elemental/spirit magic system, IMO), etc.), but I will also be asking the PC to tell me certain things like the name of their parents/siblings/childhood sweetheart/rival/pet basilisk, whatever ;-).

What, in your learned opinions, are the best text parsers on the vault for NwN?

<...while the Rondeau from "Symphonies and Fanfares for the King's Supper" plays softly>
               
               

               


                     Modifié par Rolo Kipp, 02 janvier 2012 - 03:40 .
                     
                  


            

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0
Flashback Fugue
« Reply #1 on: January 02, 2012, 04:50:24 pm »


                Rolo - please excuse my minor distraction here...
(1) I have also been looking into setting up character background in Arnheim, but not implemented a player driven system due to the complexity. Instead I have a scripted a decision tree that looks at race, class, skills, feats, and deity - and then makes assumptions about the character based on that information. The advantage of this (other than allowing me to put off my player adjusted background dialog) is that it enables players who just want to jump into game to skip the player start area, and have a generic background suitable to the choices the made at character creation. I imagine it will also form a starting point for a player defined background. You might want to consider such a pre-processing system for character background.
(2) Your idea of a flashback is cool. But I wonder if that is the right approach for the type of module you are making. Most of what I have read from you so far has been about macro level stuff - ecology, populations, dynamically generated outdoor areas - which suggests to me a broad scoped PW style module. If this is indeed an open ended module, I would like to caution you about the difficulty of scripting "story" into it. Typically PW's manage "story" with lots of DM intervention and maybe a rough script framework. To do it all by scripting is in my view a daunting task. Admittedly I am in the camp that "story versus sandbox" is a false dialectic, but given the amount of work it takes to integrate both I think it worth a word of caution. That said I have seen some games which successfully fake a narrative structure over an open ended game - EchoBazaar comes to mind, and they were inspired by an older game which was kinda "RuneQuesty" but forgot the name of.
               
               

               
            

Legacy_wyldhunt1

  • Sr. Member
  • ****
  • Posts: 443
  • Karma: +0/-0
Flashback Fugue
« Reply #2 on: January 02, 2012, 05:56:35 pm »


               Not a text parser, per se, but you may want to take a look at the array functions in the Legacy NWN system. They are designed to help track large lists of variables.
They are designed more for TRUE/FALSE checks. IE Does "Pet_Basilisk" exist in the "Pets" array?
But you can also grab specific elements.
they are located in the lgcy_inc_global script.
               
               

               


                     Modifié par wyldhunt1, 02 janvier 2012 - 06:00 .
                     
                  


            

Legacy_Rolo Kipp

  • Hero Member
  • *****
  • Posts: 4349
  • Karma: +0/-0
Flashback Fugue
« Reply #3 on: January 02, 2012, 06:25:41 pm »


               <placing his rook...>

henesua wrote...
 Rolo - please excuse my minor distraction here...

Anytime :-) I am not quite so persnickety about OP OT and such as some people <that's not to say he isn't persnickety in general...>

Usually when a topic *forks* as opposed to being de-railed, I learn things :-)

So distract me :-)

(1) I have also been looking into setting up character background in Arnheim, but not implemented a player driven system due to the complexity. Instead I have a scripted a decision tree that looks at race, class, skills, feats, and deity - and then makes assumptions about the character based on that information.
...
You might want to consider such a pre-processing system for character background.

Yes and no :-) That is, there is a certain amount of pre-processing that will occur just in choosing which "Mentor" to send the new character to and certain setup considerations that fall in line there.  The extra levels of detail will be optional (and I will try to collect some sort of metrics on how popular).

That said, there are actually three completely different "New Character" scenarios I'm looking at:
1) New PC, First character in bloodline - This is where the deep backstory would trigger.
2) New PC, Heir to existing bloodline - Abbreviated backstory.
3) Imported "World Walker" character - Flashback would be completely optional, but providing a good backstory would ameliorate some of the nerfs Worldwalkers will face.

(2) Your idea of a flashback is cool. But I wonder if that is the right approach for the type of module you are making...
...a broad scoped PW style module.
...

Hah! And this is the very subject that I was so very passionate about when I *coined* the term "Persistent Core" (now Persistent World) and "Event Mod" and created the Neverwinter Nexus in 2000. (miss my old chums).

We have the ability to connect and interconnect modules and servers.  For those who just want to bum around in a PW, fine. Do  that. Want to jump into a story? Load the module *from the persistent core* - keeping the PC validation and continuity. Return at any time to the PersCore. Return back to the story when you have a better feeling for it. 

The Persistent Core is the 24/7 (or whenever you can manage it ;-P ) module that provides foundation for the the rest.
The Event mods are the DM run *adjuncts* to the PersCore.
Further, Modules were from the start primarily designed to act something in the manner of *chapters* in a story. So, PersCore, Events (DM'd) and Story (Setup, advancement, finale) modules.

As an example, the Forester mod (which will, eventually, be my first Amethyst mod) will be set in the Hearthwood region of the Walking Woods region of the Western Demesne region of the Continent of Man region of the World of Amethyst. Each layer of the glass onion is a possible PersCore module, but the Forester mod will be a Story module (not much story, but some) that sets up the advancement paths and milestones for the PCs who play it. The geography and content introduced in Forester will become available to the Walking Woods region independent of the story elements in Forester. The story elements of Forester will persist in other compatible modules, but only for PCs that have walked that path.

Edit: Said another way, the Forester Mod puts in place the story elements *for this story arc*, and the other content it provides enrich the PersCore and any event mods run off them. Hmmm, mods as meta-hak-paks?

The Amethyst Tapestry is neither fish nor fowl, but a connected and interconnected fabric of surreality. It will be a framework for personal adventure set within a PW framework... that really isn't PW, since it's meant to be played SP or MP or DM'd, 24/7 or as you will, officially hosted or your own personally D/L'd instance.

If this is indeed an open ended module, I would like to caution you about the difficulty of scripting "story" into it.  

Don't I know it ;-)
One of the reasons I put Forester on the back burner was to get certain systems working first.

<edit: also one of the reasons he is so polite to scripters ;->

<...to neatly fork the king and queen>
               
               

               


                     Modifié par Rolo Kipp, 02 janvier 2012 - 07:01 .
                     
                  


            

Legacy_Rolo Kipp

  • Hero Member
  • *****
  • Posts: 4349
  • Karma: +0/-0
Flashback Fugue
« Reply #4 on: January 02, 2012, 06:46:29 pm »


               <raising a glass...>

wyldhunt1 wrote...
Not a text parser, per se, but you may want to take a look at the array functions in the Legacy NWN system.
...

Yup. Thank you :-)
I've been very... <sour> upset about certain limitations of NwScript and arrays are one of my biggest beefs.
At least I understand *why* we don't have true arrays, but it sure makes things more difficult. 

<...in thanks>
               
               

               


                     Modifié par Rolo Kipp, 02 janvier 2012 - 06:56 .
                     
                  


            

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0
Flashback Fugue
« Reply #5 on: January 02, 2012, 06:57:52 pm »


               You sound like you know what you are doing. It is interesting that we have walked two different paths and yet arrived in similar looking places.

Regarding a parser: you should probably tailor it to your needs. In AID it requires that the player use the imperative (most likely written in third person) - meaning that in AID the script is essentially parsing a command which is most typically lead by a verb and followed by a direct object. Thats why it works with the "emote" style of most PW play.

In your case you are likely using a different mode/mood. So the trick will be to define it, and then write the parser to work from that assumption. Picking a grammatical assumption / grammatical mood makes it easier to figure out what word categories/lists are critical for your system and which are secondary, and then search for particular word categories in a particular order.

At present AID only has a VERB list and an IGNORE list. But once you have a basic grammatical structure identified (as AID does) it makes it easy to add additional word lists, and improve the sophistication of the parser.

Anyway, thats the model I am using. Others may have a better strategy for writing parsers.
               
               

               


                     Modifié par henesua, 02 janvier 2012 - 07:00 .
                     
                  


            

Legacy_Rolo Kipp

  • Hero Member
  • *****
  • Posts: 4349
  • Karma: +0/-0
Flashback Fugue
« Reply #6 on: January 02, 2012, 07:16:16 pm »


               <happily admitting...>

When it comes to parsing random text, I know very little. It was your own posts about AID that reminded me I'll need a clue ;-)

Pulling names ("What was your mother's name?") out of a response shouldn't be too difficult, but I have the vague idea of something more Zork-ish for expanded NPC responses that would tie into the modular behavioral AI (which I *do* have a clue or two about). (Edit: Player feedback to NPC is one of the learning tools for behaviors).

Looking at AID v3 (just a quick scan), you probably have all I need (at least to start). But I'm interested in how other people have handled parsing before this.

This (verb/object list) might also tie into the archmage's magic system I'm toying with (which requires spells written from components like "power source", "target-type", "action-taken" - each with it's own complexity and power cost), though I'm really hoping to make it graphical, as much as I can.

I.e. I see more potential in good parsing scripts than just learning what name to tag Goodman Jone's favorite plow-horse <edit: the one the basilisk ate>

<...near-total ignorance>
               
               

               


                     Modifié par Rolo Kipp, 02 janvier 2012 - 07:27 .
                     
                  


            

Legacy_wyldhunt1

  • Sr. Member
  • ****
  • Posts: 443
  • Karma: +0/-0
Flashback Fugue
« Reply #7 on: January 02, 2012, 07:36:01 pm »


               What I do with situations like that is to use the Legacy NWN arrays.
By using multiple arrays, you can make some interesting systems.
As an example:
Make an array of verbs.
Make multiple arrays of responses to those verbs.
Now, you can do something like:
Get verb location in verb array.
execute action from array named the same as objects Tag, same placement.
So, if they searched a painting, you would get 'Search' in the verb list. Say it's 3rd in the array.
Grab the 3rd item in the 'Painting' array.
That may lead you to a descriptive string "You find a woven material dyed with some unknown substance."
... You can get considerably more complex than that if you build up the system properly.
               
               

               
            

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0
Flashback Fugue
« Reply #8 on: January 02, 2012, 08:06:43 pm »


               Rolo, I hope you are not waiting for me to develop the AID parser until it is useful for you. That system is now usable for me so I'm gonna let it sit for the time being. I am now on to my task: Persistent Room Rentals (Inns apartments etc...) available to both PCs and NPCs, with the possibility to expand to include things like room services etc.... I didn't find anything on the vault that satisfied me, so I am writing this from scratch.
               
               

               
            

Legacy_Rolo Kipp

  • Hero Member
  • *****
  • Posts: 4349
  • Karma: +0/-0
Flashback Fugue
« Reply #9 on: January 02, 2012, 11:33:06 pm »


               <waving his hand...>

Nah. Just looking to see what I can <steal> adapt/learn from that's already out there :-)

AID v3 is already on the slab in the vivarium (couldn't resist ;-). I'd like to see what other people come up with for comparison, though.

I'm interested in your Innkeeping, also. As you've said, we've taken different roads (mine the less traveled, I think ;-), but converged toward the same place <or at least, a similar country>.

<...and shaking his head>