PDA

View Full Version : Feature Discussion: Sharing records with links



Moon Wizard
September 18th, 2015, 23:49
I'm currently reviewing the behavior of sharing records with links as I look at expanding some sharing capabilities that could make data more linked.

Currently, when you share a record, any fields within that record are automatically shared. Additionally, if any of the fields are formatted text fields with links, all of the records pointed to by those links are shared. This behavior continues to cascade until no more formatted text links are found.

Originally, the capability of cascaded sharing was requested because a GM was sharing a story record to players containing a set of information they were aware of. The requirement at the time to open each individual record and share each of them was a big pain. Otherwise, the players would get broken link messages all the time when the GM forgot.

The drawback of cascaded sharing is that GMs will sometimes accidentally share way more than they want to if they don't know the data well. If all the story entries are intertwined, then a GM could easily accidentally share a good portion of an adventure by sharing a single story record.

There is no corresponding cascading unshare for similar reasons, which is in itself a complimentary concern. So, if a GM decides to no longer share a record, they must unshare each individual record. But, if cascading unshare is implemented, we have the same problem of a GM accidentally unsharing a large chunk of data when trying to unshare a single record.

So....

I'm looking for ideas and discussion of how you might like to see linked sharing work in Fantasy Grounds.

* When a record with links is shared, what do you think should happen?
* When a record with links is unshared, what do you think should happen?
* Other thoughts about sharing or how you envision a user interface for these capabilities.

I may not change anything at this point, but this heavily influences whether I build one of the features that I am considering for the next version that increases sharing and linking even more.

Cheers,
JPG

darrenan
September 18th, 2015, 23:59
I think that deciding to Share something should pop up another radial menu with two options: this record only, or this record and all linked records. This is very analagous to applying the read-only attribute in the file system for instance, where this type of choice exists. Your description above very clearly lays out conditions where either behavior might be desirable, thus push the choice onto the user.

Moon Wizard
September 19th, 2015, 00:15
More radial menus, yeah! I'd like to avoid radials as the primary, but might add some sharing buttons at the top of sharable windows in addition to radials.

In your scenario, what happens if you share a record and all links, how deep do you follow the links? (The only options that really make sense are one level or all the way down, since GMs rarely know how deep things are past the first level. (or people in general really))

JPG

Nylanfs
September 19th, 2015, 00:57
Why not just program it to read our minds on what we were planning to share? That's what a good developer would do.


But I would have three options Share 1 level (ie primary thing being shared), Share 2 levels, Share all levels.

Nickademus
September 19th, 2015, 01:07
* When a record with links is shared, what do you think should happen?
* When a record with links is unshared, what do you think should happen?
* Other thoughts about sharing or how you envision a user interface for these capabilities.


I can't help but have a feeling of deja vu as I reply to this post. It's as if I had recently posted about just such an instance...

My initial preference (without taking time to ponder) is to make an option to toggle in-text link sharing and set to off by default. This will prevent new GMs from having accidents and veteran FG GMs can turn it on since they know the risk involved. A single option check before sharing shouldn't be that much more code.

My personal thoughts about sharing is that FG should never assume I want to share something. I should have to explicitly tell it that I want something shared. Now that send, I have a story entry that has 49 map images embedded for the players to use as a reference. I currently share the story to cause the players to preload the maps (usually before the first session of Chapter 1, when the characters get the maps in-game). With the above behavior, what I could do is switch the in-text sharing option on, share the story to share all the maps, and then switch the in-text sharing back off. That is explicit enough for me.

I almost never unshare so I have no opinion about that at this time.

viresanimi
September 19th, 2015, 02:03
I kind of like it the way it is. The only problem, as you point out, is the unsharing of data. If I am not mistaken the /flushdb functions takes care of this (or used to). Perhaps a solution could to be present options to purge any "public" shared links. It could be cool, that if you unshare one document, anything linked to it became unshared as well. Sort of everything connected to the "root document" became unshared.

If I was to add a button of any kind to a story / text element, I would put it next to the "lock" at the top right corner. It could be made in a similar vein as the red dot that you expand to make new elements. New stories, images, items and so on. The thing in the bottom right corner. Something like that. Small and unobtrusive. It could be use to toggle the "public" option on or off. I am sort of fine with individual sharing still requiring a drag and drop on character portraits.

Just a few coppers worth of thoughts.

Vires Animi

dulux-oz
September 19th, 2015, 02:53
Without knowing what Moon's planning for his new Sharing features, let's look at this step by step.

First of all everything below applies to both Sharing and Unsharing - you can substitute these two terms for each other in the discussion below (except where its obvious where you can't :) ). So we have two similar/related issues, not one.

The issue isn't a binary state problem (share all or share one), its <= 2x^n state problem (where x=number of links per record, n is the maximum "depth" of the links): when a record is shared do we share each of the child records: this decision needs to be made for each record ie it is a recursive decision tree. At the moment the first decision is made by the GM and the recursive decisions are decided by the system (decision is to share/not unshare, respectively).

An equally valid decision tree would be for the system to not share/unshare, respectively, or any combination of these (for four possible combinations). BUT each of these four combinations is only the simple case of the more complex problem.

Now getting the User to make the decision to Share All or not at the first record is simply perpetuating the simple case but putting the decision on the User instead of the system.

A different option is to make the User make that decision for each record (say, via a Dialogbox). This will mean that for a highly complex set of linkages the User will be clicking "Yes" or "No" for each record (a possible 2x^n clicks). This represents the most complex case. This, I believe, would be unacceptable - if only because it would actually be faster to manually share each "child" record.

Another possible solution is to auto-share down to a given "level" in the hierarchy (as suggested by Nylanfs: auto-share down to level 2). But I see 2 issues with this: 1) what if I want to share some but not all of level 2 (or whatever), & 2) what if I want it at level 3, or level 4, or some of level 5 and some of level 8?

My point (to make a long story short - too late): no matter what Moon decides to do it won't please everyone and probably will only please a minority of people (<50%) because there are so many possibilities. I know, because I had to face the same design decision when I allowed the coping of records in my Locations Database - I decided then to allow a "Copy with All Child Links" and a "Copy Without Links" option (Share all / share none) - so far no-one has asked for anything different, but I wait in anticipation/dread of when they do.

Another thing: for the new v4 of the Locations Database you can share a Place record and the linked Places, NPCs, etc aren't automatically shared BUT when a Player tries to open the link the system displays a Messagebox saying the record isn't shared and then closes (fails) gracefully - maybe this or something similar is the solution?

Cheers

damned
September 19th, 2015, 03:08
Ive never experience (knowingly) the sharing of a record with additional links... (hopefully that means I havent over shared unknowingly...) so Im not sure my opinion whould have any weight at all! however, cause i like to share my opinions - if the design is to share the links within the item you are sharing I think it should be 1 level deep only. I shared X and it is linked to Y and Z. Thats were the sharing should end.

Nylanfs
September 19th, 2015, 03:24
Or perhaps shift it to the players side? GM shares a record, say it has 5 links to other records. System ONLY shares first level and displays link. If player chooses to click on a link in the shared record a dialog pops up on GM's side. "Player X requests record y Yes/No"

That way the player only gets what they are interested in, and the GM controls what is shared.

viresanimi
September 19th, 2015, 04:19
Well. If you actually want to share all of those 5 links, that would get tedious, as you would have to accept 5 times the number of players requesting the link.

I am of the opinion, that if it currently isn't a problem as it is, why change how it works, except for making the controls of sharing / unsharing better in the UI?

Vires Animi

Moon Wizard
September 19th, 2015, 06:09
The reason I ask is because the changes I'm thinking about would greatly increase the likelihood of this happening.

I'm seriously considering one level as default. That will support images for NPCs, Nick's image preload, the original requesters scenario, a without following all the links.

That might be good enough to contain the situation.

Also thinking UI to show when record is shared or not within each record would be nice, but that's a bi undertaking to update every record window in every ruleset.

I guess the main thing I'm still unsure about is unsharing. If you unshare a link, should it also unshare one level down by default. I'm thinking so at first blush.

Thanks,
JPG

Moon Wizard
September 19th, 2015, 06:10
Excuse the typos. Typing one finger on phone pinned down by sleeping kid and dog.

Cheers,
JPG

Moon Wizard
September 19th, 2015, 06:39
Here's a different approach that I thought of.

What if instead of messing with "levels" of sharing, only "public" links were shared. By default, links would be "private" but could be toggled to "public" by CTRL-click or radial menu. Then, only public links would be followed when sharing. (with cascades as long as all links were marked specifically public)

This actually would work really well with the new feature I was considering. I would just need to implement public/private in formatted text controls, and create a link graphic to denote "public" links.

Cheers,
JPG

dulux-oz
September 19th, 2015, 07:03
Here's a different approach that I thought of.

What if instead of messing with "levels" of sharing, only "public" links were shared. By default, links would be "private" but could be toggled to "public" by CTRL-click or radial menu. Then, only public links would be followed when sharing. (with cascades as long as all links were marked specifically public)

This actually would work really well with the new feature I was considering. I would just need to implement public/private in formatted text controls, and create a link graphic to denote "public" links.

Cheers,
JPG

I like it - it seems to me to be an excellent compromise to a very hard problem. The GM can set up each link when the link is first created, then when the Sharing/Unsharing happens the system can act on each decision for each link in each record, no matter how many or how deep the record is in the hierarchy.

By setting the default to "Private" it solves the "n00b GM" issue (ie it "fails safe") and for those that want complex Sharing decisions the system caters for it.

Actually, its similar to the approach I took for the new version of the Locations Extension and the windowlists therein: I've got a "GM Only" checkbox that filters the windowlist entry from the Players view if checked - similar to marking the record "Private".

FWIW I think that the Unsharing behavior should be the same as the Sharing behavior, no matter what process is chosen.

Cheers

damned
September 19th, 2015, 07:46
think both of those options are good. share+1lvl of links or the more granular option.
also agree that unsharing should act the same way as sharing.

Zacchaeus
September 19th, 2015, 12:06
Here's a different approach that I thought of.

What if instead of messing with "levels" of sharing, only "public" links were shared. By default, links would be "private" but could be toggled to "public" by CTRL-click or radial menu. Then, only public links would be followed when sharing. (with cascades as long as all links were marked specifically public)

This actually would work really well with the new feature I was considering. I would just need to implement public/private in formatted text controls, and create a link graphic to denote "public" links.

Cheers,
JPG

Yes, this! Like damned I've never knowingly shared any more than what I intended but if you have a look at the way TASagent linked up OotA (which I believe will be the template for any future modules) then the possibility of sharing too much might come to the forefront. Having said that of course I only ever share maps, images and specifically written clues (as separate story entries) to my players, so I've never really come across a situation where there would have been anything elde linked to those.

kylania
September 19th, 2015, 15:00
Having said that of course I only ever share maps, images and specifically written clues (as separate story entries) to my players, so I've never really come across a situation where there would have been anything else linked to those.

Same here. Only story entries I'd share would be ones designed to share and therefore standalone.

Nickademus
September 19th, 2015, 20:15
Can anyone provide an example of an instance where a GM would want to share the embedded links in an asset, as well as the links in the assets they link to, but not the links contained in these third-level assets?

Moon Wizard
September 19th, 2015, 20:30
Any sharing of story entries in the current 5E OOTA would qualify. The creator of the module added next previous links for easier browsing of content. In this scenario, sharing of any story record would share all story records.

Regards,
JPG

viresanimi
September 19th, 2015, 22:44
I've been using the ability to share things rather extensively in my Vampire campaign. There is a lot of material to keep track on in regards to the city in which the campaign is set. Having only one layer of linking would be rather annoying to be honest. My players' don't have amazing memories, so a lot of notes are good to have. And I am a generous master... he he

Vires Animi

Nickademus
September 19th, 2015, 23:12
Any sharing of story entries in the current 5E OOTA would qualify. The creator of the module added next previous links for easier browsing of content. In this scenario, sharing of any story record would share all story records.

Regards,
JPG

This is not exactly what I was asking about. In that instance, no embedded links should be shared (I would think). I'm asking about the further degrees of sharing. Why would a GM want to share a OOTA story entry and the next entry but not the next one after that? That seems to be the scenario presented for more than a share-embedded/don't-share-embedded toggle.

damned
September 20th, 2015, 02:58
Viresenami - you could export that data as a module and share the module?
Nickademus - I cant. I often share story items but (afaik) I never share story with additional links. I do create modules the way OotA has been done - I just dont add those links on player handouts.

viresanimi
September 20th, 2015, 09:58
@ Damned: Why would I do that, when I can do in the campaign? Seems like "crossing the river to get water" as we say here in Denmark. And then I would need another campaign to keep track of that and then I would need to update and export it every time I wanted to add a bit to my players' database. It just seems like a very very unnecessary load of work, for something that should be extremely easy and straight forward.

Look, I get it. If you just run short scenario's in 5E where the missions / quests and so on are selfcontained stories which can be anywhere, then yes, modules are great. I've done that in 5E myself. Because it is the most efficient way of handling a dungeon. But if you run a campaign for months with the same npc's, same locales, same maps, etc. then modules become a burden. I know. Because that is how I started doing it. But in most cases modules are a pain. In fact the ONLY instance where I make modules is when I make a dungeon for D&D. Because those are selfcontained pieces of story I don't need afterwards.

My view is this: This is not "D&D the tabletop simulator" but "Fantasy Grounds, the rpg simulator" and there are a lot of play styles and ways to use the programme. So in my opinion, it is best to have as many options as possible, so people can use FG the way they like. Now, if my preferred method is a problem coding wise or makes things hard for the devs and they decide to take it out, I can respect that. I just don't feel like taking options out, for the sake of taking them out is a good idea. The optimal thing in my opinion, would be if the GM could choose how sharing works in the options menu. Again, this has to be weighed against time and effort - which of course is out of my hands.

I am just a big fan of choices.

I even pretty sure the change in how sharing works was due to me saying something about it. I have the utmost respect devs here and the work they do and amazed how much they listen to the community. I've voiced my opinion (which I believe was what this thread was about) and am confident that, whatever the devs decide to do, will be right for the community. And I am good with that.


Vires Animi

dulux-oz
September 20th, 2015, 10:16
I've been using the ability to share things rather extensively in my Vampire campaign. There is a lot of material to keep track on in regards to the city in which the campaign is set. Having only one layer of linking would be rather annoying to be honest. My players' don't have amazing memories, so a lot of notes are good to have. And I am a generous master... he he

Vires Animi

Just out of interest (and stroking my own ego :p ) - are you using the Locations extension for this, and is that why you're hanging-out for the next version?

viresanimi
September 20th, 2015, 11:49
Nope. I was going to use it for something else, but some of the buttons generated errors, so I wanted to wait. So why are you posting here when you can code??? heee heee
Seriously though, I didn't become aware of it, until much later in the campaign, where it didn't make much sense to start using it. I will definately use it in other campaigns.

Vires Animi

dulux-oz
September 20th, 2015, 12:04
Nope. I was going to use it for something else, but some of the buttons generated errors, so I wanted to wait. So why are you posting here when you can code??? heee heee
Seriously though, I didn't become aware of it, until much later in the campaign, where it didn't make much sense to start using it. I will definately use it in other campaigns.

Vires Animi

That's cool - I was genuinely interested if you were using it for your campaign (I was going to hit you up for some feedback, as well)

Why am I not coding? Because I've got to sleep sometime :p (I'm watching some A o SHEILD to relax before I go to sleep - after a hard day's coding)

Cheers

Moon Wizard
September 27th, 2015, 06:52
I'm actually moving forward on this concept of links within records have the ability to be toggled to "public" or "private" (with private as the default). However, I'm concerned about any confusion by using the word "public" denote the link state, since it's not quite the right word (though it may be the best option given how it works). I couldn't come up with anything better, so I figured I would ask the community to see what I get. I might be overthinking this, but why not find the right words if I can.

Here's how it's supposed to work:
* When a link is marked "public", the link will be immediately "shared" with anybody who can view the current record.
* When a link is marked "private", the link will be immediately "unshared" with anybody who can view the current record.
* When a record is shared, any links marked "public" will be immediately shared with the same user(s).
* When a record is unshared, any links marked "public" will be immediately unshared with the same user(s).
* Links will be followed for sharing/unsharing as long as "public" linkages are found.

The closest word that I came up with is "conjoined", which I feel is too esoteric to be used as part of a user interface.

Any ideas?

Cheers,
JPG

dulux-oz
September 27th, 2015, 07:06
I'm actually moving forward on this concept of links within records have the ability to be toggled to "public" or "private" (with private as the default). However, I'm concerned about any confusion by using the word "public" denote the link state, since it's not quite the right word (though it may be the best option given how it works). I couldn't come up with anything better, so I figured I would ask the community to see what I get. I might be overthinking this, but why not find the right words if I can.

Here's how it's supposed to work:
* When a link is marked "public", the link will be immediately "shared" with anybody who can view the current record.
* When a link is marked "private", the link will be immediately "unshared" with anybody who can view the current record.
* When a record is shared, any links marked "public" will be immediately shared with the same user(s).
* When a record is unshared, any links marked "public" will be immediately unshared with the same user(s).
* Links will be followed for sharing/unsharing as long as "public" linkages are found.

The closest word that I came up with is "conjoined", which I feel is too esoteric to be used as part of a user interface.

Any ideas?

Cheers,
JPG

Why not "Shareable" & "private" instead of "public" & "private"?

Moon Wizard
September 27th, 2015, 07:10
Actually, thinking back, I did think of "shareable", but kept thinking it was a very uncommon usage of "share" in English. I think I'm up too late at this point. ;)

JPG

dulux-oz
September 27th, 2015, 07:20
Actually, thinking back, I did think of "shareable", but kept thinking it was a very uncommon usage of "share" in English. I think I'm up too late at this point. ;)

JPG

Oh I don't know - it certainly captures the act of what you are trying to achieve (IMNSHO), and "Shareable" isn't all that uncommon or strange a usage - or maybe I just play too many Crossword puzzles :p

Nickademus
September 27th, 2015, 07:25
However, I'm concerned about any confusion by using the word "public" denote the link state, since it's not quite the right word (though it may be the best option given how it works). I couldn't come up with anything better, so I figured I would ask the community to see what I get. I might be overthinking this, but why not find the right words if I can.

Communal

kylania
September 27th, 2015, 07:38
Communal

That's absolutely a correct word for this, but looks completely wrong to me and in this context I think would just be confusing.

It would sound funny to me to say "All the assets you have available are communal" or "You have access to communal assets" even though that's technically correct English. "All the assets you have available are shared" or "You have access to shareable assets" sounds much better to me.

The Sole Proper Usage of the word 'communal' is in regards to 'showers'. :)

damned
September 27th, 2015, 08:57
Public/Private/Shareable/Available - I think id stick with Private. You know you probably dont even need two terms - if its just an on/off choice - Private works.


https://www.fg-con.com/wp-content/uploads/2015/09/fgcon7-banner1.jpg (https://www.fg-con.com/events/)
FG Con 7 – Fright Night! October 16-18th 2015 - register at www.fg-con.com (https://www.fg-con.com/) for all the latest info.

Nickademus
September 27th, 2015, 11:36
You should use the word 'base'. Then when the GM shares a record with links the players can say "are your base are belong to us".

Crymoricus
September 27th, 2015, 20:38
I think the man asking the question has come up with the best answer, honestly. Sounds great to me.