Cory Dodt | 21 Aug 2007 05:42
Picon

The playtools Intro Speech

Playtools began from discussions that I posted to my blog.

Here's a rundown.

Part I, Part II, Part III.


Jonathan Lange | 23 Aug 2007 11:49
Gravatar

First Post!

Hello all,

I hope you are all having a wonderful day.

I've just been having a look at Playtools and Goonmill and a lot of
questions that I'm not really sure how to ask are bouncing around my
head. Mostly I'm trying to figure out where we want this to go.

When I think about what I want, I think of Python APIs for creating
character, loading characters / monsters / bad guys, putting them into
combat, killing them, rezzing them -- I think of the *rules* as API.
I'm expecting the core of Playtools to be this.

The rest, I expect, will be command-line tools that either feed into
the data or come out of it. Scripts to import SRD info (although from
where I don't know), exporting to HeroDesigner or PCGen format or
whatever.

Then, we *use* these APIs and CLI tools to build dice bots, Web 2.0
startups, Second Life cyborg-GMs, DM's aides and so forth.

I hope this is what you are expecting, and I hope this is what Cory is
intending. If not, now is the time to discuss it!

jml

Cory Dodt | 25 Aug 2007 17:24
Picon

Re: First Post!

On 8/23/07, Jonathan Lange <jml@...> wrote:
> I've just been having a look at Playtools and Goonmill and a lot of
> questions that I'm not really sure how to ask are bouncing around my
> head. Mostly I'm trying to figure out where we want this to go.

Yes, let's!

> When I think about what I want, I think of Python APIs for creating
> character, loading characters / monsters / bad guys, putting them into
> combat, killing them, rezzing them -- I think of the *rules* as API.
> I'm expecting the core of Playtools to be this.

Playtools is trying to become a standard for data exchange.  (See
below for my thoughts on what that means.)  To the extent possible,
we should allows the rules of various games to be *data*, and Playtools
will drive the exchange of that data.

Of course, not all the rules should be represented as data, so where
source code is needed to implement a game, I see there being a higher-
level rules processing engine, one which has game implementations as
plugins and uses Playtools to store everything else.

> The rest, I expect, will be command-line tools that either feed into
> the data or come out of it. Scripts to import SRD info (although from
> where I don't know), exporting to HeroDesigner or PCGen format or
> whatever.

The SRD data comes from Andargor's SQL database scripts.  I converted
that to a SQLite database which currently lives in the Goonmill project,
but should probably move into the Playtools source tree.  It is my intention
to convert it completely to N3 and then get rid of it.  Playtools will
encompass the command line tools to do the conversion, as well as the
APIs for accessing it in a Python program or exporting it.

There might also be a role for a C (Pyrex?) library that other apps could use,
so that bindings can be written for other software that isn't written in Python.
Some of this already exists in the form of RDF libraries, so the solution might
be to leverage those instead, or build a few sample apps showing how data
access works in those languages.

> Then, we *use* these APIs and CLI tools to build dice bots, Web 2.0
> startups, Second Life cyborg-GMs, DM's aides and so forth.

Use the blueprints feature!  We need solid use cases to build against.  If
you have an application idea, think about the problems you'd need to solve
to implement it, and how Playtools can help--these are the blueprints that
will drive the standard.

> I hope this is what you are expecting, and I hope this is what Cory is
> intending. If not, now is the time to discuss it!

I have just added three blueprints to the project which should help us move
forward, and I'd like both feedback and more blueprints to think about.  See:

https://blueprints.launchpad.net/playtools/+spec/convert-srd-tables-to-n3
https://blueprints.launchpad.net/playtools/+spec/publication-container
https://blueprints.launchpad.net/playtools/+spec/publication-editing-app

I also added milestones to the "trunk" series; the above blueprints have
targets.

With Playtools, I hope to define a real, community-driven standard for how
data should be shared between game software.  This scope covers the data
files themselves, the means of data exchange (HTTP to start with, but there
will be others), editors to create the data, and documentation for building apps
with the data.

Apps are what drive a framework or a standard.  Any application you can think
of, from the lowliest stat generator to the all-encompassing AI-driven VGT
can be impetus for Playtools to move forward.

Stephen Thorne | 25 Aug 2007 17:42
Picon

Re: First Post!

On 8/26/07, Cory Dodt <corydodt+playtools_spams@...> wrote:
> > When I think about what I want, I think of Python APIs for creating
> > character, loading characters / monsters / bad guys, putting them into
> > combat, killing them, rezzing them -- I think of the *rules* as API.
> > I'm expecting the core of Playtools to be this.
>
> Playtools is trying to become a standard for data exchange.  (See
> below for my thoughts on what that means.)  To the extent possible,
> we should allows the rules of various games to be *data*, and Playtools
> will drive the exchange of that data.
>
> Of course, not all the rules should be represented as data, so where
> source code is needed to implement a game, I see there being a higher-
> level rules processing engine, one which has game implementations as
> plugins and uses Playtools to store everything else.

I would really like to be able to throw some n3 data at a program that
goes and outputs it in different formats. HTML, Latex, text, etc...

--

-- 
Stephen Thorne

"Give me enough bandwidth and a place to sit and I will move the world."
  --Jonathan Lange

Cory Dodt | 25 Aug 2007 20:19
Picon

Re: First Post!

On 8/25/07, Stephen Thorne <stephen.thorne@...> wrote:
> On 8/26/07, Cory Dodt <corydodt+playtools_spams@...> wrote:
> >
> > Of course, not all the rules should be represented as data, so where
> > source code is needed to implement a game, I see there being a higher-
> > level rules processing engine, one which has game implementations as
> > plugins and uses Playtools to store everything else.
>
> I would really like to be able to throw some n3 data at a program that
> goes and outputs it in different formats. HTML, Latex, text, etc...

You probably wouldn't get much useful output if you just tried to make
a print formatter for the raw data files.

N3 is a structured document format, and therefore the n3 data is a set
of documents.  However, it consists entirely of relations, so you would
get no sense from the printout of what thing is composed of these
relations.  To put it another way, you want a view that renders
the objects you can build from the data: i.e. a Character, a Dungeon,
a Monster.

These things will be some bunch of triples; it may be a different bunch
depending on the purpose of your app or publication.  Furthermore, they
will be defined differently for different games' rules.

So, to publish the data as HTML/Latex, you first have to define your objects.
For example, Goonmill defines[1] a representation of a Monster object, if the
Monster you're talking about is from d20. Playtools *could* store definitions
of document types, but I think a better direction to go would be to include
command line tools for generating the transforming parsers themselves, since
DTD, Relax-NG, XSLT etc. already exist.  The command line tools should use
Playtools APIs for querying the data, and then generate either a transforming
parser or the document you want, itself.

Here again, we would like to have concrete blueprints for which document types
to target in the Playtools APIs.

[1] In a somewhat ad-hoc way, that needs to be nailed down in a concise
expression.

Christopher Armstrong | 26 Aug 2007 05:29
Gravatar

Re: First Post!

On 8/25/07, Cory Dodt <corydodt+playtools_spams-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:

So, to publish the data as HTML/Latex, you first have to define your objects.
For example, Goonmill defines[1] a representation of a Monster object, if the
Monster you're talking about is from d20. Playtools *could* store definitions
of document types, but I think a better direction to go would be to include
command line tools for generating the transforming parsers themselves, since
DTD, Relax-NG, XSLT etc. already exist.  The command line tools should use
Playtools APIs for querying the data, and then generate either a transforming
parser or the document you want, itself.

As an aside, just so I understand everything clearly: Playtools is meant to be a very data-oriented project, for creating tools to manipulate and render role-playing data at a lowish level, and you want applications like goonmill to be based on it? What exactly do you consider the border between stuff appropriate for Playtools and what ought to be a separate project?


--
Christopher Armstrong
International Man of Twistery
http://radix.twistedmatrix.com/
http://twistedmatrix.com/
http://canonical.com/
Cory Dodt | 26 Aug 2007 08:59
Picon

Re: First Post!


On 8/25/07, Christopher Armstrong <radix-wgPraSjSqjuEakHPNWoOSQC/G2K4zDHf@public.gmane.org > wrote:
As an aside, just so I understand everything clearly: Playtools is meant to be a very data-oriented project, for creating tools to manipulate and render role-playing data at a lowish level, and you want applications like goonmill to be based on it? What exactly do you consider the border between stuff appropriate for Playtools and what ought to be a separate project?

I have never tried to nail down the definition.  The rule of thumb I have in mind is: if it's something you would actually use during either prep or play for a game, it's probably higher-level than Playtools.

Still, that leaves a lot of gray area.  What about a generic API for combat, which allowed plugins for different game systems?  I'd still say this doesn't belong in Playtools, because it's not about data; in most rules, combat is treated procedurally, and would be annoying to express in N3.

What about implementations of particular rule systems?  In this case, it depends on which rules you're talking about.  For example: an implementation of the initiative sequence and attacks in D&D, as an API that acted on Character objects, is procedural.  It just doesn't fit.  But the rules for characters crafting magic items might be; this is usually treated like a single action that just takes some time.  The rules for this action in D&D can be expressed simply by graphing the relationships between the crafter's gold and XP, and the item's cost and stats.  While the action itself can be represented in Playtools format, the rules engines that process it will still be kept outside.

Playtools APIs will focus on getting the data out; making objects and publishing or manipulating them; and getting the data in, from databases or over the web.  Getting the data out might include rules-specific APIs on a case-by-case basis, but it should focus on data extraction that all rulesets need.

We'll have to feel some of this out as we go.  I think that anything you can easily represent in Playtools format should be.  Whether it becomes part of the core dataset or an externally-hosted dataset is going to depend on how far we can get with the scope of our flagship game systems. 

Cory Dodt | 26 Aug 2007 09:03
Picon

Flagship game systems

When we talk about Playtools, we are going to focus on a finite and small number of rules systems that our developers actually use.

Which ones should these be?  D20 will be included, but I'd like to know what other popular systems should be treated as first-class.  It's difficult to even get a sense about which ones are the most popular; except to go by the "I've heard of that" rule, which is somewhat unscientific.

Consider this a poll.  What do you play, and how would you rank those systems by popularity?  How much mindshare do they have among your friends?

Picon
Gravatar

Re: Flagship game systems


On Sun, 2007-08-26 at 00:03 -0700, Cory Dodt wrote:
> When we talk about Playtools, we are going to focus on a finite and
> small number of rules systems that our developers actually use.
> 
> Which ones should these be?  D20 will be included, but I'd like to
> know what other popular systems should be treated as first-class.
> It's difficult to even get a sense about which ones are the most
> popular; except to go by the "I've heard of that" rule, which is
> somewhat unscientific. 
> 
> Consider this a poll.  What do you play, and how would you rank those
> systems by popularity?  How much mindshare do they have among your
> friends?

I've played a fairly wide variety, from d20 to HERO to some rather more
obscure ones such as Earthdawn and Con:X.  Out of them all, d20 & HERO
are the only systems that I'd regularly play, and d20 certainly rates
higher than HERO.
Cory Dodt | 26 Aug 2007 09:43
Picon

A Wiki.

We have a wiki.

http://wiki.thesoftworld.com/

I have started adding blueprints to it, see

http://wiki.thesoftworld.com/CategoryBlueprint

_____________________

Cory Dodt
basileus augustus codesaurus

decipher
5250 n palm ave, ste 220
fresno, ca  93704

t: +1 559 256 0463
f: +1 559 436 6944

www.decipherinc.com


Gmane