[cap-talk] 3D capabilities, metacapabilities API
John Carlson
john.carlson3 at sbcglobal.net
Mon Oct 15 02:28:41 EDT 2007
So we have OS capabilities and Web capabilities and Desktop
capabilities. What about capabilities for 3D games?
Is this simpler somehow? I've seen implementations that use ACLs
(Star Wars Galaxies) but I'm not much
into 3D games. It seems like opening up new levels and skills in
games is merely giving people more
capabilities--thus capabilities are widespread in games, and they are
definitely shared.
Does handing someone your shirt allow them to put the shirt on? Or
do they need a key? The shirt would
appear to be the key. But maybe you have a belt with a key that must
be unlocked before the shirt is worn.
How does one amplify rights or reduce rights in a 3D world? Can you
prevent capabilities from being
copied in a 3D world?
One nice thing about capabilities in 3D is that you can earn your way
to a capability.
How do you transfer capabilities between cooperating 3D worlds? Do
we need a standard capability
transfer protocol?
What's the user interface for maintaining capabilities so they can be
revoked? Do I need an iCap? Or
a bouncer?
It's time for me to talk to my friends who play video games.
Is 3D the killer app for capabilities?
I guess someone will tell me to go look at Croquet. Does Croquet
have keys to portals yet? Does croquet
even have inventory yet?
It seems like many of the capabilities found in 3D games belong to
the system. What I would want to
do is give users the capability to pass around capabilities to
information.
Would an API for capabilities that you could plug into a game make
sense, or is it just the way you
design the game in the first place?
What is the standard API for capabilities? Maybe I'll propose one:
public interface Capability {
public void revoke(); // do I need both revoke and alter ?
public void invoke(Object message ...);
public void alter(Capability c, boolean grant); // alter(this,
false) would be revoke
}
public interface Subject {
public void grant(Capability c);
}
public interface Petnames extends Map<String,Subject> {
}
This doesn't include stuff like attenuation yet. Perhaps someone can
add some more. What about
a way of finding Subjects? It seems like knowing Subject only allows
you to grant them capabilities.
It doesn't give you the capability to send them messages which is
good. So a directory of Subjects
won't be a privacy concern. My previous API design for messaging had
this flaw.
Could a Subject be the subject of a Denial of Service attack by
someone who is sending them a bunch
of capabilities?
John
More information about the cap-talk
mailing list