GM Roster Utility

Previous topic - Next topic

CW

-In a previous thread Lee and I began discussing plans for a spread-sheet style program which can manage up to eight rosters of units (eight players, or teams if you will) for use in live games such as D&D or Warhammer. Any game in which the players must keep track of a large number of units, their attributes and their health.

Lee wrote:
=======

Btw one little tip I can give you is read up on the basics of databases, things like different tables etc as believe me it will help with regards to data management as I'm sure your aware RPG's can be very heavy on data storage with various weapons/armor etc. Not only that but a well organised data structure makes retrieving what you need easier & more efficient on storage as well as access. A flat database like a spreadsheet becomes a nightmare to maintain when you start getting more data.

I used to use MySQL to handle my data but am looking into the sqlite wrapper that is posted elsewhere on this forum. Setting up a database with multiple tables requires a bit more setting up & planning but it rewards you afterwards with easy access & maintenance.

Obviously I don't know your experience with regards to databases but if you need an example of what I mean please let me know  =D

Lee

CW

#1
Thx Fuzz.

I don't have any formal training in databases. I once wrote a set of utilities for use with a de-clawed cue-cat bar code scanner, to search, reference, alphabetize, add and delete items from a master list based on the bar code.

My current project will be a step above that, involving multiple and user-creatable libraries with entries of variable sizes. Every entry would have the same form and be separated by a "|" token. The form would be thus: four fixed attributes, UnitName$,  UnitDescription$, Unit_Health%, and Unit_PNG$ thumbnail path, followed by a series of attributes; StatName$ and StatValue, for however many stats a given unit needs. A set of these unit types forms a library, weather it be a Warhammer library, a D&D player library, a Creature library or so on. Units from any given library can be loaded into any of eight rosters, and thereby form a player army. So it isn't enough to simply look up units from a library, they have to be copied over to form player rosters which can then be modified as damage is done to a given unit. Rosters units must be deletable (when dead) or not (so they can be 'healed' or rezed.) In many ways managing the rosters will be more challenging than managing the static library lists.

Including weapons as items with their own stats would be problematic, for then we need some way of chaining a weapons 'unit' to a creature 'unit'.  Hmm.. We could include a simple descriptions of any weapons and damage potential in the text of the Unit description, or even display, in a very simple way, a given weapon as an attribute with its own health bar as one of the Unit attributes; but the ability to call up a library of weapons to pick and choose from for a given unit is an entire level of complexity, the implementation vision of which eludes me. But now that the seed is planted, I'll have to chew on it. Maybe that can be a goal for version 2.0.

The program itself will be fairly inert towards any given roster, unit or attribute. No animation, no automated updating of stats. Nothing taken for granted. The program largely won't know what a stat is or means. So any changes must be made by the GM. (Maybe I can grey a unit when it's health bar reaches zero.) The program will simply show a list of units on a roster with a 'health' stat bar next to it. Click on a unit and a detailed description including the full set of stats and a thumb-nail (if present) will open in a window. Up to two windows (for two units from up to two rosters) can be open at the same time. To change a stat, simply click on the desired stat and a set of buttons will appear by which the stat can be changed by +/- 1, 5, 10, 100. This will modify the stat, even taking it to a negative value. Very easy for a GM to modify on the fly in the heat of a game.

The real challenge isn't in the libraries, which will be very simple text file lists. The challenge will be in formatting all of this on the screen and keeping track of each stat location on the roster and in the pop-up windows so they can be clicked on and modified. Throw list scrolling in there and things will get very complicated very fast. That is what scares me about this project. I may be over my head. lol

Anyway, as a data-base, the libraries will be very bare-bones and simple things; which is all I can really handle.

I've never heard of MySQL. Do you think it might be of help given what I have in mind? I would love it if you can give me a link or two to check out.
I'm not worried about efficiency of library file sizes (at least for version 1.0), but the data must be in a format which can be easily fed into my Unit TYPE structures.
That being said, anything which can make the job easier will be very welcome, so I am eager to take advantage of any advice you can give.

Cheers, Lee!
-CW

Moru

MySQL isn't really an option here since that is a server you need to install and talk to with network commands. Makes installing your program a pain :-)

For the scrolling lists and so on, have a look at DDGUI that comes with GLBasic:
http://www.glbasic.com/forum/index.php?topic=2663.0


CW

Cool Moru. Thanks!!
-CW

kanonet

You dont need to install mySQL there are also portable versions, so include this with your program, start the mySQL server from program and be happy, would be possible. - But I think better way would be to use the SQlite port or use InIs, your own file format, etc...
Lenovo Thinkpad T430u: Intel i5-3317U, 8GB DDR3, NVidia GeForce 620M, Micron RealSSD C400 @Win7 x64

fuzzy70

I did say that I used Mysql in the past & will be taking a look at the sqlite wrapper that's posted in the forum.

Sqlite should be enough to handle the data but until I have a closer look at it I can't really say at the moment. Also depends on the amount of data involved, my previous programs had around 7 or 8 tables with close to 2000 records total (and I hadn't entered all the data lol).

@CW, I will post some more info in the next couple of days with more details. Don't worry to much about learning databases as only a small amount of things need to be learnt as you won't be building an enterprise solution ;D

Lee



Sent from my HTC Wildfire using Tapatalk 2

"Why don't you just make ten louder and make ten be the top number and make that a little louder?"
- "These go to eleven."

This Is Spinal Tap (1984)

fuzzy70

I will work on something more concrete when I get some info on D&D, Warhammer etc as tbh they are games I have not played around with in a very long time. GURPS was the last dealings I had with regards to RPG's and the major strength of that system was it was not tied to Classes or genres like D&D etc, so you had a common framework for any style campaign be it SCI-FI/Fantasy etc all bound by a common combat/stats system.

Reading your post yesterday was not so easy as I wasn't at home & the small screen on my mobile made it difficult for me to understand the context of your post fully.

It should be possible by looking at what you are attempting to do to skip the use of SQL and such & just stick with TYPES, but using the TYPES in a way similar to how a database would be organised. I/We would need some help from the members here probably as my GLB TYPE knowledge is OK but not fantastic, mainly because I'm so used to other implementations of TYPES that I sometimes get confused with GLB ones (not hard but think my age has something to do with it  :D )

Attached is an image (very rough) of what I mean with regards to splitting up the data. In code it would be something like the following
Code (glbasic) Select
TYPE Tcharacter
name$
chr_class
str
agil
intt
dex
mainhand
offhand
ENDTYPE

TYPE Tclass
idxkey%
class_type$
ENDTYPE

TYPE Tweapon
idxkey%
weap_type$
stat%
ENDTYPE

TYPE Tweapstats
idxkey%
weap_stat%
description$
ENDTYPE


Don't forget the code & the pic are just a very simple example of what I mean & created purely for explanation purposes.

Lee
"Why don't you just make ten louder and make ten be the top number and make that a little louder?"
- "These go to eleven."

This Is Spinal Tap (1984)

CW

#7
I remember GURPS! Are you old enough to remember the wonderfully simple game which inspired it? Actually, two complimentary pocket games which were part of The Fantasy Trip. They were Wizard and Melee. I still have both games in their original plastic envelopes, along with half a  dozen or so solo adventure modules for them.

In Melee, your character had just three stats: Str, Dex, and IQ.  Each character was allowed two weapons, one ready and one slung. The rules booklet for the entire game were only 21 pages long, and each page was smaller than half a sheet of paper.

The expansion, Wizard, brought spell-casters to the arena, but the rules booklet to add Wizards is shorter still as half the booklet are lists of spells the magic users can learn.
Ah, those were the days! The roar of the crowd! The clang of weapon on armor! The gnashing of teeth! The spilling of precious cheese-curls! Yes, those were the days.
-CW

fuzzy70

My friends where the major RPG/gamers, one of which still works or even runs a game publishing company I believe. I am more than likely old enough to know the games you mention but they don't sound familiar at the moment  :D

GURPS is still going strong, 4th edition is the current I believe with a huge catalogue of expansions & campaigns. I have not played a pen/paper RPG for ages due to the main crowd of us who used to group are are now spread far & wide across the UK.

With regards to pc RPG's I played trough the Blizzard line up of Diablo, Warcraft etc where I ended up severely hooked on World of Warcraft to the point that I spent 8 years of my life on that game  :D.

Lee
"Why don't you just make ten louder and make ten be the top number and make that a little louder?"
- "These go to eleven."

This Is Spinal Tap (1984)

CW

#9
Ah yes, Fuzz.

I see what you are thinking, but I'd like stay even more generalized than that.

The program should be so general that it can be used equally well with games from D&D, to Battle in the Pacific, to Civil War miniatures, to Car Wars. I have a space-feet combat game, sort of like what you would find with a Star Trek combat game, called StarFire. There are literally dozens of different ships with different destructible components such as Hull, Cargo, Crew Compartment, Engines, Torpedo rooms, and so on. (The parallels to War Hammer 40k are obvious.)

To be able to accommodate all of the different types of games and all of the different types of stats a GM may want stat bars for, we can't hard-code ANY specific stat into the Roster program except for one: 'Health.' Be it a hell-cat in D&D or a Hell Cat in the air, the concept of 'health' still applies. A lot of non-changing specific stats for a unit, such as movement allowance or IQ, could be listed in the text description portion of a unit.

Now what you have done with the weapons is interesting. Maybe we could adapt a type of library which would load individual stats, each with a comment of its own. Than a GM could pick and choose among weapons for a unit, be it a mace or a Class II phaser. Hmm.. I'll have to think on that. But I like it!

Examples are better than descriptions, so give me a few weeks to hammer out a rough framework for what I have in mind and we can go from there. Over the next few days I'm going to study Kitty Hello's DDgui toolbox and see what I can draw on for our program.

-CW

fuzzy70

I forgot to mention that with regards to the layout on screen of the data I used to base mine on the character sheets from the game. Practically all can be downloaded for free from the publishers website or some fan made ones.

It doesn't have to be an exact replica but it helps the GM relate to the data in format they are familiar with. If ever there was a good use for a tablet then something like this is it, tablets didn't exist when I made my tools so laptops where used.

Lee
"Why don't you just make ten louder and make ten be the top number and make that a little louder?"
- "These go to eleven."

This Is Spinal Tap (1984)

CW

WOW! You got bit harder with War Craft than I did. I only spent 5 years on that. And most of that time I played but a single character, a Shadow Priest in the BattleGrounds.

I LOVED PvP. I still do. My serious distraction today is Team Fortress 2. For fantasy, I'm actually thinking of giving the computer a rest and getting back into board gaming. I am seriously eyeing the game Mage Knight, which, according to the reviews, is supposed to have one of the best solo-play systems around. If only the rules book weren't such a hot mess. That is the only thing putting me off.

-CW

CW

#12
Hmm.. maybe we can do that format in the popup screens once a unit on the roster is clicked on. We can leave the labels definable by the GM, so he can lay them out similar to what ever unit/character sheet he likes; all savable to a library, of course. I'm warming to the idea.  :)
-CW

fuzzy70

With regards to keeping it as generic or flexible as possible that is not going to be an easy task due to the differing systems the games use.

One possible way is like I mentioned but expanded to include different games, for example all the different types of stats from the range of games could be in a TYPE (i.e some have INT some have IQ). Then make a TYPE for the gametypes (Warhammer,D&D etc) that only uses or references the stats it needs from the STATS TYPE. That is pretty much the way it would be done in a database in that you group all common data (i.e repeatable data) in a table of its own & point to what you need.

I have simplified it with my description above but hopefully you get the general idea.

The advantage of having it split & in TYPES keeps the data count lower by removing any duplication & also helps if you want to created a drop down list as only have to iterate through the required TYPE you want listed.

Again, if this is doable or not with GLB TYPES I'm not 100% sure but it would give you an extremely flexible & powerful system that is not tied to a particular game. It is pretty much the same as databases in that more thought & effort goes into the design, and if the design is solid & well laid out the implementation is made easier.

Lee

"Why don't you just make ten louder and make ten be the top number and make that a little louder?"
- "These go to eleven."

This Is Spinal Tap (1984)

fuzzy70

Quote from: CW on 2013-May-31
WOW! You got bit harder with War Craft than I did. I only spent 5 years on that. And most of that time I played but a single character, a Shadow Priest in the BattleGrounds.

I LOVED PvP. I still do. My serious distraction today is Team Fortress 2. For fantasy, I'm actually thinking of giving the computer a rest and getting back into board gaming. I am seriously eyeing the game Mage Knight, which, according to the reviews, is supposed to have one of the best solo-play systems around. If only the rules book weren't such a hot mess. That is the only thing putting me off.

-CW

I have not played WoW for just over a year due to a change in circumstances (i.e being un-employed) & just don't have the spare cash to play it.

With regards to chars I have a Death Knight (dual spec DPS/Tank), Priest (dual spec Heal & Shadow), Paladin (Dual spec DPS/Tank), Hunter, Warlock, Mage. All the previous are maxed out LVL85 (I have not got round to the latest Pandera expansion) as well as a Druid & Shaman which are in the mid lvl 50's I think  :D.

PVP is awesome I have to admit  =D

Lee
"Why don't you just make ten louder and make ten be the top number and make that a little louder?"
- "These go to eleven."

This Is Spinal Tap (1984)