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: https://www.patreon.com/cwebber
Wish me luck. More updates soon.
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 https://dustycloud.org/misc/mmose.pdf
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 good luck!
@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?
@amydentata @selfsame But Electric Communities was https://www.youtube.com/watch?v=KNiePoNiyvE
@selfsame @cwebber see old Metaverse Working Group http://webseitz.fluxent.com/wiki/MetaVerse
@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 still huge.
@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)
@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 http://lpc.opengameart.org/static/lpc-style-guide/index.html
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 opengameart.org and you'll find it
@clacke heh I'm not familiar with that one...
@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.
@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! 🤔
@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.
http://mkremins.github.io/blog/doors-headaches-intellectual-need/
@cwebber
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!
@cwebber
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
@clacke
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
@clacke
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
Tx
@cwebber
Oh, I also address retroactively verifiable partial information on interaction with procedurally generated locations in a relocatable game for distributed environments. Just saying 😎
@cwebber
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 👍
@cwebber just want to note: #freedombox comes with a #mintest server 😉
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.