DICE PACKS BUNDLE
Page 1 of 6 123 ... Last
  1. #1

    Third Party Development Community

    So bear with me here...I'm new to peering under the guts of Fantasy Grounds. Been using it happily for quite some time but only recently did I open up my data folder and type unzip. As a developer by trade, I figured why not.
    Some observations:
    - Learning the ropes can be rough. There's some documentation for the FG API's, but I was unable to find anything at all for CoreRPG. I had to just start pouring over the code for that. I managed to find one channel #mod_creation in the official Fantasy Grounds discord server where people have been super helpful. And I've bothered Kelrugem WAAAY too much with PM's to obtain what little knowledge I have thus far.

    - Knowledge silos galore! While people have been awesome, I've left myself wondering many times whether or not I'm doing things in a "Best Practices" approach in regard to FG extensions with the code I'm writing. People can be helpful, but people aren't really reviewing my code to give me suggestions aside from quick one-offs here and there on the discord channel mentioned above. It seems most people have their own extensions, many of those extensions (from what I've seen) are written differently and don't necessarily follow any kind of accepted convention. It's the Wild West out there!

    - Attached files of the Gods only know which version of what extension (links to posts in the middle of a 30 page thread to get to the currently active, latest extension file)

    - Single ownership of extensions. This means whenever there's a breaking change to either Fantasy Grounds API's or the ruleset the extension is based off of, folks are at the mercy of whoever wrote the extension to get it updated.

    - While I understand there's nothing wrong with this approach if people are happy, I'd love to gauge any interest in forming an actual development community for people who may want to take a step towards something more. An umbrella under which we can gather up a bunch of extensions and the folks who wrote them in one place where we can review code, provide insight and mentoring and generally help make both ourselves and our extensions better. I've seen a few extensions hosted on github and the like, and I've love to take that one step further with anyone interested.

    - My one and only extension (thus far) is hosted in gitlab. The benefits of putting things there (or somewhere similar) are:
    - Anyone can readily access my code, file issues or suggestions, fork my code and make merge requests, etc.
    - Any time I check in any code, a new extension file is automatically built that can be accessed via a link. Using git tags, I can make essentially a permanent link to the latest version of my extension. No more uploading and re-uploading extensions files to the forum. One Link to rule them all!
    - Code reviews!
    - A far better experience when it comes to creating and tracking issues with your code. Bugs could be doled out to willing folks to fix and submit merge requests for.
    - A handful of people that are able to directly contribute to an extension as opposed to a single author, with everyone else able to fork and submit merge requests to those contributors for review.
    - Eventually a list of extensions that can be as close to guaranteed as you get to always being up to date (or will be very shortly), will always follow the same conventions (in order to minimize/eliminate extensions not playing well together), and will have a handful of people ready and willing to help with any of the extensions whenever needed.
    - A community with which to ask questions about module/extension/etc development. Not to say this isn't already there (it is!) but, this would be far more code centered with people able to look your code over and provide specific input towards it. Even perhaps when someone wants to start a new extension, they solicit some help in the form of people signing up to mentor the development in the form of code reviews and the like. In time perhaps even a community driven wiki and documentation!

    Gitlab has the concept of a group under which any number of projects can live. The main purposes of a group is to collect a bunch of projects that have something in common (Fantasy Grounds!) but also to handle permissions, which can be set on a group wide level or on a per project level.
    I've even snagged the group name fantasy-grounds in gitlab and I'd be happy to move my extension into this group and start bringing anyone else along for the ride that's interested.

    Just food for thought. Anyone interested?
    Last edited by daddyogreman; February 19th, 2021 at 00:27.

  2. #2
    Was looking at this.
    Seems the link is broken.
    https://gitlab.com/ccthiel/CoreRPG-Combat-Enhancer

    Delay my last it is working now.

    Madman..
    Last edited by madman; February 19th, 2021 at 02:11.
    "Over thinking, over analyzing separates the body from the mind."...MJK... Tool frontman




  3. #3
    Oops! It was brought to my attention my extension link wasn't working. My fault! I thought I had that project set to public - it wasn't. Anyhow, just updated the project to public so the link above will work.

  4. #4

  5. #5
    I see nothing inaccurate in anything you say. However, while most extension developers would be happy to give their advice, I think your work is cut out for you to find people willing to code review another's extension.

    Speaking from being here since June of last year, learning .lua/.xml from scratch using only existing free extension as my first learning tool that I modified for my own uses and then put out in these forums with permission from the original author, and learning all of this from scratch using notepad++ (searches with unzipped 5E/CoreRPG code), and google searches... and of course the dev document...

    My firm opinion is you can only become an expert and learn by making mistakes. Honestly its more time consuming and more prone to error but you will learn things you would not otherwise simply being told how to do it.

    Plus, I would HATE to have anyone code review my code - some of its huge and been rewritten many times and had to be trial and errored past bug and simple it can't be done things to gerry rig it into a working thing. You can't learn that with a code review. Only blood spilled in the trenches will get you that kind of knowledge. Then... when you finally get something working.. and you look back at that feeling you had before you started of it all being crazy and unknowable?

    That felling will double.

    Do it the hard way is my advice, its the only way you can survive in this crazy environment of extension writing. Probably the only one that thinks this way but truly IMHO.
    Last edited by SilentRuin; February 19th, 2021 at 02:24.
    Free(Forums/Forge) Extension(FGU 5E):
    Paid (Forge) Extension(FGU 5E):

  6. #6
    Quote Originally Posted by Nylanfs View Post
    I assume you have found the Armory and the Workshop?

    How about the #mod_creation channel in discord?
    Yup. People have been super helpful in the discord channel and I'm hoping my post doesn't come across as bashing the community or anything! People have been really friendly and helpful and I'm quite grateful.
    I just feel like posts on a forum isn't necessarily the best way to go about collaborating over code and I think building out a community around a tool that's made exactly for sharing and collaborating with code could have some fantastic results in the form of established coding conventions, mentorship, code reviews and many other things.

  7. #7
    As a case in point, the extension i just released isn't ground breaking in any way. I just added a couple things that were already available in other extensions together into one small extension but the main point was that I'm no longer reliant on someone else to fix it if it's broken. ( Well and in this case to bring it out and under a CoreRPG extension).
    If the extension had multiple maintainers I probably wouldn't have done this to begin with. (Except I really wanted this to be CoreRPG but that's kinda an exception)
    Last edited by daddyogreman; February 19th, 2021 at 02:56.

  8. #8
    And as another case in point, anyone using my extension is free to fork it and fix an issue if there is one and they don't want to wait for me to get around to it. Then they could submit a merge request back into my repo and voila! Community development on an extension and I wasn't a bottleneck for anything! And if they keep doing it, I eventually just grant them permission to commit straight to the repo WITHOUT a merge request and then there's multiple people maintaining the extension and then we all sing Kumbaya and have a campfire.
    That's my goal, anyway.

  9. #9
    LordEntrails's Avatar
    Join Date
    May 2015
    Location
    -7 UTC
    Posts
    17,242
    Blog Entries
    9
    As stated, none of your observations are wrong, not really. But as you already know, it takes a leader to put something like this together. So far, no one has stepped up to do that. Plus, it's one of those things that can't be regulated, so if it works, it is going to take time to bring other developers on board, by showing them the advantages to themselves of joining.

    Some folks won't want to learn Git, others won't want to be responsible, and some just won't know etc, etc, etc. But, over time, such may develop if their is someone to lead and provide value over time.

    Two things to be aware of;
    - The FG Forge. SmiteWorks is currently developing a tool for distribution, updating and monetarization of community extensions. We have little ide of how this might work, and it might even be done with a Git (or similar) backend.
    - Licensing. Many of the older extensions were posted without any type of share or licensing statement. Therefore folks need to take a conservative approach and not re-use without permission. One of my own pet projects is to get folks to be explicit about the license the want to post their extensions with. So that (hopefully) others developers can take up their code in the future. See the link in my sig for the start of the effort in that regards.

    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.

  10. #10
    Quote Originally Posted by daddyogreman View Post
    So bear with me here...I'm new to peering under the guts of Fantasy Grounds. Been using it happily for quite some time but only recently did I open up my data folder and type unzip. As a developer by trade, I figured why not.
    Some observations:
    - Learning the ropes can be rough. There's some documentation for the FG API's, but I was unable to find anything at all for CoreRPG. I had to just start pouring over the code for that. I managed to find one channel #mod_creation in the official Fantasy Grounds discord server where people have been super helpful. And I've bothered Kelrugem WAAAY too much with PM's to obtain what little knowledge I have thus far.

    - Knowledge silos galore! While people have been awesome, I've left myself wondering many times whether or not I'm doing things in a "Best Practices" approach in regard to FG extensions with the code I'm writing. People can be helpful, but people aren't really reviewing my code to give me suggestions aside from quick one-offs here and there on the discord channel mentioned above. It seems most people have their own extensions, many of those extensions (from what I've seen) are written differently and don't necessarily follow any kind of accepted convention. It's the Wild West out there!

    - Attached files of the Gods only know which version of what extension (links to posts in the middle of a 30 page thread to get to the currently active, latest extension file)

    - Single ownership of extensions. This means whenever there's a breaking change to either Fantasy Grounds API's or the ruleset the extension is based off of, folks are at the mercy of whoever wrote the extension to get it updated.

    - While I understand there's nothing wrong with this approach if people are happy, I'd love to gauge any interest in forming an actual development community for people who may want to take a step towards something more. An umbrella under which we can gather up a bunch of extensions and the folks who wrote them in one place where we can review code, provide insight and mentoring and generally help make both ourselves and our extensions better. I've seen a few extensions hosted on github and the like, and I've love to take that one step further with anyone interested.

    - My one and only extension (thus far) is hosted in gitlab. The benefits of putting things there (or somewhere similar) are:
    - Anyone can readily access my code, file issues or suggestions, fork my code and make merge requests, etc.
    - Any time I check in any code, a new extension file is automatically built that can be accessed via a link. Using git tags, I can make essentially a permanent link to the latest version of my extension. No more uploading and re-uploading extensions files to the forum. One Link to rule them all!
    - Code reviews!
    - A far better experience when it comes to creating and tracking issues with your code. Bugs could be doled out to willing folks to fix and submit merge requests for.
    - A handful of people that are able to directly contribute to an extension as opposed to a single author, with everyone else able to fork and submit merge requests to those contributors for review.
    - Eventually a list of extensions that can be as close to guaranteed as you get to always being up to date (or will be very shortly), will always follow the same conventions (in order to minimize/eliminate extensions not playing well together), and will have a handful of people ready and willing to help with any of the extensions whenever needed.
    - A community with which to ask questions about module/extension/etc development. Not to say this isn't already there (it is!) but, this would be far more code centered with people able to look your code over and provide specific input towards it. Even perhaps when someone wants to start a new extension, they solicit some help in the form of people signing up to mentor the development in the form of code reviews and the like. In time perhaps even a community driven wiki and documentation!

    Gitlab has the concept of a group under which any number of projects can live. The main purposes of a group is to collect a bunch of projects that have something in common (Fantasy Grounds!) but also to handle permissions, which can be set on a group wide level or on a per project level.
    I've even snagged the group name fantasy-grounds in gitlab and I'd be happy to move my extension into this group and start bringing anyone else along for the ride that's interested.

    Just food for thought. Anyone interested?
    As I wrote on Discord, I would be interested into that; Bmos also uses on GitHub, so, I think Bmos may be interested into that, too

    So, for the 3.5e/PF1 community I think this may be possible, as you may have already seen, we already try to help each other here on the forums to make our extensions compatible But as you also know, for me it takes a bit until I can look at those things

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
5E Product Walkthrough Playlist

Log in

Log in