[Divunal-author] tasty paste from toxic waste
Glyph Lefkowitz
glyph@twistedmatrix.com
Wed, 7 May 2003 16:44:30 -0500
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Tuesday, May 6, 2003, at 01:35 PM, Allen Short wrote:
> So, a few things: first, DictOf doesn't exist yet. glyph says he is
> working on that.
It's next up on my list for Divmod now. You should be seeing it
shortly.
> Second, storing classes seems a little... wrong. Perhaps _adapterCache
> needs to map interface _names_
> to adapters?
No reason to change this just for a tiny bit of convenience in the
storage layer - I can store classes just fine. (In fact, storing
classes affords certain optimization that just storing strings would
not.)
> Also, there's no InterfaceFilter class; _implementorFilters apparently
> was designed to accept anything that implements IInterfaceFilter. I
> imagine this isn't good enough for persistence, is it?
Twisted World is dynamically typed. It would be a ListOf(Storable)
(which is syntax sugar for StorableList, anyway). This assumes that
int and str can't implement IInterfaceFilter but I really hope that is
a safe assumption.
> Finally, how does inheritance interact with __schema__?
Ngh. Have to check this out. Basically I guess it should just
aggregate the __schema__ dict, and blow up if any column declarations
conflict.
> I see that MetaStorable takes bases into account, but can classes be
> replaced by their subclasses within a schema? For example,
> Thing._links is a list of Things; will it work out OK if some of them
> are Movables?
They can be any kind of Storable. They could be
divmod.schemabox.Message instances, for all I care.
> Oh, and: does it matter if Movable.location is set on the class? will
> Storable deal with an unset attribute on the instance?
Hmm... it will assume the attribute is None... so in this case, yes.
It will work as you expect.
> Looking further ahead, I'm not sure storing room/item descriptions in
> a normal schemamatic file is a good idea; if possible, I'd like to see
> them loaded from a CVS-friendly format.
haaaahahahahaahahahahaahahaha. ha.
If you want that, then the object descriptions should probably be
stored in the code. This might not be such a bad idea - we are
probably going to need to eliminate support for persistently storing
tuples as description elements anyway, because "list of tuples of
arbitrary length" is a pretty hairy datatype to specify in datamatic,
and it's more flexible to be able to adjust the specifics of your text
output by adjusting a method than by running an update script over a
database.
This is pretty consistent with the worldview we've got now, I think.
> From what I can see, descriptions are going to be the most work, after
> code; diffs and history for them will probably be important.
There is a larger issue here of how to version & checkpoint the map.
I'm not sure where to go with that, really.
> What role will game developers play in divunal? presumably we will not
> have 'normal' characters, nor will be have near-absolute control over
> our environs ('zero-story' again). I assume some of the 'archetype'
> stuff goes here?
We play the game normally. If you want to do something funky, create a
stat to do it, create tools to do it, then artificially boost your stat.
However, I'd like to discourage authors from thinking too hard about
these special characters up front. They should, largely, be observers
to the greater universe as the players are, and not an integral part of
it. Unless an author has particularly strong role-playing and writing
skills, they should not have 1-1 parity with an archetype. (What I
mean by this is - tenth is a special case.)
> At the start of the game, what will motivate players to collect Stuff?
> presumably once they have enough, they'll be looking for more stuff
> to maintain/complete/explain the things they do have
External direction of some sort. Possibly, external compulsion. If
it's compulsion, then the collecting of Stuff should enable them to
throw it off.
> (o/` the more you have, the more you have to have to take care of the
> things you have o/`)
Where is this song from?
> What's the deal with libraries? are we operating from Pratchett-like
> L-space assumptions?
Not quite. L-Space is just silly. Everything in the Library has a
reason for working the way that it does, and a great deal of conscious
effort went into making it that way. There is a reason that it's an
archive where they put all this stuff, too.
> Are libraries/bookshops in gameworlds magic, or just The Library
> itself?
To varying degrees.
The way I'd like to see this develop
> Is there any gameplay reason to check out books?
Yes. There should even be some quests for which it is a necessity.
This implies a "learning" system which I am far too tired to design in
detail now, but the gist of the inspiration I've got is:
* you need to learn how to do something
* you APPLY the DEWEY DECIMAL SYSTEM to locate it
* you READ the BOOK which you have recovered
* you perform the action on a small scale (pick a padlock)
* you READ the BOOK again
* you perform the action on a slightly larger scale (crack a safe)
* you RETURN the BOOK before it is OVERDUE
* you continue performing this action repeatedly until such time as
you fall out of practice (failing to do it for some period of time)
Also, overdue books are unhealthy for you:
http://www.achewood.com/index.php?date=03062002
> What are the gameplay mechanics of dealing with friendlies?
YES
> what do you feed them,
food
> what do you get from them,
stuff
> how much of a time investment are they,
some
> etc?
The questions you're asking here should be answered by a giant database
full of different answers to them in various combinations. The
questions are much more important than their answers, since they define
what the fields will be in the database :-).
The MMP game development book has a chapter by Sean Riley on his "data
manager" design pattern. It's relevant here - I believe his code
examples are in python.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (Darwin)
iD8DBQE+uX5DvVGR4uSOE2wRApENAJwMZ6aoxB+yBPp80I/0qCDlrKA94gCfapTF
zHxqY7C4cEt+molvPw+8Ahk=
=odmu
-----END PGP SIGNATURE-----