So I have an announcement. I sent an email to my work saying that I wanted to be able to focus on my work on taking advancing the federated social web to the next level. Read: better security / abuse resistance, richer interactions, virtual worlds.

How will I be funded to do this? I don't know. I do know that the state of the political world scares me enough that I feel I have to do this. If you want to support me:

Wish me luck. More updates soon.

Let me clarify what "virtual worlds" means. Those who were around in the 90s may remember MUDs and MOOs and etc, which were massively multiplayer games before that term existed. In a sense, social networks today are degenerate forms of this design: we can talk to each other, but we aren't immersed in a sense of *place and interaction*.

The system I intend to build (Spritely) will allow you and your friends to program your social worlds together. Build it, dream it, make it.

If you want more hints as to what I'm thinking, I gave a presentation on this which contains some of my thoughts earlier in the year

Here's the crux though: I think making a decentralized social web that's hard to censor but focuses on protecting users is *critical* for the survival of freedom and autonomy of everyday people, *especially* in this political environment.

But what's the most common self-hosted server on earth? It ain't fediverse software, it's Minecraft. Why? I think the appeal of building a world with you and your friends is very appealing.

If we can make it very easy in-world to be able to program the entities you're interact with as you walk around and talk, that could be a big win.

Imagine if we ran fediverse software *as a game* that people played... that would give motivation for people not currently interested in the fediverse to join. Kids would play it, teenagers would play it... and now imagine if we hook it up to Tor .onion or I2P addresses, etc. This could help normalize the behavior of using those systems as much as https is normalized today. When everyone uses it, that can help protect politically at-risk groups, activists, etc as well.

@cwebber loving how dangerously close to second life this pitch is

@amydentata @cwebber right, like what if it had been impossible to shut down second life?

@cwebber I never played it or had any interest in it but I thought Minecraft was a 2010 type thing. Is it still going ?

@andyc It's also increasingly being used in educational environments to teach students ideas like how to code, etc.

@cwebber Fair enough. I stand corrected. I think it's great that people want 'to create'. Most folk seem content to lurk and consume and consume and offer nothing of worth (myself included)

@andyc @cwebber I think part of this is barriers to entry. Second Life is complex and labyrinthine. Minecraft is very accessible, especially to kids and anyone older who grew up with videogames. It has to be easy to create, and the software has to run *well* on a wide range of systems.

@andyc @cwebber Minecraft also offers other forms of interaction (exploring, fighting, just mining by itself) for those who don't want to build, and they're deeply embedded into the world and systems, unlike in SL where any additional functionality is proprietary and localized.

@amydentata @andyc ABSOLUTELY on accessibility. I am shooting for aiming for low-barrier-to-entry content first.

The first engine that will be introduced will be for textual worlds with *some* amount of interspersed images, like oldschool 90s MUDs and etc, but with a bit more support for point-and-click interaction so new users aren't confused.

It could take weeks to model a cool robot and rig it to behave. It can take minutes to type up the equivalent text version.

@amydentata @andyc That said, once the text version works, I will probably look at building a top-down 2d engine world into the system also using the Liberated Pixel Cup assets and style guide

Sekret: when I helped run the LPC years ago, this was part of the long-term con.

@cwebber Interesting. I did not know about LPC. Torn between excitement at the concept, pleasure at this starting point, sadness that all the characters are oh so very caucasian.

@metagrrrl yes that's something frustrating about the original LPC, but the good news is that people have dramatically expanded LPC to have non-caucasian bodies, and many many other things.

Search LPC on and you'll find it

Mentioning LPC in a MUD contest, you for a moment had me thinking you were talking about NannyMUD LPC. 😀
@clacke I've got a funny behaviour on my fediverse client. Everytime you post on a thread I liked/fav, I get a notification.

Seems like the problem only appear with you, since you are my only friendica contact, I guess it might come from the friendica/pleroma federation.

Anybody else gets the same problem here?

@kaniini @lain , is it a known bug?
Capture du 2018-10-12 14-52-08.…
Hm. Friendica has a bad habit of @-ing too many people, but that's not the case for e.g. the LPC/MUD post.

Hello @Michael Vogel , there seems to be something up with the AP plugin here?

@Ninjatrappeur Thanks for reporting.
@Ninjatrappeur @clacke @lain

no, it's because of the way friendica distributes replies. it cc's everyone that it knows is participating.
The secondary audience receiving a notification does not sound like it's in the spirit of… , but it's admittedly not written very clearly.

In terms of implementation history, it's not how it works on
@clacke the secondary audience receiving a notification likely is not, I agree, but the notification system is still kinda stubby.
LPC is the programming language of NannyMUD/LPMud, an object-oriented language describing all the objects in the world and how players may interact with them.

It would later be further developed to become , the backend implementation language of the Roxen web application server.…

It's an interesting reversal of how you are now taking a web application protocol to make a MUD. 😀

@clacke This is part of the theory behind Spritely: the dream to build a distributed massively multiplayer secure gaming environment might not succeed, but that's okay because it will almost certainly result in very interesting things. Flickr, Google Earth, much of object capability design, Python's Twisted framework... all of these things started out with the aim of building such a massively multiplayer game.

So I think even if the game bit doesn't succeed, we'll end up someplace interesting.

@cwebber @andyc I think the mass-market breakthrough with virtual worlds beyond stuff like Minecraft will probably be VR, in the distant future. But VR will be a series of aggressively walled gardens -.-

@amydentata @cwebber @andyc I so very much want them to be a federated mess of servers, where you can have your one identity and walk from one world to the next, hosted on a different machine.

Snowcrash had that, at least the way I interpreted it. One of the Second Life clients even called itself "metaverse", borrowed from Snowcrash. And the free software implementations of Second Life had some kind of federated grid, but I'm not sure how well it worked/works and if anyone was/is running nodes with that functionality.
I think one aspect of Minecraft, intentional or not, is that the "uglyness" (which is in itself intentional) lowers the barrier to entry in terms of expectations. It feels permissive to contribute to a world where everything isn't super polished.

@andyc minecraft is still HUGE with my 15yo and his connections

@cwebber If we could also have it so you are the same ID across all of these worlds that would be a huge win.

@craigmaloney Yes I have thoughts on how to do that.

"Spritely" is an overarching umbrella for a series of projects and demos I'm going to release, eventually culminating in Spritely itself, so some of the first demos won't have this, but as we get closer I hope to have this be a key component.

As you probably guessed, my work on the Goblins actor model library for Racket is aiming towards this.

@cwebber Yeah, I figured that was part of where this was headed. I think I'd better brush up on Racket. *Sigh*. One more thing to juggle. :grin:

@cwebber how would this system deal with griefers/trolls/abusers when everyone is behind anoymizers/tor etc?

also, see content fingerprinting, linguistic analysis, for identifying users based on usage patterns rather than specifically indentifying information

@sivy I have comments on that. I think that if the fediverse and actual anti-abuse works, it effectively has work on the same level as if most participants were "anonymous". Consider that even now anyone can spin up a node and start sending you messages. How to deal with that?

One approach is to not assume that everyone can equally message you by default and that you have "one inbox". Instead, there may be different inboxes that you hand out to different people depending on trust.

@cwebber I love the idea of private/custom inboxes and it seems like something AP could support pretty easily

@sivy I agree that this will not work if we assume that twitter/facebook are the "ideal" examples of how social networks work. But if we throw out that initial assumption, there are good places we can go.

@cwebber I'm also thinking about social networks in the context of games like the ones you're imagining - right now, for example in minecraft or other multi-user games, if you're on the server you can interact with any user on that server, making griefing (in-game trolling) very easy

I'm so glad you're thinking about this stuff

@cwebber also, like, in a multi-user shared environment the concept of blocking/muting seems like it would be much more complex: is the user "invisible"? "non-interactable"? can they "create" in the environment? can you interact with something a muted/blocked user has created in the environment?

so many questions! 🤔

I never realized before that the way I give every e-mail collector out there their own e-mail address to potentially spam is actually an example of a capabilities system.

@cwebber Interesting approach: unlike apps/tools, the best of which are unobtrusive, efficient, and get you to your goal as quickly as possible with the minimum of effort and then get out of your way, games are the opposite. Sure, the controls must be usable and the mechanics fun but the whole idea behind a game is that it is a challenge and a journey and you don’t win right away. Hmm… 🤔

@aral @cwebber I think a lot of web interfaces are assuming the user knows beforehand what they need and why. We need to do better at problem/solution ordering.

I'm very interested in decentralized games on top of ActivityPub. I have design patterns for tracking of virtual assets, seeding locations in procedurally generated worlds, and pacing (tick speed or turn rate depending on frequency) in a decentralized environment that I want to see in infrastructure. These core mechanisms currently get reimplemented with each game, but can be implemented agnostic of game logic so game worlds can be maintained in a distributable ledger

@AceNovo Thanks for reaching out! I think there may indeed be some uses for distributed ledgers, and cross-game money may be one use of them, though I think there are also a lot of places where an ocap actor model provides what's desired without the overhead of a distributed ledger has (and with support for private scope). The right tool for the right job, and all that.

If you've written something up, I'm happy to read it!

I understand the actual uses for blockchain. Here it makes it possible to have game worlds or asset collections independent of hosting by separating trust, game logic, and game data. The pattern is still beneficial without a ledger, but then hosts maintain canonical representations of entire game worlds in real time. Valid trust with the client moves peak use load into lazy validation.

I'll copy the details into a more accessible place

I guess you're keeping yourself informed on what Decentraland is doing?

No, I'm not following news at all. Most activity in blockchain seems to be about capital. I'm interested in applications that reduce the role of capital or make capital accountable

I was talking about understanding the mathematical characteristics of the trust model. I want to continue work on a sector based space opera my mentor in game design abandoned 20 years ago

The attraction of working with the OP is the focus on the social network, but I'll look up Decentraland

Decentraland is a dystopian look into what would happen if blockchain enthusiasts took over the OP's project. It's Second Life on Etherium

The problem is that a lot of gaming is dominance fantasies. This appeals to fascists, AnCaps, and techbros who want to impose themselves on others in arbitrarily constructed realities

I really should be emphasizing the distributed VCS model for antigriefing characteristics rather than the trust model for save points


Oh, I also address retroactively verifiable partial information on interaction with procedurally generated locations in a relocatable game for distributed environments. Just saying 😎

It's fun rereading this a year later

The main change in perspective is that I'm no longer thinking in terms of building against an adversarial network. So, in designs like what I'd fingered blockchain for a year ago, I'm working towards situations where we can trust a service to sign a commit log (without a consensus algorithm) as long as we keep the log in a distributed store

Now, I'm particularly looking forward to the mutable data store because I have an idea about how to make game rewinds practical for replayability as well as for undoing griefing damage

Not that you're holding me up. I just switched working on infrastructure with other things. I don't have any recent releases, but it's restful and I'll look like a hero as your subprojects come through 😂

2021 its going to be fun 👍

Sign in to participate in the conversation

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!