PDA

View Full Version : FGU Best Practice - Not Features Request



Griffonbait
December 23rd, 2024, 05:11
Hi everyone,


I have come across a number of issues with using FGC, and now FGU, over the decades. While the FGU features videos and documentation are great, there does not appear to be official support for the average GM in how best to use/setup FGU. Please let me know if I am wrong here.


This is a request to SmiteWorks to produce Best Practices documentation (PDF-style/webpages, &/or videos, etc.). FGU is regularly increasing in complexity, but I am not talking about in-game use, or when playing - although that could improve the UX for GMs, given my request.


I am discussing here the Best Practices of data/resource/content management within the Fantasy Grounds data folder itself. This is not about how best to organise campaign content, such as linking storylines and the flow of a campaign/adventure, but rather, the file system itself.


For all of the awesome qualities of FGU, I am sure many of you, like me, have multiple gigabytes of content within the data folder (images, PDFs, commercial/non, etc.). My most recent 12-year-old campaign folder alone was holding over 4 GB of data, with the current Fantasy Grounds folder holding almost 23 GB. I suspect this is small in comparison to some others.

It has come to the point that I avoid doing an ALL-Assets search when in-game. When developing my campaign, and I actually do an ALL-Assets search, it takes FGU upwards of 15 minutes to complete. This is with an SSD! Selecting Tokens/Portraits/Images only does not generate the same problem, just when dealing with All content.



Best Practice Questions for FGU developers would include:


1. What is the best way to organise my data?


- Is it best to have all portraits ever used in the root\portraits folder?



- What about tokens? Is it the same for them? (It is not like you can't use them in other campaigns)



- Apart from the obvious collation of assets, why even have separate campaign folders for Tokens/Portraits/Images, when these are already catered for in Fantasy Grounds' root folder, which can also accept separate subfolders?



- Is there a limiting factor, or a point of diminishing returns, in GB size, &/or the number of files contained in the Fantasy Grounds folder, or the Campaigns folder?



- What about for the individual subfolders, (root\)Tokens/Portraits/Images?



- Is it best to limit the size of the FGU campaign database file (obviously) and how big is too big?

2. Should I use Shortcut files that link to folders containing terabytes of data ready for importing into FGU?


- Does FGU even look at/recognise Shortcuts?

3. Why doesn't FGU Assets have a Map category separate from the Images category? (Especially since it is a key aspect of gaming, and not all images used in-game are only limited to Tokens/Portraits/Maps)


4. How is it best to run a campaign/adventure, especially if it is going to be used multiple times over the course of its life?


- Should I have a separate development campaign with the permanent assets (stories, NPCs, Parcels, Quests, Images, etc.) to be used, saving it as a module (export), and then Load said module in the active campaign?



- Then to add any transient data into the running campaign (PCs, random encounters, and on-the-fly maps, etc.) and any other random bits used? (These are advanced concepts, and not new user/GM friendly)



- Or are there better ways to do things?

5. If there are Best Practices that the developers suggest using, then why not build automation into the base program, and direct players &/or GMs into their use.


6. Without knowing how the program code is written, can the developers suggest how FGU is best used?


- With the modularity/extensibility of the FGU main program, it is a heavily compartmentalised piece of software without a unifying method of operation. For example, there is no way other than dragging a link token to a Story page to add said link. Nice, simple, and consistent, until you are several windows deep looking for the right link - screen space is precious.



- When in a rich text field, why not provide a "ribbon" of editing buttons like in a word processor, or when writing emails (Add Image/Link/URL/File, let alone Bold, Italics, etc.)? Moving to another window removes the user from the editing mindset. The idea of adding a link, say, should: open a dialog to specify the type and location of the link, then, upon closing, the user is returned back to the editing window - no searching for the current story window being edited.



- I am aware much of this has been mentioned previously in spits and farts.

7. With the new Books feature, why can't we create Books ourselves, similarly to the Story creation method?


- When creating a new Book, a new Story Group specifically linked to that Book can automatically be created - in which all the Books content pages are stored.



- At present the export/activate module method is the only way to get your own scenario books into your campaign - and this means multiple dev campaigns each with their own individual scenario - definitely not good for my open world campaign of 46 scenarios and counting! Scenario management is a nightmare, especially having to keep each dev campaign available to fix errata.



- The best thing about my multiple dev campaigns and module exporting is that I can Load/Unload them, and/or make them available for player loading. This also has the benefit of keeping the campaign database file size smaller.



- A way to archive and return old campaigns would be a welcome feature, in say a "Fantasy Grounds Archives" folder - other than having to do it externally, away from the main program.



- I am doing this myself already by creating my own archives folder for old campaigns in order to limit the number of active campaigns being listed when loading a campaign. And I also have a separate Fantasy Grounds data folder for testing purposes, which requires me to alter the Settings of the data folder location prior to updating. So now I have multiple root\ data folders that also need to be updated.


I think I have dribbled on enough. I hope this makes sense.


At present, I am running up against barriers in my campaign creation/file management, having to search for answers and not find them, or find partial answers. Listening to campaign development and reading the FGU documentation has helped a lot, but it is requiring me to figure out the process myself (and yes, that is enjoyable in its own right), hence the request for a Best Practices info dump - that also needs to be kept up to date when said Best Practices change.

I am not asking for these questions to be answered here. It will defeat the whole purpose of much needed Best Practices documentation and exacerbate the spaghetti nature of solutions to problems people are having - just one more post you have to find.

Cheers.

Zacchaeus
December 23rd, 2024, 08:36
1. This is up to you how you store your images/portraits/tokens. You can store them outside of FGU or in the top level of FG Data. The more of these that you have inside of FGData the longer it will take to index them on start up; but otherwise there's little impact. You need to store the images and tokens inside a campaign if you are exporting from that campaign.

2. Not sure what you mean by this.

3. Maps are not a specifically different format from any other image. In other words FG sees a .jpg or a .webp file then it's an image; it can't know that it's a map or something else.

4. Definitely have a development campaign for each different module you need or want to produce. And update that campaign and re-export when you make changes.

5. Not sure what you mean; there's extensive wiki documentation on the effects system and it's up to you and the players to read and understand how to use that. But you may mean something else.

6. I'm sure there are lots of ways to program any one thing. Are you saying that you want to see another method of linking other than drag/drop? The text editing features of FG are confined by the libraries that the original authors of the software used. THe windows in FG aren't really windows so it's not easy to have a ribbon with the various options in it. There are technical limitations.

7. You can create your own books. Click on Books and then on the campaign button. This will open up the Book creation interface. See video twenty-six here for how to create your book https://www.fantasygrounds.com/forums/showthread.php?55797-How-do-I-in-Unity. To export your book click on the Story entry in the export window list.

Laerun
December 23rd, 2024, 13:05
I have just performed a purge and do not regret it. I was at 32 GB of data in my FG folder. Start converting to webp format as soon as possible to save HD space and lessen your internet bandwidth burden when playing online, the sooner, the better for the long haul, AFTER you purge.
I have more discipline and experience now to help avoid these common pitfalls, such as unorganized assets, old extensions, modules and/or many unused campaign folders. Renaming images assets in the beginning, before adding into FG helps a lot for searching and organizing your custom content. Aptly named sub folders helps too.

When we have tons of assets and if you're not intimately familiar with the asset names or know exactly what you want, it's very challenging to find any specific asset with performing a mass summoning ritual (indexed search) each time...


I also avoid the "All" button for asset searches. Unfortunately, clicking the "Home" button defaults to "All".

The load or indexing time was only a few marginal seconds after everything was said and done on load times, not very much difference.

I do agree about information, it's scattered through here, the Atlassian, and Discord.

I had 8 years+ of a mess, I was not going to even try to fix that big rat's nest...Lol.��

I have learned what not to do over the years.
It's hard to convey best practices without knowing someone's use cases, play style, HD space, and familiarity with the FG platform.
I started my own naming convention for custom images, such as adding prefixes to an image file name such as...

File name examples:
map_###
prt_###
tkn_###
3D_###
art_###
npc_###


Maybe some of these YouTube videos might help?

https://www.youtube.com/live/NiFZ69SikyE?si=r_xl11fWtcAUM2CW

https://www.youtube.com/live/PnakR0u1Q5M?si=hTF2j4p0AdzfMWQs

https://www.youtube.com/live/bZ9FBYaElG8?si=uyz8KxBNbvNbKVWZ

https://www.youtube.com/live/fNttNJlmaxY?si=XPBIXMBlLLzLtjTQ

https://www.youtube.com/live/Y2OqCRNYOZc?si=9JezE-sZQh1g4Yqo

Cheers,
Laerun

LordEntrails
December 23rd, 2024, 16:02
I'm not a dev, and would love to know there thoughts on these issues too. I will add my own practices though as it may be helpful.

I do not store my image assets inside of FG. This comes from the habit when FGU was new and it could not handle lots of assets. For instances I have hundred of thousands of mapping assets. Forcing FGU to index these each time would be prohibitive. Lots of little assets (all of my Campaign Cartographer symbols and fills etc) has a big impact on indexing compared to some large assets. And having them in FGU vs outside where I can easily still get to them in FGU does not have any benefits that outweigh the costs.

I use development campaigns to organize my re-usable content (see link in signature). My 'play' campaigns are not where I store my world building and therefore are purged or archived when not needed (i.e. if you has a sub-folder in your campaigns folder called Archive, FGU will not look into campaigns moved to there.) Multiple dev campaigns, to me, is the best practice. Maybe you don't need one per scenario, but maybe you do. Depends on how you define a scenario.

Automation to enhance standardization is nice. If everyone can agree on what that should be. Which given the broad use cases I doubt people can. Besides, it would take away developer time from other projects they work on (which may or may not be of higher value to an individual, but is judged to be a higher value to the customer base).

Note, I suggest you put some of these suggestions on the Feature Request list. Best place for them to be voted on and maintained.

Griffonbait
December 29th, 2024, 04:38
Thank you to everyone who has replied, and to those who viewed the post.

I understand the nature of people wanting to provide solutions in the here and now, but that is not what I am asking for.

Zacchaeus (https://www.fantasygrounds.com/forums/member.php?30572-Zacchaeus)
: The very first sentence of your reply suggests that you do not understand the focus I am looking for here. The rest suggests you have little understanding of software engineering and hence are of little help here.

Re: 6., you have pointed me to the admittedly closest thing to a feature request in my original post, Book handling, however, the video suggested is outdated and misinformative. I do recognise that you state a solution to the wrong methodology in the video (without saying why it is wrong), select the Story check box, but this is not a solution when I have Story entries that I do not want to add to the export - some Story entries are for development and testing, and so, are temporary in nature. It requires me to individually drag hundreds of separate Story entries into the export window. What was presented in the years-old video is what is really needed - a checkbox specifically for Reference Manual. I know I can edit the XML files, but that is hardly a good solution. But I am digressing from my original focus, that being Best Practices. "This is up to you ..." just doesn't cut it, when it comes to the amount of data involved.

Laerun (https://www.fantasygrounds.com/forums/member.php?20113-Laerun): Yes, I too have dumped GBs of data from my FG folder. But then experienced the exact same issue in a brand-new development campaign, simply searching through Images only and going into one of FG's commercial/store product folders. It appears to me that the Assets window is searching and retrieving both filenames and thumbnails for all relevant data. I suspect it is the thumbnail collecting that is causing the slowdown.

So, what are the developers expecting the users and creators to do? We need access our data on the fly in-game. The devs deliberately point to that very use of the software - Quick Maps, for example, but the software doesn't play well with the devs' intent.

You say, "It's hard to convey best practices without knowing someone's use cases ...", but this comes from thorough testing of the program and its separate internal structures. Testing is a big thing in software development - some devs focus on just that alone!

Organisation, however, is not a problem for me with my background. Not knowing what and how the program is communicating with the OS in the background can trump anyone's best efforts, hence the request for data folder limitations, and not "how do I do this in the program?".

LordEntrails (https://www.fantasygrounds.com/forums/member.php?34276-LordEntrails): Thank you for the support. You clearly have put a lot of thought to your use of the software vs external data. Your methodology suggests you are using an external program to manage images on the fly - locating files, copy and pasting them, then reloading the Assets window to finally access the images.

Your comment about "it would take away developer time from other projects" suggests that the developers just slop together what works and move on. In my experience of software development, you have to think deeply about your algorithms/coding and its impact on the system, especially with filesystem/OS calls. The devs clearly come up with solutions, and in their heads, they know why, but this needs to be documented in a Designer's Notes database and anything relevant to software usage/practice that impacts performance and/or UX should be made available to all users as a Best Practices document (in one location).

I know this all takes time and money, and I am not complaining here about the devs - their work is what enables us to do what we do, and it is great! I am complaining about the systems in place to get relevant information out to the users, hence it being posted into the Tavern forum and not feature requests. This gives everyone a chance to mull over the ideas presented and hopefully add to the discussion.

Thank you for listening.

damned
December 29th, 2024, 05:18
So, what are the developers expecting the users and creators to do? We need access our data on the fly in-game. The devs deliberately point to that very use of the software - Quick Maps, for example, but the software doesn't play well with the devs' intent.

You can add a new image at the time you need it or at the start of the session and it will still be much quicker than the slowdown you will experience by having FG indexing thousands of images that you wont use in this campaign. I understand its not the answer you want but it is likely the best answer.

Zacchaeus
December 29th, 2024, 09:36
The focus I supposed you were looking for was how to clear out your enormous amount of files from your FGData and campaign since the amounts are extremely large and as you say are slowing down your sessions. Hence you can store the files wherever you want - outside of FG, on a separate drive or in a different folder in the same drive. Wherever you want really. Only those images that you need for the campaign you are running need to be in the campaign at any one time. If you need an image on the fly then you can import it into the campaign using the blue import button at the bottom right of the images window. This will open file explorer in windows (or the equivalent in whatever OS you are using) and you can use that to navigate to the image you need. This is probably faster than trying to use the FG assets search to find what you need.

As I said if you are exporting from a campaign you do need the images and tokens inside your campaign folder if you want to export these. But otherwise you can store images wherever you want.

For module creation the best practice is to have different campaigns for each module you want to make. It's probably too late for you to follow that now if you have a single campaign with 43 scenarios in it. You can, as you say, drag individual stories and export just those into a single module and you could then open that module in a new campaign, make copies of those entries and that would give you a campaign with just those stories in them. Another method might be to make copies of your campaign and then delete the entries that you don't want leaving only those for the scenario you want in that campaign. Both are fairly laborious; however that would be the only real way to separate everything out into different campaigns.

Griffonbait
January 4th, 2025, 01:35
Thanks for replying guys.

I must say that nothing mentioned is new to me, nor does it solve the problems FGU has created and continues to make worse for everyone! This is why effective use and implementation of an SDLC methodology is so crucial. This does not appear to have been done effectively, or if it has, the problems being created are growing and being ignored.

The biggest problem is the Fantasy Grounds website, commercially available files and images, either in map sets, or tokens, etc.

Why? Because FGU regularly updates the program and/or rulesets are regularly updated, plus other mods. These files must be in the FGU data directory. You can move them, sure, but the next time you update FGU, they will all be downloaded again, even if you already have the most recent version stored somewhere else.

Secondly, when looking for assets, they tend not to be in the campaign folder already - tokens, maps, etc. as previously mentioned. When importing your campaign image assets, that is the easy part - import all files.

It is when a user needs to explore outside of the Campaign folder and into the FGU-sanctioned commercial products folders.

I am going to have to stop purchasing visual content from the FGU store just so I can search my purchases!

Maybe a solution lies with the modules' component. That is, provide a way to activate commercial products so that they can be searched. If it is not activated, then its contents are not searchable and hence do not impact the searchability of the ALL-assets option, or any other search categories (from my experience).

Cheers.

claedawg
January 4th, 2025, 07:19
7. With the new Books feature, why can't we create Books ourselves, similarly to the Story creation method?

You can create your own book in the campaign by going to the sidebar menu.

Library > Books > click on the Campaign button at the top right of the new window. This will open up the Book for that campaign and you can modify it separately from the Story entries. When you open an external page from the new Book it will also create an entry in the Story menu and changes made to either will transfer.

As for not exporting Story entries, I would suggest only using the Story menu Stories for things you do not want shared in the exported mod. When you choose to Export make sure that Story is not checked. The Stories that were created from Book entries are not needed in the export. When the module is used in a new Campaign, when you open specific page (usually to share with players) it will create a new Story entry (and I believe the player should only have access to that Story entry and not any other "pages" from the Book).


If you have Story templates for the specific module you are working on, fortunately, Story Templates is a separate category for Exporting.

3. Why doesn't FGU Assets have a Map category separate from the Images category? (Especially since it is a key aspect of gaming, and not all images used in-game are only limited to Tokens/Portraits/Maps)

It would be nice if they used a separate folder for maps. They already have Images, Portraits and Tokens; so FG can "distinguish" between image types, based on folder origin.

On a side note, I wish FG allowed players access to their own Token and Image folders. As it stands now, Players only have access to their Portrait folder when logged into a game. A Feature Request was just submitted the other day about this.

Zacchaeus
January 4th, 2025, 09:35
As for not exporting Story entries, I would suggest only using the Story menu Stories for things you do not want shared in the exported mod. When you choose to Export make sure that Story is not checked. The Stories that were created from Book entries are not needed in the export. When the module is used in a new Campaign, when you open specific page (usually to share with players) it will create a new Story entry (and I believe the player should only have access to that Story entry and not any other "pages" from the Book).

If you don't tick the story entry when exporting none of the story entries will be exported so the book will not export. Story entries are now one list divided into advanced story entries (book pages - previously reference manual pages), and other story entries which are the same as they always were. All story entries appear when you click the story menu option on the right. The advanced story entries create the book accessed via the Book entry on the right.

If you want to create a book that is player facing then you are best creating a new campaign and creating the book in that campaign since you can't export a mix a shareable and non shareable module at the same time.

Temmpest
January 4th, 2025, 17:15
Hi Laeurun, what would you recommend to use to convert png files to webp format? All of my tokens are currently png files.

LordEntrails
January 4th, 2025, 17:28
Hi Laeurun, what would you recommend to use to convert png files to webp format? All of my tokens are currently png files.
I'm not Laerun, but I use GIMP with the BIMP add-on. It's let's me select files or folders for batch manipulation, including changing file format with the ability to adjust the quality settings. Since I use GIMP for cropping and removing backgrounds and other tasks, it's a great solution for me.

Temmpest
January 4th, 2025, 21:48
Awesome. Thanks for the advice. GIMP looks great. Just having an issue trying to install the BIMP add-on.

Mephisto
January 4th, 2025, 23:02
I would recommend IrfanView. I used it to convert all my assets to webp. Very easy to handle and very lightweight.

Griogre
January 5th, 2025, 01:50
I like IfranView as well but be aware it doesn't deal with transparency.

cwsoots
January 5th, 2025, 22:19
XnConvert is what I use: https://www.xnview.com/en/xnconvert/—fast and supports transparency.