Quantcast Storyline Plugin - Page 2 - LoTROInterface
VGInterface.com
Search Downloads


Go Back   LoTROInterface > LotRO > General Discussion & Support > Interface Requests (L)

Reply
Thread Tools Display Modes
  #11  
Unread 10-12-2017, 09:26 PM
Thurallor's Avatar
Thurallor Thurallor is offline
The Undying
Interface Author - Click to view interfaces
 
Join Date: May 2013
Posts: 122
Quote:
Originally Posted by Garan
As to states, yes, a state machine is the natural implementation of a scripted quest application. Basically the way the built-in quests work or like those old books where you would read a page and then make a choice which tells you which page to go to next (or like the old text adventure games like Zork). While we can expand on the simplistic transitions of a Zork game by having mult-part objectives, optional objectives and even objectives that can be done in any order in parallel, it is still just a state machine, just a slightly more complicated one.
I missed your reply because I was typing mine at the same time and never noticed you had posted until just now.

Yes, I think what you're referring to is "Choose Your Own Adventure" books, which I loved when I was a kid. At the end of the page, the reader would be asked to make a choice, and go to a different page depending on the choice.

That might be a useful way to organize the user interface for a story author. He edits a large collection of "pages", and specifies "page jumps" based on a user's choice, or one of the other triggers we've mentioned above (e.g. killing a mob).
Reply With Quote
  #12  
Unread 10-14-2017, 09:41 AM
Interitus Interitus is offline
The Indomitable
 
Join Date: Oct 2017
Posts: 11
I had a thought regarding the idea of a ;loc button. Perhaps instead of that, there could be a button that is defined by the writer (on each "page" of the story). That way they could use custom emotes by overriding the text (again I'm not really sure if this is even possible, but based on your other comments I suspect it might be).

e.g.
/laugh laughs awkward at <target>'s joke.
or
/lookaround searches the field at ;loc for Glaerdor's sword

Maybe have 2 boxes on the author's side where he defines the button such as:

Button name: <the text on the button displayed to the player>
Button action: <the text sent to the chat box>

e.g.
Button name: Search
Button action: /lookaround searches the field at ;loc for Glaerdor's sword

That might actually simplify other parts because then the plugin wouldn't have to monitor for a separate location and emote. It could simply monitor for one predefined text that contains both.

Also (unrelated) I realized this plugin might also be a good tool for creating in game tutorials, or something like an orientation for a kinship.

Anyway, I hope I'm being helpful. Feel free to tell me to stop anytime, I realize I'm pretty ignorant about this stuff, so I wouldn't be shocked to be told I don't know what I'm talking about.

Last edited by Interitus : 10-14-2017 at 09:48 AM.
Reply With Quote
  #13  
Unread 10-17-2017, 04:40 PM
Garan's Avatar
Garan Garan is offline
The Undying
Interface Author - Click to view interfaces
 
Join Date: Oct 2010
Posts: 236
I'm not real keen on using the ;loc embedded in text because it increases the parser complexity. Not only are the region names are different depending on which client you are using but by embedding it in other text you significantly increase the complexity of the patterns for matching the text. The /loc (or /pos) command always returns the result in the same format. Additional complexity means a greater chance for errors at runtime (this client will be complex enough without adding to the potential for bugs). The author can be able to change the label on the button that the user presses, but the underlying chat command should be as simple and reliable as possible and that means using "/loc" (or "/pos").

So far I have identified the following 'types' of objectives that are fairly easy to implement (with some unavoidable complexity on the generic chat match):
1=get to location (use /loc to test)
2=find target
3=chat match
4=kill x (count) enemy
5=acquire x (count) items - they must be in inventory simultaneously (no grabbing one from the vault, putting it back and grabbing it again :P )
6=have effect
7=use skill
8=equip item

Let me know if you think of any other types I should consider.

As to "knowing what you are talking about", that doesn't matter when brain-storming. Some of the best solutions come out of what initially sound like crazy ideas when brain-storming so keep throwing ideas out. Some will stick, some not so much, but they are all valuable (besides, this is your original idea).
Reply With Quote
  #14  
Unread 10-19-2017, 06:59 AM
Interitus Interitus is offline
The Indomitable
 
Join Date: Oct 2017
Posts: 11
Thanks for viewing my input as brain-storming (as it is intended), instead of demands (which it isn't), because I'm still figuring out what can and can't be done, and wouldn't make demands regardless. What I envisioned would have been more simple, and less useful.

At first I imagined EVERYTHING being based on matching text with the chat. However, if I understand correctly, that particular feature is a problem for internationalization, whereas the other 7 objectives on your list wouldn't be a problem.

Before realizing this, when I was thinking only about one language, I assumed puting an action into a button (such as an emote) would make things more simple. I figured the author could do the action, then paste the chat command for the action, and the resulting text into the authoring tool. I thought that way they could be 100% sure everything will work as planned.

However, if everything was like that, then everything would have to be done 3 times (logging out and on under a different language between each) in order to do everything in 3 languages. I see how that would become a lot of work.

I'm not sure if performing an emote is something a plugin can detect outside of "chat match". If it is, that's GREAT. Perhaps in a story they could sometimes have a 2 part objective. 1) get to a location (/loc) and 2) perform an emote (e.g. lookaround). I assume that way the two things would be easy for the plugin to pick up.

If emotes are only visable to a plugin based on "chat match", then perhaps that's okay too. There's a limited number of emotes, and a limited number of languages LOTRO supports. Even if the plugin doesn't translate the emote for writers, I'd be plenty happy to try every emote in every langage to make a chart. Then, I assume, writers could set a trigger for each language.

Perhaps emotes would be a nightmare to deal with though (this is what I'm beginning to suspect). In that case, the /loc button with different text (i.e. lookaround) would do the job by itself, and the writer could simply write the action into the story text. The biggest difference being the character doesn't make the emote movements. If the emote movements became important to players & writers, and the emote text was difficult to deal with, then I suppose a workaround would be to make the emote an action that isn't really required that they do before the action that completes the objective. I suspect most people simply wouldn't even notice it wasn't required.

One of the things I liked about the idea of using emotes (when I was thinking everything would have to be done by "chat match") was that it was another way of confirming a player reached a certain location. For example if they reach a specific NPC, then perform an emote to the NPC (such as /wave). The target's name comes up in a specific channel. However, if the plugin can detect who you have targeted, then that's even better.

The only other thing I can think of that MIGHT be considered as an addition to your list (besides emotes and/or target if they're possible and desired) is acquiring something in the barter wallet.

Personally, I would have been impressed by something super simple that put all the work on the writers, but I don't mind throwing out ideas as long as they're not viewed as demands. I don't know how hard it is to do one thing vs another, so something I might think is simple might be a nightmare in reality. I realize that.

I had forgotten ;loc and /loc did different things. ;loc gives coordinates in 2 dimensions that aren't very specific, so I thought it could be used to indicate that a person is generally in the right area, while not requiring them to be on an exact spot. Now I realize that /loc is much more specific. I assume there would be a way to allow a range for /loc, whether it would be by matching only the first 2 or 3 digits of each value, or by some other means.

I suspect at this point the best way for me to contribute would see if I could come up with a story to see if there's anything I hadn't considered that would be needed or desired by writers.
Reply With Quote
  #15  
Unread 10-19-2017, 08:18 AM
Garan's Avatar
Garan Garan is offline
The Undying
Interface Author - Click to view interfaces
 
Join Date: Oct 2010
Posts: 236
I'll add "Acquire x Barter Currency" to the list of objectives. Although, that does lead to one problem as not everyone has the enhanced wallet, so some users will have some currencies as items in their inventory. Perhaps we can leave it up to the author to set two objectives, "Acquire x Items" or "Acquire x Currency" and add an option in a future version to automatically add both objectives for known currencies - unfortunately, there is no mechanism in the API to determine the item associated with a currency so that list would have to be manually compiled and maintained (new barter currencies are added quite frequently).

One way to deal with the multiple language specific responses is to simply store a language flag in the story indicating which language it was written in and warn the user if they try reading it with a different client. That's certainly workable, at least for version 1.0.

Emotes get a bit tricky because not only do they have different text for each language (and different commands for each language), they can also generate different chat messages depending on who or what you have targeted. There are a couple of solutions, the simplest would seem to be to allow the author to specify multiple chat texts for each chat objective. In the long run that also solves part of the internationalization problem since the author could just include a pattern for each language the story supports.

Last edited by Garan : 10-19-2017 at 08:29 AM.
Reply With Quote
  #16  
Unread 10-19-2017, 11:09 AM
Thurallor's Avatar
Thurallor Thurallor is offline
The Undying
Interface Author - Click to view interfaces
 
Join Date: May 2013
Posts: 122
For the emote chat messages, I exhaustively researched every one of the possibilities a couple of years ago in making this plugin, which translates the messages into Russian. There have been a few new ones added since then, but the majority of the work is done, for English.

I also came up with an efficient way to do the parsing. The naive way would have been to apply several hundred regexps to every single chat message after it arrived. I thought this would be potentially costly in terms of CPU overhead. Instead, after receiving each message, I replaced the player's name and the target's name with placeholder strings. Then I used that string as the key when searching the translation table. Hash table lookups are very fast.

On another note, not every possible objective needs to be imagined before something useful can be made. Specific features that are required for a "proof of concept" story could be implemented. Then future stories will provide guidance about what other features are needed.
Reply With Quote
  #17  
Unread 10-19-2017, 03:18 PM
Interitus Interitus is offline
The Indomitable
 
Join Date: Oct 2017
Posts: 11
Quote:
Originally Posted by Thurallor
On another note, not every possible objective needs to be imagined before something useful can be made. Specific features that are required for a "proof of concept" story could be implemented. Then future stories will provide guidance about what other features are needed.
I 100% agree. I hope I'm not complicating things. I suspect a 1.0 version with a decent first story could spark a lot of interest using only kill counts and /loc (and possibly find target). In fact, I think you could even work with just /loc or just kill count. And if I'm wrong, then it's probably better to find that out before a bunch of work goes into designing complicated parts for the plugin.

What I suspect though, is that custom stories will become a typical feature of large kinship activities. I also suspect even a 1.0 version would be useful for horse races, because now people could be required to reach certain spots, and it would be a little less on the honor system. Additionally I think it could be a cool way to have an "orientation" to a kinship, provide walkthroughs for instances, and provide tours for your house (a way to explain stories or the meaning behind items you've collected).

Now that I think about it, perhaps some sort of race where people run around completing objectives (without any real story, just to showcase what can be done with the 1.0 version) might be a good way to introduce the idea to people at first.
Reply With Quote
  #18  
Unread 10-20-2017, 06:42 AM
Garan's Avatar
Garan Garan is offline
The Undying
Interface Author - Click to view interfaces
 
Join Date: Oct 2010
Posts: 236
I've thought it might be neat to tie in stories to some of the NPCs or places that are special but not part of the existing stories - the boy under the steps in Bree, the Cat house in bree (where is the owner?), the rabbit cave, all of the killer bunnies on their bear skin rugs (there are a few scattered about), the cabin with goldilocks and the three bears, the mourners at the old graveyard north of Bree, etc. Lots of fodder for new stories.

I've got a 500 LP code floating around that I was planning to give away (I've got a ton of LP stored up on multiple accounts already), perhaps a story contest would be appropriate. If it is popular enough, perhaps you could even get SSG to sponsor prizes for regular, annual (or even more frequent) story contests (they've donated prizes to kin events before).

EDIT:
As to a prototype - I was making good progress before I got sidetracked by the annoying inability to change the height of the skinnable textbox controls (you can change regular ones but the skinnable ones use a fixed height background). The issue was that this plugin is most likely to appeal to role players. Role players seem to like either fancy skins that put them in the mood for their characters or "minimalist" skins that keep the UI from ruining their immersion. Either way, they seem to like skins. Add to that the amount of reading (and writing) in this plugin and I wanted the UI to be as scalable as possible so I started messing around with user selectable fonts and sizes with dynamic UI layout when I ran into the button issue. We can either have scaling button fonts or skinable button backs but not both. Frustrating. I finally settled on a compromise where the plugin automatically selects button font size by the largest font that fits on a button (about 22 pt) from the font family chosen by the user - the rest of the UI will use the full size font the user has chosen so the text will be easily readable.

Speaking of Feature Creep. As Thuralor commented, it is good to get something out, even if it doesn't have all of the desired features. Feature Creep is a term used by software designers to refer to the almost endless cycle of adding new features, implementing and testing them only to find more new features to add. That cycle can push a project's development waaaaaay past any reasonable delivery date. A friend of mine was working for years on a game engine but he kept adding new ideas faster than he could implement the old ones. I used to joke with him about the Feature Creep and one day he finally renamed the project "Feature Creep", splash screen and all (and no, it isn't finished yet ). So, while I've been listening to ideas and brainstorming, I haven't been idle. However, don't expect the prototype to have all the bells and whistles (but there will be a few nifty ones).

Last edited by Garan : 10-20-2017 at 09:26 AM.
Reply With Quote
  #19  
Unread 10-23-2017, 01:37 PM
Interitus Interitus is offline
The Indomitable
 
Join Date: Oct 2017
Posts: 11
Quote:
Originally Posted by Garan
I've thought it might be neat to tie in stories to some of the NPCs or places that are special but not part of the existing stories - the boy under the steps in Bree, the Cat house in bree (where is the owner?), the rabbit cave, all of the killer bunnies on their bear skin rugs (there are a few scattered about), the cabin with goldilocks and the three bears, the mourners at the old graveyard north of Bree, etc. Lots of fodder for new stories.
I love it. One of the benefits of player produced stories is that they can funny if they want. They can also allow the players a lot more choices if they want, because nothing it going to affect the main story.

Quote:
Originally Posted by Garan
I've got a 500 LP code floating around that I was planning to give away (I've got a ton of LP stored up on multiple accounts already), perhaps a story contest would be appropriate. If it is popular enough, perhaps you could even get SSG to sponsor prizes for regular, annual (or even more frequent) story contests (they've donated prizes to kin events before).
I wouldn't mind donating to the cause myself, and I suspect SSG will really like the idea. Part of the reason I had the original idea (which has now been improved) was because I thought it could help increase the longevity of the game, possibly even after SSG is done writing stories. Plus, from what I've read in the forums the role playing community has felt somewhat ignored and this might go a long way towards making them happy.

It occurred to me that perhaps we could convince SSG (among other things) to give a title to anyone who enters a story in the contest. I suspect the role players would really like that.

As far as feature creep, I'm sure even the 1.0 version will blow the concept I envisioned out of the water. So while it's fun to talk about bells and whistles I'm certainly not worried about them.

I do look forward to helping promote the plugin though.
Reply With Quote
  #20  
Unread 10-23-2017, 02:17 PM
Garan's Avatar
Garan Garan is offline
The Undying
Interface Author - Click to view interfaces
 
Join Date: Oct 2010
Posts: 236
I was thinking something like "Made of Hamsters" as a tip of the hat to MoL, "Made of Lions", who creates most of the in-game quest content as well as the old joke about the servers being run by hamsters on exercise wheels. I know Turbine did some custom titles for some events in the past, but I don't know how receptive the current crew are. It wouldn't hurt to float it past them after the plugin is ready for prime-time.
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Add a plugin to plugin compendium glafria General Authoring Discussion (L) 4 06-02-2016 01:20 PM


All times are GMT -5. The time now is 12:57 AM.


Our Network
EQInterface | EQ2Interface | Minion | WoWInterface | VGInterface | LoTROInterface | MMOInterface | Swtorui