What is the "physics" of a world? What (do we believe) happens?

14 views
Skip to first unread message

Christopher Lemmer Webber

unread,
Nov 10, 2020, 2:15:26 PM11/10/20
to cap-...@googlegroups.com, Christopher Allen
And now for an intermission. Before I get to the next part of this
thread, where I lay out an attempt at an ocap-safe textual world syntax:

https://groups.google.com/d/msg/cap-talk/Wa6VR-k3bLo/NXAugow8AgAJ

... I want to talk about "what happens" in a world.

A game world has a state, it has inputs, and it has outputs.
Participants may be able to cause some actions, see some actions, and
see some effects. Which actions cause which effects might be entirely
known or not. The state of represented in-world objects might be
entirely known or not.

When players hear that something is happened, do they believe it to be
true? Could their eyes be playing tricks on them? Sometimes deception
is allowed and fun as part of the game rules. (In the Team Fortress
games, the Spy is a classic example of this.)

But sometimes all information is totally known, but future choices are
not and the probabilities of them being selected are in the minds of the
players sitting outside of the system, providing inputs and reading
outputs (Chess is a great example).

If you've been following along on the last few threads I've made on
cap-talk, you may have seen this table:

https://dustycloud.org/tmp/command-desc-ocap-acl.org.txt

The first two columns may make more sense in terms of the grouping than
they did previously, now that I've explained more of the problems I'm
thinking about. Maybe.

So anyway, "what happened"? More importantly, "what do I believe
happened?" Here are some game world types:


Anyone can say anything
=======================

Any object in the world can make (almost) anything "happen",
descriptively.

Few games absolutely approach this... at the extreme end is children's
make-believe games. Closer to this end is rules-light narrative role
playing games. Having these games work tends to require a group with a
strong amount of trust and consent and interest in exploring the story.

Without this, trouble can happen. There's a famous paper about
Lambdamoo called "A Rape in Cyberspace" which... has its own problems in
the way that it was researched I think, but is about a player that was
able to describe sexual acts occuring between them and others and the
game allowed any object to describe any action happening within a room
(and wide availability of scripting access), and so was able to describe
unwanted sexual actions between multiple players. (It's not quite the
case that you can do *anything* in Lambdamoo, you can't affect the state
of other objects, but you can say anything is happening.)

Note that by contrast, in such a world it is possible that some players
might be able to just as easily hand-wave away that such an event
occured. The article "Tiny Sex is Safe Sex" provides such an
alternative view, at least for the author:

http://www.hayseed.net/MOO/tinysex_is_safe_sex.html

I think this varies from player to player though. I have played some
role playing games where participants around the table that have been so
emotionally invested in their characters where the things that happened
within the magic circle felt truly real to them. Different players may
have different needs.

This isn't merely about sexual consent within a fantasy setting (I'm
trying to set up something for the next section where an alternative
structure is given). Similarly, in such a loose structure, if Mallet is
an object in the room says "Alice strikes you with lightning and you
are on the verge of death!" that may affect your next in-game choice,
even if Alice did no such thing. It may even affect how you feel about
Alice.

Thus, "anyone can say anything about anything" might not be sufficient.
Notably, linked data / semantic web / RDF systems which just consume all
available triples/quads without any sorts of checks on "yes, but who
said it?" might come to believe nonsense things.

Therefore, I think these kinds of systems are best when a magic circle
is small and with high trust.


The world is the arbiter of truth... within the world
=====================================================

Technically pretty much all classic-style MOOs and MUDs and etc follow
this, since they are the ones handing information to the player over the
connection. But some follow it more than others. In this variation,
there's a bit more "world control" about what's happening, and what is
possible. However the world still has strong say over what happened.
Mallet might not be able to say that Alice struck you with lightning,
but the world certainly can, even with no action on Alice's part.
However, intersting and fun and unexpected things can happen in a world
with a certain amount of mediation. It can be fun to not know what will
happen as I try to cross the icy bridge. Different worlds can provide
dramatically different game structures and play styles easily without
much coordination. But the world is the arbitor of truth.

One of the most interesting examples of this which I think also aimed to
address the issues of the previous section is the consent system in
Castle Skotos. A fascinating article can be found here:

https://www.skotos.net/articles/chezskoot.html

In this system, the game world mediates actions such as giving a hug or
a kiss or etc. Players are given the opportunity to consent or not,
defaulting to a decline. Trying to kiss someone who does not consent
within a time window results in them backing away. While your player
can *say* anything, your player cannot *do* anything, since saying
things still looks like they're your character vocalizing them. Trying
to vocalize things that aren't happening might result in you looking
quite mad.

To allow this, my understanding is that Castle Skotos does not hand out
full programming controls to all players, and in general a curated verb
list is handled by the server. Still, it's interesting.

Anyway, many games seem to sit somewhere in this territory. And it
could be that an ocap system could provide an intermediate approach,
where certaind developers are allowed to describe certain game events as
happening and not others.


Anyone can make a claim, but we know who made it
================================================

A different branch from "anyone can say anything" or from "the game
world can say anything" is that the world is just a communication
channel, and each object is only describing its claims about what is
occuring.

This is an upgrade from "anyone can say anything about anything" in that
at least we have attribution; this is like the kind of benefits gained
by adding the Verifiable Claims/Credentials spec to a linked data
system... while anyone can say anything, at least we know who said it,
and we can make our own judgements about what's true. It may even be
possible to have multiple participants sign off on what's being
described.


Full game state and full replayability
======================================

Here we sit in the realm of chess and of blockchains. Here certain
players have access to certain inputs. We do not have access to the
state of all brains deciding inputs outside of the system, but we can be
(within the realm of the abstraction) assured of all inputs and
therefore replay all current states.

This also has the result that everyone around the table can more or less
think through what would happen if different players played different
moves. I already know what's going to happen if I try to take one step
forward across that bridge if the bridge's behavior is pre-encoded into
the system. I'm less likely to be surprised because I probably have
most of the same game rules on my client as on everywhere else. This
might result in less magical variance and delightful surprises between
worlds, but clearly with the longevity of chess, much enjoyment can be
had.


Lockstep: full game state plus pre-commitments
==============================================

In the board game Robo Rally, all core game rules are made available to
the players before play, but turns can happen simultaneously and the
current state of the deck is unknown. Players all reveal their chosen
cards at the same time and hilarity ensues: you and I both try moving
our robots forward at the same time and bump into each other, etc. Is
there a way that we could run such a system layered upon the constraints
required of a "we're all playing forward all events" such as described
in the system above?

The Lockstep protocol provides a solution that can be entirely peer to
peer:

https://en.wikipedia.org/wiki/Lockstep_protocol

Even though we must all commit to our move at the same time and then
reveal in advance, we all supply a *hash* of our move. When all hash
commitments are provided to all players, the values behind those hashes
are shared.

This can also be used to coordinate the RNG seed for the deck so that no
player can have control over drawn cards (some complexity around if not
everyone can see your hand though that may also be possible, unsure).


OpenCroquet meets ocaps?
========================

Note that OpenCroquet seems to provide an interesting possible path
forward towards rich and interesting and varied worlds without a lot of
preloaded client behavior. If combined with an ocap system this could
probably provide a lot of fun variance between worlds. More or less my
understanding is that everyone is running the same VM being synchronized
over time. Different realms could hand out certain levels of ocaps as
in terms of how much authority they allow to be changed and this could
provide a nice amount of game scripting in world I'd think. However I
still think you probably wouldn't have as much "hidden information" as
might be desirable (I'd be delighted to find out that there's a whole
world of forest creatures that were around me all along and controlling
events in a way I hadn't previously realized). Maybe it could be
provided by combining with the Lockstep protocol as described above but
I'm not sure this is going to be easy to do in a "general"
way... lockstep application tends to be very bespoke.


Where am I going from here?
===========================

There are tradeoffs in all these systems. Often I think "The world is
the arbiter of truth... within the world" can be good enough for most
games I'm immediately interested in.

The challenge then is if my identity spans worlds. In order for this
approach to work, I have to have sub-profiles ("sub-avatars")
instantiated on each world, authorized by me to represent myself.
However, should these look "the same" as me? If they do, I might step
into a malicious world and find the administrator tricks many of my
friends into believing I did henious things that I would not have.

Anyway, hopefully this sets the stage a bit for some of the other things
I'll be describing for Spritely Fantasary soon. Hope it didn't stray
too off topic.
Reply all
Reply to author
Forward
0 new messages