[Divunal-author] tasty paste from toxic waste

Allen Short washort@twistedmatrix.com
Tue, 06 May 2003 13:35:48 -0500 (CDT)


----Security_Multipart(Tue_May__6_13:35:48_2003_300)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit


So! Today, I started to convert things.py to use the persistence
strategy formerly known as datamatic. Needless to say, I discovered
some interesting problems. Here are the schemata for Thing and
Movable, at the moment:

class Thing(components.Componentized):
    __schema__ = {
        'gender': int,
        '_adapterCache': DictOf(components.MetaInterface, components.Adapter),
        '_links': ListOf(ref('Thing')).
        '_implementorFilters': InterfaceFilter,
        'unique': int,
        'intensityBarrier': int
        }

class Movable(Thing):
    __schema__ = {
        'location':Thing
        }

So, a few things: first, DictOf doesn't exist yet. glyph says he is
working on that. Second, storing classes seems a
little... wrong. Perhaps _adapterCache needs to map interface _names_
to adapters? 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? Finally, how does inheritance interact with
__schema__? 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? Oh, and: does it matter if Movable.location is set on
the class? will Storable deal with an unset attribute on the instance?


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. From what I can see,
descriptions are going to be the most work, after code; diffs and
history for them will probably be important.

As usual, more random game-design questions:

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?

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 (o/` the more you
have, the more you have to have to take care of the things you have o/`)

What's the deal with libraries? are we operating from Pratchett-like
L-space assumptions? Are libraries/bookshops in gameworlds magic, or
just The Library itself?

Is there any gameplay reason to check out books?

What are the gameplay mechanics of dealing with friendlies? what do
you feed them, what do you get from them, how much of a time
investment are they, etc?

Allen



----Security_Multipart(Tue_May__6_13:35:48_2003_300)--
Content-Type: application/pgp-signature
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQA+uACJEd6n5DRBYM4RAkggAJ0QzzjN4tRuSjzUpuDd+Q+5Tc0VbQCdFb82
Ekl3rrs1ce2fss9eUUc4OFs=
=pfTg
-----END PGP SIGNATURE-----

----Security_Multipart(Tue_May__6_13:35:48_2003_300)----