Random Ultima Online anecdote #2 – Horses inside players (2014)
Some years after I read this, I wrote <a href="http:&#x2F;&#x2F;canonical.org&#x2F;~kragen&#x2F;sw&#x2F;dev3&#x2F;lmu.py" rel="nofollow">http:&#x2F;&#x2F;canonical.org&#x2F;~kragen&#x2F;sw&#x2F;dev3&#x2F;lmu.py</a>, which is a simple one-file text MUD.  A little too simple, really: you can dig rooms, create objects, change their descriptions, pick them up, drop them, travel around, look at things, and chat with other players.  But there&#x27;s no way to program the objects to have behavior like walking around and picking things up.<p>It&#x27;s a bit verbose for me to include a full transcript in an HN comment, but maybe this edited snippet gives a bit of the flavor, at least if you speak Spanish.  Riyhor is the player&#x27;s name.<p><pre><code>    ? ver     
    Sipapu

    Estás en un lugar borroso, sin mucha forma visible, con un pozo.

    Sipapu contiene: Riyhor y pitbull.
    ? cavar este
    Otro vacío

    Estás en otra habitación sin características particulares.

    Otro vacío contiene: Riyhor.

    Hay salida hacia el oeste.
    ? renombrar aca El living
    Ahora aca ya no es “Otro vacío” sino “El living”.
    ? describir aca como Es un lugar bastante chico con tres sillas y una mesa.
    Descripción de “El living” cambiado.
    ? ver
    El living

    Es un lugar bastante chico con tres sillas y una mesa.

    El living contiene: Riyhor.

    Hay salida hacia el oeste.
</code></pre>
A slightly longer session is at <a href="https:&#x2F;&#x2F;pastebin.com&#x2F;GSf4Bske" rel="nofollow">https:&#x2F;&#x2F;pastebin.com&#x2F;GSf4Bske</a>.<p>The game world is pretty much just a Zork-style containment hierarchy, though implemented with Python lists and objects rather than linked lists, so, just as in Ultima, the player&#x27;s possessions are children of the player, the player is a child of the room they&#x27;re in, and all the rooms are children of the world.  Pretty simple.<p>But it turned out that, <i>despite having already read this story</i>, I&#x27;d implemented my own version of the same bug!  When you dig (&quot;cavar&quot;) it creates a new exit and by default also a new room, but alternatively you can specify an existing room to dig into.  But I&#x27;d forgotten to check that the destination was a room!  Even though you couldn&#x27;t program <i>player-created game objects</i> to pick things up, <i>players</i> could pick things up, and you could tunnel <i>into a player</i>, walk through the new exit into the player, pick up objects from their inventory, and walk back out.  In fact, you could even dig into <i>yourself</i>.  This did not cause other players to appear and start saying &quot;Malkovich Malkovich Malkovich,&quot; for some reason.<p>It was a pretty entertaining bug for a few days of work.