Friday, October 12, 2018

[czuxouev] Giant multiplayer maze

Create a multiplayer dungeon which is so large that it is exceedingly unlikely for players to encounter each other, but still creates the illusion of being near other players.  It feels social but avoids the typical problems of social conflict that occur in multiplayer games.  It's kind of a joke.

Players wander around a graph of 2^128 nodes.  Every user starts at a different node.  Each node is labeled with a 128-bit bitstring.  We have a function F(p) which bijectively maps an input bitstring p to an output bitstring.  F is implemented as a 128-bit block cipher, with the key concealed from all players.   Two nodes with labels x and y are connected if F(x) and F(y) have Hamming distance 1.  The game can enumerate the neighbors of a node because F is invertible with the key.  Each room connects directly to 128 other rooms, and every room is reachable from any other room by passing through at most 126 other rooms.  By the birthday paradox, two players could meet if they both explore 2^64 rooms.

The bitstring also is convertible to coordinates, but this mapping is not secret.  Easiest is 128-dimensional space.  Between connected rooms are corridors, the continuous space inside them also needing coordinates.  They need to be threaded between rooms in a way that they don't intersect.  The game designer can also put linear adventures inside these linear corridors.

Because players inhabit some Euclidean space, distances between them can be calculated.  Maybe you hear sounds of nearby players adventuring, or get notifications of the presence of players nearby.  However, it is a maze, so even if they are physically nearby through a wall, it is very difficult to find a path to reach them.

Even if the coordinate system is high dimensional, the UI can be 2D or 3D, because we are just traversing edges of a graph.  The fact that your coordinates change in a way that is different than what your movement indicates might be annoying.

Each room being a nexus with 128 corridors leading out might be a bit overwhelming.  But it's easy to break a large node into a connected subgraph of nodes with lesser degrees.  They could be mini-mazes.

You can draw graffiti on a wall (perhaps as a navigation aid), even upload pictures to hang.  It is unlikely anyone else will disturb it, or even ever see it.  People might start abusing this as a data storage medium.

No comments :