View unanswered posts | View active topics It is currently Sat Apr 27, 2024 7:37 pm



Post new topic Reply to topic  [ 87 posts ]  Go to page 1, 2, 3, 4, 5 ... 9  Next
 Wherein prof.ebral and I discuss node referencing systems 
Author Message

Joined: Thu Dec 10, 2009 6:37 am
Posts: 335
Post Wherein prof.ebral and I discuss node referencing systems
This discussion is mostly of interest to people who create character sheets, not merely fill them out once someone else has made them. I think prof.ebral is working on a D&D 4e sheet and I am on a D&D 3.5 sheet so our examples will likely look very D&D-ish but the system/s are a lot more flexible.
-------------------------------------------------------------------------------------------------

Let me see if I can recall all the stuff added to Traipse's referencing system from 1.7.6.

(1) you had some ideas on being able to reference a 2nd node of the same identical full path name I think. My position was : no, if there's a second node with an identical full path name that's bad structure and we shouldn't encourage it (1.7.1 can't ever find it so its 100% backwards compatible to ignore it). Do you still have that?

(2) you have this different format for "local" references !#...#! which acts a bit like 1.8.0+ namespaces. So we both like local referencing but there's an implementation disagreement.

(3) you have a pop-up dialog for helping to write out a references path (currently it's local references only it creates?) I'm not sure about this. People who write the sheets probably don't need it. I guess it's a nice idea though I prefer to encourage the use of the single unique leaf name style which doesn't need it because it's very simple (ie something like !@Strength@! )

(4) you have an improved grid reference system that allows you to reference a specific cell. Again I think it is unnecessary but I think people will like it, and perhaps my solution (which is to have an option to sum all the columns beyond the 2nd and total them in the 2nd column) is too complex and needs re-working.

That about it?


Mon Jan 18, 2010 6:00 pm
Profile

Joined: Thu Dec 10, 2009 6:37 am
Posts: 335
Post Re: Wherein prof.ebral and I discuss node referencing systems
prof.ebral wrote:
Ok. I just downloaded the 1.8.0 dev, and it finally works like it it supposed too ... sort of. You are always finding the value of the top most node.

Like if I have:
Code:
-- Group
--- Group-2
---- Text_1
---- Text
--- Group-3
---- Text_2
---- Text


And I want to find Group-3, Text .. I can't just type in !@Group::Text@! because it will return !@Group::Group-2::Text@!

You have not given the !# #! and !! !! system much of a chance. It's a lot more simple than it sounds, it's just new.

Another thing I failed to mention is the fact that Standard looks crappy. There are so many bugs in the GUI, I get tons of errors in my Terminal, and I am just totally fed up with some of the development team. Not you, David, I can appreciate your ideas.

I just can't express enough that I chose quality over quantity.


OK so this is my point (1) above. So you still have that. How does that work? You have to use, !!Text!! to get the second one? and !#text#! to get the first? and !@text@! in traipse would get the first globally? But there's no way to get a third node called text in yet another "Group" container?


Mon Jan 18, 2010 6:05 pm
Profile
User avatar

Joined: Wed Dec 09, 2009 9:39 pm
Posts: 712
Post Re: Wherein prof.ebral and I discuss node referencing systems
(1) .. No, I just had problems getting your system to work. I agree it is bad structure.

(2) I have added !# .. #! and !! .. !!. The syntax !# ..#! looks for a parent node, starting from the the current nodes location. The !! .. !! looks for a child node starting from the current nodes location. This method keeps the syntax small, often only 1 or names in the reference.

(3) Pop up dialogue yes, but it creates the most efficient reference starting from the node.

(4) I have taken the 'sum' idea you created and am showing off a Total cell. This cell allows you to add grid references from within the current grid. It's in the Beta 4e PC sheet, AC and To Hit both have one.

_________________
I ate your Death Knell.
The Traipse Movement
Please show your support for Traipse OpenRPG http://www.facebook.com/MadMathLabs
Send me Traipse OpenRPG Ideas, Bugs, Complaints, Praises here: https://getsatisfaction.com/mml


Mon Jan 18, 2010 6:07 pm
Profile YIM WWW
User avatar

Joined: Wed Dec 09, 2009 9:39 pm
Posts: 712
Post Re: Wherein prof.ebral and I discuss node referencing systems
davidbyron wrote:
[and !@text@! in traipse would get the first globally? But there's no way to get a third node called text in yet another "Group" container?


I don't do anything globally.

_________________
I ate your Death Knell.
The Traipse Movement
Please show your support for Traipse OpenRPG http://www.facebook.com/MadMathLabs
Send me Traipse OpenRPG Ideas, Bugs, Complaints, Praises here: https://getsatisfaction.com/mml


Mon Jan 18, 2010 6:08 pm
Profile YIM WWW
User avatar

Joined: Wed Dec 09, 2009 9:39 pm
Posts: 712
Post Re: Wherein prof.ebral and I discuss node referencing systems
Don forget to subscribe to the forums. That's how I stay on top of the replies.

Here is the node that comes with Traipse helping explain the system
Code:
  Traipse node referencing is unlike other distributions of OpenRPG.  The Game Tree mapping is a fluid map that changes with the location of your nodes.  This allows you to create a reference node that will stay with your character sheet, and if you change the location of your character sheet the reference will still work.

(Note: Renaming your node causes problems with the tree mapping until you restart the software. You can just move the node and the software will reset the Game Tree map)

Reference Types:
  There are three ways of references node data. A Root Reference, a Child Reference, and a Parent Reference.

Root Reference:
  A node reference that starts at the Game Tree. The location of the node must be exact or you will return an Invalid Reference!

A Root Reference uses this syntax:
!@Node::Child::Data@!

Child Reference:
  A node reference syntax that starts by looking at within the current container node. As long as the Child Reference is in the same container as the node, the container can change location and the reference will not be damaged. Child References work from within a PC Sheet node as well.

A Child Reference uses this syntax:
!!Node::Child::Data!!

Parent Reference:
  A node reference syntax that starts by looking at the tree map and the reference used, then makes an addendum to the node's map to create a reference.  The Parent Node is used when you want to reference the data in a node that is within a different child container of the same parent node.

A Parent Reference uses this syntax:
!#Node::Child::Data#!

Syntax for Special PC Sheet Nodes:
  The nodes for the specialized PC Sheets now have a new syntax.

Skills, Saves, and Abilities:
  Skills, Saves, and Abilities all have a similar referencing syntax.  You can return the base value of each by using the correct syntax.

Examples:
!@Jonethan::Skill::Jump@! (Returns Jump ranks)
!@Mikael::Strength@! (Returns Ability Score and Mod)
!@Draj::Will@! (Returns Will Save and Mod)

(Saves and Abilities have a short hand and a long hand. Abilities can use the three letter abbreviation, while saves short hand are Fort, Ref, and Will)

  You can append Check to check each of these against a 1d20 roll, or you can append Mod to discover the Modifier. The Mod can be useful in other nodes

Combat:
  You can now reference your attacks easily with the Game Tree.  Using the Attack syntax you can select modifier type, and a weapon to attack with.
Example: !@Kammen-Pai::Attack::M::Dagger@!

Modifier Type:
  There are two modifier types Melee (M) or Ranged (R) You will see I added can use the long word or the short hand.

Powers, Spells and Feats:
  Power, Spells and Feats are hard to sometimes hard to remember, and even harder to code.  The use of the Power, Spell or Feat syntax serves as an emote of what you are doing, as well as a reminder of what your Power, Spell, or Feat does.

Examples:
!@Kammen-Pai::Cast::Ray of Frost@!
!@Kammen-Pai::Feat::Ability Focus@!

_________________
I ate your Death Knell.
The Traipse Movement
Please show your support for Traipse OpenRPG http://www.facebook.com/MadMathLabs
Send me Traipse OpenRPG Ideas, Bugs, Complaints, Praises here: https://getsatisfaction.com/mml


Mon Jan 18, 2010 6:11 pm
Profile YIM WWW

Joined: Thu Dec 10, 2009 6:37 am
Posts: 335
Post Re: Wherein prof.ebral and I discuss node referencing systems
I can't tell the difference between the !#..#! and !!...!! systems.

prof.ebral wrote:
I have added !# .. #! and !! .. !!. The syntax !# ..#! looks for a parent node, starting from the the current nodes location. The !! .. !! looks for a child node starting from the current nodes location.


When you write a reference it will not be in a container node but in a text node that is in a container nod. So don't both systems first have to get to that parent container node to work? And then don't they both start looking for the target using the path from that parent node? So what is the difference? Does one crawl higher up the parent-container tree before it starts looking?

If you recall there was an idea raised about trying to use a "most local" system that would start by looking for essentially node siblings (within the parent container) and then if it failed to find anything look for node cousins (within the grandparent continer) and so on expanding the search up the parent-container line until finally it would reach the tree root where it does a global search for the reference. I rejected this as hard to code in a map based system (considering that namespaces gave enough locality for people).

Your complaint then, in the example I reposted, is that if you are in node Text_2 trying to reference its node Text, without saying eg. "Group-3::Text" then you can't do it because I don't do local searches at a smaller granularity than my entire namespace (=character sheet). I would say to the designer "don't use the same word" but I think some people like a style which has many self-similar sub-parts to the character sheet. If that style is preferred, and if it is not better handled by smart grids, then lower level granularity of locality is a good idea.

Do you have issues with keeping your map of pathnames up to date? You say something about having to reboot if you alter a node name. yeah it's a lot of code to keep the map upto date and quite error prone I think. Complex. Still I think you have to bite that bullet.


Mon Jan 18, 2010 6:39 pm
Profile
User avatar

Joined: Wed Dec 09, 2009 9:39 pm
Posts: 712
Post Re: Wherein prof.ebral and I discuss node referencing systems
davidbyron wrote:
I can't tell the difference between the !#..#! and !!...!! systems.

So don't both systems first have to get to that parent container node to work? And then don't they both start looking for the target using the path from that parent node? So what is the difference? Does one crawl higher up the parent-container tree before it starts looking?

(1) yes and no.
(2) no
(3) explained below
(4) yes and no.

When a node is loaded into the game tree a tag for that node is created or modified. That tag is called 'map'. This tag holds the current location of the node in the tree and is used when making references. So, no the node does not need to look for it's parent when creating the reference .. but because all references eventually turn into a Root Reference so the system can handle it ( !@ .. @! ), at that point it does.

It does not crawl higher up. Instead it compares the nodes map with the references map, then splices the two together to create a root reference.

Quote:
If you recall there was an idea raised about trying to use a "most local" system that would start by looking for essentially node siblings (within the parent container) and then if it failed to find anything look for node cousins (within the grandparent continer) and so on expanding the search up the parent-container line until finally it would reach the tree root where it does a global search for the reference. I rejected this as hard to code in a map based system (considering that namespaces gave enough locality for people).


Like I said, I don't do anything globally with the tree. If the reference is valid it will return the data, if not it will return 'Invalid Reference'.

Quote:
Your complaint then, in the example I reposted, is that if you are in node Text_2 trying to reference its node Text, without saying eg. "Group-3::Text" then you can't do it because I don't do local searches at a smaller granularity than my entire namespace (=character sheet). I would say to the designer "don't use the same word" but I think some people like a style which has many self-similar sub-parts to the character sheet. If that style is preferred, and if it is not better handled by smart grids, then lower level granularity of locality is a good idea.

Do you have issues with keeping your map of pathnames up to date? You say something about having to reboot if you alter a node name. yeah it's a lot of code to keep the map upto date and quite error prone I think. Complex. Still I think you have to bite that bullet.


My problem is diminishing. I know the problem and where it is created. If you read all of it you would see that the person can "move the node" to get the same effect. It's not complex .. it will be just a few lines of code that I have to insert when the title of a node is changed. Not a big deal to me, just not something I want to worry about when there are so many other fixes included.

_________________
I ate your Death Knell.
The Traipse Movement
Please show your support for Traipse OpenRPG http://www.facebook.com/MadMathLabs
Send me Traipse OpenRPG Ideas, Bugs, Complaints, Praises here: https://getsatisfaction.com/mml


Mon Jan 18, 2010 7:56 pm
Profile YIM WWW

Joined: Thu Dec 10, 2009 6:37 am
Posts: 335
Post Re: Wherein prof.ebral and I discuss node referencing systems
I still don't have any idea what the difference between !#...#! and !!...!! would be. Can you give an example or explain it algorithmically? I can't follow what you are saying when you try to explain it in terms of your implementation. What do the two things do in words?


Mon Jan 18, 2010 8:26 pm
Profile
User avatar

Joined: Wed Dec 09, 2009 9:39 pm
Posts: 712
Post Re: Wherein prof.ebral and I discuss node referencing systems
I did. Here again.

Example Tree:
Code:
Game Tree
- Tabber
-- Abilities (Grid)
-- Details (Form)
--- Name (Text)
--- Level (Text)
-- Weapons (Grid)
-- Attacks (List)
-- Special (Tabber)
--- Super Attacks (List)


Ok. Let's say you want to add a new List command. You want it to user your players name and calculate your Attack Bonus and your damage.

The syntax looks like this
Code:
!!Details::Name!! does an attack <b>Attack</b> [1d20 + !!Abilities::(1,3)!!] <b>Damage:</b> [1!!Weapons::(2,3)!!]


But if you want to do the same thing in the Super Attacks list it would look like this
Code:
!#Details::Name#! does an attack <b>Attack</b> [1d20 + !#Abilities::(1,3)#!] <b>Damage:</b> [1!#Weapons::(2,3)#!]

_________________
I ate your Death Knell.
The Traipse Movement
Please show your support for Traipse OpenRPG http://www.facebook.com/MadMathLabs
Send me Traipse OpenRPG Ideas, Bugs, Complaints, Praises here: https://getsatisfaction.com/mml


Last edited by prof.ebral on Mon Jan 18, 2010 8:37 pm, edited 1 time in total.

forgot some ::



Mon Jan 18, 2010 8:35 pm
Profile YIM WWW

Joined: Thu Dec 10, 2009 6:37 am
Posts: 335
Post Re: Wherein prof.ebral and I discuss node referencing systems
OK, so that looks like maybe !# is just going to the grandparent container of Super Attacks (ie Tabber) whereas !! is going to the parent container of Attacks (ie Tabber again) before looking for the reference? So how does !# know to stop at "Tabber"? Does it just go to the top container before it gets to the tree root? if you put the whole set of nodes into another container called "PCs" which already has two other character sheets, will the !! work but !# breaks?

Code:
Game Tree
- PCs
-- Another PC Tabber
--- Abilities (Grid)
--- Details (Form)
---- Name (Text)
---- Level (Text)
--- Weapons (Grid)
--- Attacks (List)
--- Special (Tabber)
---- Super Attacks (List)
-- Tabber
--- Abilities (Grid)
--- Details (Form)
---- Name (Text)
---- Level (Text)
--- Weapons (Grid)
--- Attacks (List)
--- Special (Tabber)
---- Super Attacks (List)
-- 3rd Tabber
--- Abilities (Grid)
--- Details (Form)
---- Name (Text)
---- Level (Text)
--- Weapons (Grid)
--- Attacks (List)
--- Special (Tabber)
---- Super Attacks (List)


Mon Jan 18, 2010 8:46 pm
Profile
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 87 posts ]  Go to page 1, 2, 3, 4, 5 ... 9  Next


Who is online

Users browsing this forum: No registered users and 124 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by Vjacheslav Trushkin for Free Forums/DivisionCore.