Thread: Ruleset Automation
-
January 7th, 2020, 02:52 #1
Ruleset Automation
There has been a fairly involved discussion regarding ruleset automation over in the 5E Bugs thread. It has been suggested that it be moved to a new thread. I've copied a little of the discussion below. Please continue the discussion here
Problems? See; How to Report Issues, Bugs & Problems
On Licensing & Distributing Community Content
Community Contributions: Gemstones, 5E Quick Ref Decal, Adventure Module Creation, Dungeon Trinkets, Balance Disturbed, Dungeon Room Descriptions
Note, I am not a SmiteWorks employee or representative, I'm just a user like you.
-
January 7th, 2020, 03:00 #2
One point I wanted to add to the discussion of ruleset automation, and in particular adding phrases to the parser are the following 2 points that help to point out that automating a ruleset (in particular D&D 5E, but applies to any ruleset) is that adding more phrases to be parsed (such as for spell effects etc) has two major draw backs.
1) The more phrases that have to be parsed, the harder maintaining the code becomes. Things like conflicting phrases becomes a more challenging issue. Updates to the ruleset take longer, and therefore improvements to the software will come more slowly. In short, the more automation we have, the longer fixes and enhancements will take to roll out.
2) Performance. The more phrases that have to be parsed when a creature is added to the Combat Tracker, the longer it will take FG to parse and prepare the CT. I believe their are already reports in the Pathfinder Ruleset of measurable delays when a significant number of NPCs are added to the CT. As the software has to do more processing, the slower the software will become.
Neither of these are things that are hard lines. They are incremental costs that will be incurred as automation increases.
Problems? See; How to Report Issues, Bugs & Problems
On Licensing & Distributing Community Content
Community Contributions: Gemstones, 5E Quick Ref Decal, Adventure Module Creation, Dungeon Trinkets, Balance Disturbed, Dungeon Room Descriptions
Note, I am not a SmiteWorks employee or representative, I'm just a user like you.
-
January 7th, 2020, 03:29 #3
I've danced around this myself for a while. There are ways to make it a bit more user friendly (I find string parsing not very user friendly myself) but to do that you give up performance by adding various and many nested nodes in the data.
The more nodes you have the slower things load into the CT. It's one reason I had to re-write the DM side of the CT for the AD&D ruleset. Without the re-write the load times were very dramatic.
With the extra bits I was able to add new effects and automation features I wanted. All of the spells and bulk of the items have effects, attacks/powers pre-configured. I was also able to automate equipped items/effects and racial/class effects.
Outside of that there are some other things that can be automated. Improved AC versus ranged or melee. Flat ability score change. Mirror image, stoneskin and specific types of damage absorb/temp hps (tho I am not sure 5e has temp hp for something like fire).
What type of additional automation are you looking for?---
Fantasy Grounds AD&D Reference Bundle, AD&D Adventure Bundle 1, AD&D Adventure Bundle 2
Documentation for AD&D 2E ruleset.
Custom Maps (I2, S4, T1-4, Barrowmaze,Lost City of Barakus)
Note: Please do not message me directly on this site, post in the forums or ping me in FG's discord.
-
January 7th, 2020, 04:00 #4
The 5E ruleset does a lot with word parsing - which has a good success rate as WotC products generally use repeatable wording. For some of the base entries that don't work, there has been some hard coded automation in the base ruleset to carry out automation based on the name of the record.
For Pathfinder Second Edition we don't have the luxury of repeatable wording in most cases - feats, spells, class abilities. Some things (initial class data) is fairly repeatable and basic string parsing can be used, but it's rare.
So, for PFRPG2, I've started experimenting with an automation field in certain records. This is hidden by default, which can be changed through the campaign options. Some information on what I've done so far: https://www.fantasygrounds.com/wiki/...2_Experimental which basically allows for database fields in the PC charsheet to be directly modified/set - of use only for static DB fields, but it's a start. Release 12 tomorrow will add defense proficiency automation and a base special automation handler. I plan to expand these over time. The issue with this is that it adds a lot of time to creating DLC content - having to write and test the automation field for every ability/feat. And, as usual, it will probably be impossible to cover all possibilities. I doubt I'll ever do this for every single record in DLC, but will probably keep to common feats/abilities - where I go and how successful it will be remains to be seen...Private Messages: My inbox is forever filling up with PMs. Please don't send me PMs unless they are actually private/personal messages. General FG questions should be asked in the forums - don't be afraid, the FG community don't bite and you're giving everyone the chance to respond and learn!
-
January 7th, 2020, 05:01 #5
Supreme Deity
- Join Date
- Mar 2007
- Posts
- 20,541
The approach that Trenloe is taking is one of the things I've been keeping in my head for quite a while. Basically, you come up with a way to provide extra fields that allow you to automate attacks/damage/effects and more, and move away from trying to read the text. By allowing people to fill out those fields, it gives finer grained control, easier to maintain and less conflicts.
However, increasing the number of fields to be copied and instantiated actually increases the UI complexity and database overhead. This is the fine line that celestian has been walking, since his automation is arguably even more detailed than 5E. The cost is in the UI performance overhead and database node copying overhead. (Parsing some text in Lua is fairly tame in comparison for performance.) Thus, why celestian has been having to reconfigure UI (among other reasons).
If we had time to actually redo this (which we don't); I'd probably move to some sort of coding system similar to effects where you can have a single database field lay out all the "automation actions" for each power/spell/ability/attack. Then, we could build the fields dynamically as needed in the UI without even tying to the database. But, this is just a prototype concept that I've been bouncing around in my head, since we're so focused on FGU right now.
One of the challenges with changing anything (especially in 5E) is that you have to update the entire catalog of DLC to work with your changes. So, it's actually easier to change this assumption earlier in the ruleset coding process.
Cheers,
JPG
-
January 7th, 2020, 06:31 #6
- Join Date
- Jan 2014
- Location
- California
- Posts
- 1,564
I find the word parsing for 5E to be cool and fairly easy to read. The only real problem that I have with it is the lack of specifics on how to format the statement to get what result. I asked once, long ago if there was a list and the answer was basically no. I think it would do some good if there was a master list.
I resisted creating new entries in the NPC section for months because using the PC sheet was easier than trying to figure out exactly how to format special features and such. I've gotten better at it but I'm no master. I just last week figured out that I needed to have a separate entry for innate spellcasting in addition to spellcasting.
It would be nice if miscellaneous items could apply various effects. Like gauntlets of ogre power adjusting strength on equip and unequip.
Trenloe I like your setup but it, like effects, is arcane to the point it is a barrier to some. I think it is a solid direction but please give lots of examples of how to format stuff.
One thing that would also help 5E (and 2E and really every ruleset) is a stop before applying effect or damage in the CT like the one found in SWADE. It would help when people accidentally double roll damage, have feats that let them reroll damage on 1 or 2, accidentally stack sneak attack effects, etc. It wouldn't be a big deal if 5E didn't stop at 0 and recorded the full damage so you could reverse the damage and just apply but if you don't happen to know exactly how many hits something had when an accidental double roll takes place it's super hard to undo. That sort of feature would help with automating a lot of conditionals that show up here and there.
-
January 7th, 2020, 10:43 #7
For NPC's see here https://www.fantasygrounds.com/wiki/...ffects_on_NPCs
For classes, backgrounds, feats, and races see here https://www.fantasygrounds.com/forum...preted-strings
For other information on effects see here https://www.fantasygrounds.com/forum...-Videos-for-5E and here https://www.fantasygrounds.com/wiki/...php/5E_Effects
Also you can reverse damage by holding CTRL and dragging the damage from chat back onto the creature that took the damage.If there is something that you would like to see in Fantasy Grounds that isn't currently part of the software or if there is something you think would improve a ruleset then add your idea here https://www.fantasygrounds.com/featu...rerequests.php
-
January 7th, 2020, 14:09 #8
- Join Date
- Jan 2014
- Location
- California
- Posts
- 1,564
Thanks, I had figured most of it out from the wiki, but that section on class, race, background should really be in the wiki. That would make it much easier to find.
I will definitely try the control-drag. That will help a lot.
-
January 7th, 2020, 15:03 #9
Thanks for making the thread, LordEntrails.
Anyone who's unclear of what is being discussed can follow the link back to the original thread, but suffice to say we got into the weeds a little bit on why some items don't quite "work out of the box." Zacchaeus made some very illustrative posts about how the par5e parser and the limitations it has, which I won't mangle trying to simplify here for discussion. In the end though, I think I'm still unclear on exactly why the two cases we discussed are different: a suit of Mithril Plate Armor and a Ring of Protection.
An item of Mithril Plate armor, or really any other variant-type item is simply reskinned by the parsing process, so you get Plate armor that's called Mithril Plate, and a note that it shouldn't cause disadvantage on stealth checks. In order for a different, "correct" Mithril Plate item to be included in a module, there would have to be a separate, Plate armor base item that had that correct property built into it. I guess Mithril plate isn't in the SRD so it can't be the "base item"? I'm still confused by this, but I take Zacchaeus at face value that this is the way it must be.
Alternatively, a Ring of Protection +1 is basically delivered in the module as an item, with the text copied from the module. It does nothing when equipped to a character without player/DM intervention. But this is not a limitation of the module creation process (as above) but rather the fact that item descriptions are not parsed for effects at all, and if they were (and the parser were "taught" how to read the most common effect phrasings) it would significantly increase the calculation load.
So... It is certainly a slippery slope of where to draw the line as far as expectations for parsing text. I try to view these things as a collaborator, and be understanding that there are technical limitations that prevent things from being perfect. And that if these things were included, developer time would increase, updates would come slower, things would likely cost more, etc. I get it.
But as a customer who prior to yesterday didn't understand how a module is made (and still has a rudimentary understanding at best!) it is frustrating when a simple magic item that's been around for decades isn't coded. My customer brain thinks: "I'm paying for module X, I paid for FG, the module should include everything in the physical book, coded for FG." To me that includes automation, as automation is part of FG... I know that might be unreasonable, but it is what it is. I still think FG is great in it's current form, but this is a point of pain for me. Whenever my current party in Curse of Strahd, or in a homebrew with items from the PHB and DMG (which I paid for), gets a parcel, there is then a 5 minute discussion of how to get it coded. It sucks. I think the bar should be higher for a published module/handbook. Please discuss.
-
January 7th, 2020, 16:18 #10
Let's look at a little bit of FG history... Once upon a time, FG provided the tools for players and GMs to automate their characters and creatures up to the level that they wanted. It was up to them to apply the effects, data, etc. as their characters were created and evolved over time. Any Smiteworks provided data that was available (OGL or commercial) was pretty much informational (with the odd exception) and players and GMs had to set things up how they wanted - depending on the level of automation they were looking for.
Then, with the advent of D&D 5E (even before FG got the license) someone decided it would be cool to code for more automatic automation - helped by the repeatable text used by WotC. This was great and a lot of people use it and enjoy it, but there will always be exceptions and how these are handled is up for discussion. As a RPG product matures and brings out more material the number of these exceptions increases. Fantasy Grounds has, quite sensibly, gone for the 80/20 rule - trying to provide some level of automation for 80% of cases, the other 20% of cases need to be handled manually. In some RPG system, with non-repeatable data, even 80% is a big challenge (see PFRPG2, for example). This is a realistic approach as the 80/20 rule is usually reversed - i.e. to do the last 20% will take 80% of the work. If this final 20% was tackled, then there would be a lot of other things FG users are asking for that won't be done. Smiteworks is a small company - everything is a balancing act of effort vs. reward.
As an outsider to the background, code and FG development processes, would I want to see near 100% automation of abilities, feats, items etc. within FG? Yes, of course I would!
However, being an insider, and being realistic (that's what we need to be here, realistic), there has to be a line drawn somewhere as it is not commercially viable for Smiteworks to provide a very high level of automation. This is a niche, within a niche and even for D&D, which far outsells and is played more than any other RPG system on FG, spending 80% more time on 5E products (that have a lot of data needing automation) to provide a high level of automation is simply not financially viable. And trying to do the same for other FG, non 5E D&D products, would lead to the development of these products (done by community developers) to pretty much dry up.
Like I say, in a perfect world I'd love to see it, but I imagine most of us want Smiteworks to be successful and continue to get licenses for, and develop products for, all sorts of RPG systems - not just the massively popular one. So, like I say, there needs to be an accepted level. Sure, there will always be exceptions to these - like the couple of items mentioned above, maybe the ring of protection should be coded, and maybe mithril plate should be (just an example).
In the end, if it takes 5 mins for everyone to get FG setup the way they want it when they get a bunch of new items, is this such a big hassle? I'm sure to some it is. But for most, spending this time to save more than this time in future is worth it. And all of use like different levels of automation - there's been threads in the past asking "how much automation do you want" and the results were widely spread out, so what is hard coded for most, might not work for others. I agree that some automation would be simple enough (ring of protection, for example) - unless there's another item, or some ability, that affects the base effects of that item - then we have an exception that needs to be coded manually. And if just one thing needs to be coded manually, then we encounter this expectation of "I'm paying for module X, I paid for FG, the module should include everything in the physical book, coded for FG." I agree that there is this expectation there - and this maybe needs to be managed better.
It's good to see that various devs (both Smiteworks and community) are looking at options - a lot of these are in the conceptual or experimental stage and may change or may not go anywhere. Even with these, the 80/20 rule would be a good level to aim for, with improvements to options and application of effects being made within the rulesets themselves. Some of this I'm already developing in the PFRPG2 ruleset, and some of this is already available in the SWADE ruleset. With the stuff I'm working on I'm very conscious of runtime performance - PFRPG2 PCs are a lot more complex than SWADE ones, so I don't think I can use a similar approach. Which is why I'm looking at things like the experimental features I liked in a previous post. Arcane? - probably, but this is the most efficient I've thought of (for now) and maybe if it takes off I'll look into providing a more user friendly interface to create the base automation code...
It's good to have a discussion, and there will always be widely different expectations and desires across the board. That may result in some people being disappointed, and that's unavoidable. RPG systems continue to evolve and trying to keep a high level of automation with moving goalposts is impossible for a small company that has limited developer resources and that relies on many community developers. I think it's doing a great job so far. Is there room for improvement? Yes, there is - and many devs are looking at doing this. But all of us should keep that 80/20 rule in mind - because we're never going to get to 100%, not even 95% IMO...Private Messages: My inbox is forever filling up with PMs. Please don't send me PMs unless they are actually private/personal messages. General FG questions should be asked in the forums - don't be afraid, the FG community don't bite and you're giving everyone the chance to respond and learn!
Thread Information
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks