DM Genie

Brent

First Post
So here is the deal...

I just started working on an object oriented character manager/generator. The basic D20 mechanics are in the code. All of the ojects are serialized to xml files ("data"). I can expose the public properties and methods of the objects through XML also, but it is not human readable.

I thought this was a great idea. Want to impliment a new race, skill, feat, class, etc., that somebody else input? Just drop the file into the skill, feat, class, etc., directory. Want to invent a new one? Just enter the properties in the GUI and save it. The program takes car of the rest.

From what you are saying, I can't make a program like this. Should I contact WotC? This is really kind of depressing...
 

log in or register to remove this ad

Luke

Explorer
Brent said:
The basic D20 mechanics are in the code. All of the ojects are serialized to xml files ("data"). I can expose the public properties and methods of the objects through XML also, but it is not human readable.
First up - don't construe anything I say as being legal advice.

I would think that XML satisfies "human readable". The important part is that any code you execute to achieve a game mechanic cannot be compiled into a non-readable binary of some sort.

Remember that the code is as much a part of the license as the data.
If you do include script code in your XML objects, be sure to scratch the surface of what you're doing.
For example, a feat or weapon might result in a modifier of some sort (such as +2 leather armor adding 2 to the AC). However, that modifier will typically have to be part of a greater piece of code that considers stacking rules. So the code that adds up all the modifiers whilst considering the stacking rules is also part of the license constraints.
From my experience, any decent legal implementation of 3rd Edition game mechanics is a huge effort, and will go well beying exposing methods and properties of individual XML objects.
 
Last edited:

Twin Rose

First Post
Brent said:
So here is the deal...

I just started working on an object oriented character manager/generator. The basic D20 mechanics are in the code. All of the ojects are serialized to xml files ("data"). I can expose the public properties and methods of the objects through XML also, but it is not human readable.

I thought this was a great idea. Want to impliment a new race, skill, feat, class, etc., that somebody else input? Just drop the file into the skill, feat, class, etc., directory. Want to invent a new one? Just enter the properties in the GUI and save it. The program takes car of the rest.

From what you are saying, I can't make a program like this. Should I contact WotC? This is really kind of depressing...

You will definately want to talk to them. I'd encourage ANYONE wanting to get into the industry to read all FAQs, information sheets, everything you can get your hands on and learn everything there is to know about the licenses. Consult a lawyer if there is anything youd on't think you understand fully.
 

Fractalwave

First Post
Brent said:
So here is the deal...

I just started working on an object oriented character manager/generator. The basic D20 mechanics are in the code. All of the ojects are serialized to xml files ("data"). I can expose the public properties and methods of the objects through XML also, but it is not human readable.

I thought this was a great idea. Want to impliment a new race, skill, feat, class, etc., that somebody else input? Just drop the file into the skill, feat, class, etc., directory. Want to invent a new one? Just enter the properties in the GUI and save it. The program takes car of the rest.

From what you are saying, I can't make a program like this. Should I contact WotC? This is really kind of depressing...
One thing the others forgot to mention is that if the program is solely for your use, you don't have to worry about these things. If you distribute it to others in any way, shape or form whether it's free or not then you do have to worry about them.

WotC takes what some would consider to be a very hard line in defining what is allowed to be included in code and what is not regardless of license under which you choose to distribute. Designing a program without talking to them is just lining you up for a likely rewrite/redesign later.

Talk to a lawyer. Research the licenses. Then talk to WotC. And I suggest doing that before you set the code down in stone.

One no-no that seems to be written in stone is there shouldn't be any rules embedded in code anywhere. That tends to change the scope of the project dramatically.

I would assume that you wish to use OGC in the program. That use would necessitate either complying with the OGL or negotiating legal agreements (licenses) with all the copyright owners of material you wish to include.

Being D20 compliant raises a lot more issues as it is more restrictive than the OGL. Whether you use the D20 license then becomes a question of whether you need to be able to do the things that license says you can't do.

So the bad news is...to do this you need to become a pseudo-lawyer. The good news is that it is most certainly possible.
 

smetzger

Explorer
Brent said:
So here is the deal...

I just started working on an object oriented character manager/generator. The basic D20 mechanics are in the code. All of the ojects are serialized to xml files ("data"). I can expose the public properties and methods of the objects through XML also, but it is not human readable.

1) "Human Readable" is not part of the d20 license. Although "Clearly marked OGC" is.

2) You can put OGC material in your "code" but that would mean that your code is now OGC also. Therefore you would somehow need to mark your code clearly as OGC.
 

Brent

First Post
I appreciate all of the advice everyone has given! This is kind of long; so don't feel the need to respond. Judging by the programs I have seen from you guys, you are all pretty busy.

My mind is still trying to come to grips with all of this. Lets look as skills as an example. We have three XML files: SkillName1.xml, SkillName2.xml, CharacterName.xml and ClassName.xml:

Each of these files contains a copy of the OGL and/or D20 license.
ClassName.xml lists SkillName1 & SkillName2 as class skills with 8 ranks each.
CharacterName.xml lists ClassName as one of the characters classes.
SkillName1.xml lists SkillName2 as a synergy skill granting a +2 for 5 ranks.

All of this is in the data and can be seen by looking at the XML file or displayed in the program (including the copyright and license info for the class and skills).

The program has binary code that knows that CharacterName can have SkillName1 and SkillName2 because he has ClassName (so can anyone else by reading the files either directly or through the program).

The binary code also knows what a Synergy Bonus is and to apply the +2 bonus when CharacterName uses SkillName2 because he has 5 ranks of SkillName1. This part isn't in human readable format. Anyone who owns the PHB knows what a Synergy Bonus is, but you can't see it on screen.

Assuming the program is marked as OGC in the Help>About, is this a problem?
What if I show the calculation on screen?
What is I distribute a Class Library with the program?
What is the difference between doing this and distributing an Excel spreadsheet with a formula such as: Ranks + SynergyBonus?

I will definitely get touch with WotC one I have enough of a program so they can see what I am doing. Everyone keeps talking about scripts. My idea is not to use scripts but rather OOP utilizing the Microsoft .NET framework. I think it will allow the program to be fast and easy to use, but it requires non-human-readable binary code to implement, Although the data is stored in semi-human-readable XML files. This allows anyone to create style sheets to view data, or other programs that read the files for other purposes.

If another programmer wanted to write an adventure management, combat management or any other type of software that read my CharacterName.xml file they could. That is what XML is for. I don't have to export some delimited file from my program in some agreed upon format so that it can be imported into another program. If a standard set of tags were developed, any program could talk to any other program without having to know the structure of the data. All it needs to know is the meaning of the tags. This is where I think eTools falls short. All the data is stored in a Db with unknown structure or binary .chr files. I can't work with any of the data without opening it from eTools copy/pate into another program.

I am a very big fan of a number of the programs that the posters on this list have created. I just want to use them all without a lot of copy/paste, and allow other people to do the same.
 

smetzger

Explorer
Brent said:
I appreciate all of the advice everyone has given! This is kind of long; so don't feel the need to respond. Judging by the programs I have seen from you guys, you are all pretty busy.

My mind is still trying to come to grips with all of this. Lets look as skills as an example. We have three XML files: SkillName1.xml, SkillName2.xml, CharacterName.xml and ClassName.xml:

Each of these files contains a copy of the OGL and/or D20 license.
ClassName.xml lists SkillName1 & SkillName2 as class skills with 8 ranks each.
CharacterName.xml lists ClassName as one of the characters classes.
SkillName1.xml lists SkillName2 as a synergy skill granting a +2 for 5 ranks.

All of this is in the data and can be seen by looking at the XML file or displayed in the program (including the copyright and license info for the class and skills).



Sounds good so far as long as you make sure you update section 15 appropriatly.

Brent said:
The program has binary code that knows that CharacterName can have SkillName1 and SkillName2 because he has ClassName (so can anyone else by reading the files either directly or through the program).

The binary code also knows what a Synergy Bonus is and to apply the +2 bonus when CharacterName uses SkillName2 because he has 5 ranks of SkillName1. This part isn't in human readable format. Anyone who owns the PHB knows what a Synergy Bonus is, but you can't see it on screen.



If the program knows that Synergy bonus gives a +2 then it would be derivative content and therefore OGC. If however, you define Synergy as a +2 bonus to a skill under such and such circumstances in the data file, then only your data file is OGC.

Brent said:
Assuming the program is marked as OGC in the Help>About, is this a problem?
What if I show the calculation on screen?
What is I distribute a Class Library with the program?
What is the difference between doing this and distributing an Excel spreadsheet with a formula such as: Ranks + SynergyBonus?



If you mark your program as OGC than that should be fine. Keep in mind that if you do so then someone else could actually sell your program and they would only have to update section 15 of the OGL.
 

Luke

Explorer
smetzger said:


1) "Human Readable" is not part of the d20 license. Although "Clearly marked OGC" is.

2) You can put OGC material in your "code" but that would mean that your code is now OGC also. Therefore you would somehow need to mark your code clearly as OGC.

If you check out the official OGL list archives, this issue has been re-opened many times. It's the "dead horse that won't die".

Wizard's position is pretty much that:
- "Clearly marked" effectively means human readable. The license and content is for humans.

- Your OGC code must live up to this as well. You simply cannot compile a program with OGC code buried in there. Even separately including your source doesn't get you off the hook.

I agree that it's an unexpected point that will badly catch developers who've never delved deeply enough into the "official" information pipelines - but there it is.

Their position is pretty clear. If you want to contest the interpretation Wizard's put on the license, I gather you end up doing it in court.
I really hope that such a thing never happens. What Wizard's have done with the the whole open gaming/3rd edition scenario is a wonderful gift that has worked very well for both them and the RPG community.
After all the effort I put into RPM over the last 1.5 years, the "gentleman's agreement" behind the draft SRD really worried me, but I have to say that Wizard's have come through at every level!

Regards,
 

CRGreathouse

Community Supporter
smetzger said:
If the program knows that Synergy bonus gives a +2 then it would be derivative content and therefore OGC. If however, you define Synergy as a +2 bonus to a skill under such and such circumstances in the data file, then only your data file is OGC.

It may still be derivitive. The OGL listserv constantly debates this issue -- how far must closed code be from OGL material? There are some pretty hard-line views there.
 

CRGreathouse

Community Supporter
Luke said:
Wizard's position is pretty much that:
- "Clearly marked" effectively means human readable. The license and content is for humans.

- Your OGC code must live up to this as well. You simply cannot compile a program with OGC code buried in there. Even separately including your source doesn't get you off the hook.

There's a way to get around this: declare the entire binary OGC. Of course, this generally requires you to own all of the libraries and causes problems of its own, but...
 

Remove ads

Top