PDA

View Full Version : Learn how to Develop with me



frostbyte000jm
August 18th, 2020, 15:42
I am attempting the protégé effect (improve your knowledge by teaching others). I am starting a video series to teach basic development for Fantasy Grounds. I will mostly be using the MoreCore (thanks Damned) ruleset as my base and show people how I make extensions to customize my games.

These will mostly be simple things like adjusting dice rolls, adding fields to character sheets, and more. My first video (video 03, it makes sense when you see it) is how to revise the XP setup between the character sheet and the party sheet to work for World of Darkness or games where XP is more like a currency than status. My next two videos I plan on teaching how to make/edit/revise a character sheet and how to build a custom dice roll.

There is a lot of great information on the Forums and development guides, but sometimes we need that "show me how to get started" step.

These videos will be slow coming as I work about 50+ hours a week building tax software and I am attending classes to finish up some BS degree in computer science (read that however you want).

I hope people get something from these videos, the goals is to get more hobby developers and maybe I will learn something along the way.

Let me know what you think, if you have suggestions or know how to make something better, I would love to hear it.

https://www.youtube.com/playlist?list=PLdNTLeOzaWPs_S6g7JHBUxMhCdF8iXxOr

LordEntrails
August 18th, 2020, 19:09
Cool, looking forward to it :)

superteddy57
August 19th, 2020, 00:31
Loved the approach and style so far. Keep up the good work!

frostbyte000jm
August 19th, 2020, 02:12
Thank you, I appreciate that.

Valyar
August 19th, 2020, 07:46
While I always welcome tutorials and guides on how to develop for FG, I wonder - why you selected More Core to teach someone without any or with little experience how to develop? I find MC or any other ruleset that layers on top of CoreRPG very bad approach because of the complexity and layering that happens and all the overwrites that can be encountered.

If I was going to make tutorials to really help people understand how to work with FG I would use CoreRPG and I will explain all the concepts in easy to understand way - layering, structure, how to use and read templates properly, what are the basic controls and forms. The documentation of FG was always subpar and explanation on the most used and tricky parts is needed. For example using absolute and relative anchoring and positioning of interface elements. How to make layouting and how to link interface element with automation. How to make rolls (we already have this here, but some people want video and etc.).

Using MC is like starting in the middle when you don't have the basics.

superteddy57
August 19th, 2020, 12:02
I started with modifying MoreCore making specialized extensions for various systems. It's not a bad starting point. You can make small changes and tinker, but still play while your developing. Modifying and adding content to MoreCore follows the same ideas and processes as if you were working from a fresh layer of CoreRPG. So this can be used no matter the starting point. You are correct that damned did create some templates and constructs that might not be in CoreRPG itself, but if you want that functionality in your new system, it'd have to be added anyway. So, in my opinion this is a great addition and if it helps the OP, or any other forum member, then I say continue and show the progress.

frostbyte000jm
August 19th, 2020, 20:19
Using MC is like starting in the middle when you don't have the basics.

Thank you for the feedback, however, that is very much what I am going for. Following what @superteddy57 said, I also started with MoreCore.

When I started my CS Degree, we didn't start from the basics. We were given something that was developed and asked to make changes. My education started with getting the sprite in space invaders moving left and right. All the framework was there, all I had to do was make tweaks to get it to work. My friend at Harvard, they had him started with Scratch (the MIT drag and drop language). They slowly stepped us up to understanding what was all in that framework. We didn't start learning the real basics until Data Structures (1301 was basically coding 101, 1302 was more advance, then Data Structures was next), that was the first time we created something from a notepad.

I made a Feng Shui game in Core, it wasn't very good (it wasn't really good at all, but it worked), but it was a lot of work to get to what I needed. I don't want to put people through that, I want them making simple changes, that are helpful, without a lot of work, and seeing those changes right away.

@Damned has a lot of framework created in MoreCore, and this will get people with little to no experience up and going quicker. There are also a lot of blocks that are very much copy, paste, revise names. I made my Mage the Ascension character sheet using the frames he has established on his "More Data" page, I had maybe a day to get something ready. One of my next videos are on dice. I want to hand them an extension that has all the framework to work with Damneds custom dice roller, and they can just add in their own dice logic, and it will work.

Once their ready, then I am hoping myself, or someone more experienced, will do some videos on going back to starting from Core.

Does that make sense?

johniba
August 19th, 2020, 20:28
Thank you for the feedback, however, that is very much what I am going for. Following what @superteddy57 said, I also started with MoreCore.

When I started my CS Degree, we didn't start from the basics. We were given something that was developed and asked to make changes. My education started with getting the sprite in space invaders moving left and right. All the framework was there, all I had to do was make tweaks to get it to work. My friend at Harvard, they had him started with Scratch (the MIT drag and drop language). They slowly stepped us up to understanding what was all in that framework. We didn't start learning the real basics until Data Structures (1301 was basically coding 101, 1302 was more advance, then Data Structures was next), that was the first time we created something from a notepad.

I made a Feng Shui game in Core, it wasn't very good (it wasn't really good at all, but it worked), but it was a lot of work to get to what I needed. I don't want to put people through that, I want them making simple changes, that are helpful, without a lot of work, and seeing those changes right away.

@Damned has a lot of framework created in MoreCore, and this will get people with little to no experience up and going quicker. There are also a lot of blocks that are very much copy, paste, revise names. I made my Mage the Ascension character sheet using the frames he has established on his "More Data" page, I had maybe a day to get something ready. One of my next videos are on dice. I want to hand them an extension that has all the framework to work with Damneds custom dice roller, and they can just add in their own dice logic, and it will work.

Once their ready, then I am hoping myself, or someone more experienced, will do some videos on going back to starting from Core.

Does that make sense?


That is a great approach, i dont know of many places that teach that way.

I am self-taught in a lot of things, specially when it means computers, and during university i got frustrated a lot on the way they tried teaching stuff, usually only getting people confused.

I always compare learning a new computer language as learning human language.
Start looking at existing code and making sense of how it works.
After that, try modifying the code.
Later, you start to see places you can improve the code, and finally, you can write code from scratch.

Just like in normal languages, when we are thinking, writing or talking, we are always using common sentences, sometimes even using stuff we recently heard or read.

Such is the same with computers, but people sometimes dont do it that way.

I started looking at Fantasy Grounds code in january this year, and it was confusing to me.
At the beginning, i looked at parts of the code and just accepted it worked, without really knowing why, so i started copying.

Fast-forward to now... I am almost done creating a ruleset for Genesys RPG, and looking back i can see a lot of things now i can do better.
Still i copy behaviour and parts of code to other parts, but now i feel more in control, like i know how it works

I am far from mastering it, but i feel like if i have an idea, i can make it happen...

It is great working on this, i havent been this motivated coding since i was a young lad....

frostbyte000jm
August 19th, 2020, 21:27
I always compare learning a new computer language as learning human language.

Start with the swear words?

I hope you will be sharing your Genesys RPG. I would be excited seeing how you tackled a few things in there.

johniba
August 20th, 2020, 02:28
Start with the swear words?

I hope you will be sharing your Genesys RPG. I would be excited seeing how you tackled a few things in there.

I would love to share what i learned and some things i did over a stream or even on forum.

Btw it is already available. I still need to finish a few things though

https://www.fantasygrounds.com/forums/showthread.php?53302-Genesys-(FFG-RPG)-work-in-progress

Valyar
August 21st, 2020, 19:49
Once their ready, then I am hoping myself, or someone more experienced, will do some videos on going back to starting from Core.

Does that make sense?

Of course :) I understand your approach and it is valid one. I am simply supporter of the other school of thought and teaching methodology as it has been proven more successful during the years in my practice. Keep doing those, I am keeping an eye on the channel.

frostbyte000jm
August 29th, 2020, 18:05
Hey everyone, I added a couple more videos to this series.

In this one I focus on how to parse dice strings and how to traverse through nodes like grabbing health from the Combat Tracker or a Table of Effects on your character.

In the git final files, I went a little further than the video by grabbing targets health values.

feel free to play around and if you have suggestions to do some of these things better, let me know. The goal is to share and improve.

I hope by next week I will be able to share my new Dice Template that will allow you to shop for functionality that you may need for your game. Fingers cross that School and Work don't take me too much away from my passion. :)

GunnarGreybeard
August 30th, 2020, 17:47
Hey everyone, I added a couple more videos to this series.

These are great! With the videos damned and yourself have put up I decided to restart work on my HârnMaster extension for MoreCore. This time with actual under the hood changes and not just relying on altering editable field 'after' the generic character sheet is loaded. I doubt I'll get to much done in the way of automation but at least I'm able to what I would call hardcode the text into the actual extension and add/remove unwanted fields so they load in new character sheets.

frostbyte000jm
August 30th, 2020, 20:56
These are great! With the videos damned and yourself have put up I decided to restart work on my HârnMaster extension for MoreCore. This time with actual under the hood changes and not just relying on altering editable field 'after' the generic character sheet is loaded. I doubt I'll get to much done in the way of automation but at least I'm able to what I would call hardcode the text into the actual extension and add/remove unwanted fields so they load in new character sheets.

Thank you! I hope this helps you with your extension. These have encouraged me to start actually paying attention to what the code is really doing instead of going “ehhh, it works... don’t touch it.”

frostbyte000jm
September 12th, 2020, 21:46
I have added another video to the series. This on is on creating Dice. It has a template that can be used with MoreCore and a toolbox so you can grab chunks of code to use with your project.

Hope they help: https://www.youtube.com/watch?v=4z84BrjFQCk&list=PLdNTLeOzaWPs_S6g7JHBUxMhCdF8iXxOr&index=8