A clear eyed vision for gaming on ATProto

I'm writing this blog because I've been thinking about this in private for so long and really wanting to do something about it. Depending on how I'm feeling this may or may not be the first blog I make on leaflet, and well... in general really. Truly I'm not one to write my thoughts down in text. But lots of cool things are happening in atproto and in other niches I keep an eye on and now I feel compelled to write.

So, what is this clear eyed vision I've had. Well, I think atproto is in a unique position to be the sort of end-all social layer to all games. The first and most obvious thing it can help in is identity. ATProto is a powerful identity layer, and it is universal in that it can encompass many different services.

This is an obvious benefit for multiplayer games or co-op games as it means you don't have to rely on Steam or Google, or even Epic for this aspect. But the benefit doesn't end there.

I think the biggest benefit on offer for Indie games, well all games, is universal cloud save. I'm pretty big in the android/pc handheld scene. Or at least I'm big in watching it, since I don't have the money to really indulge in it. Right now, android handhelds are having a bit of a renaissance. And one of the big things I'm seeing is people trying to get windows emulators going so that they can get access to their Steam cloud saves.

This realization really opened my eyes to how much of a bargaining chip that is for Steams walled garden. Players have to make a choice between what version of the game they play, even for games that have native android versions, they lack cross save because it's such a hassle to spool up their own.

This is where atproto can shine. With atproto the back end is provided. Games can use the PDS of their users to hold the save data, and more importantly the user has full custody over there saves. Just today I saw a post where someone modded this into a game themself.

View post on Bluesky

I'm very happy and also jealous that someone beat me to this use case. But it's good it's happening. This is obviously very good for indie games, but there's actually another fantastic use case, emulators.

Emulators

Emulators would massively benefit from the use of atproto, just like with indie games many retro gamers juggle where they will play their games because there is no cloud save solution for it. And for sure, it's unreasonable to expect an emulator dev to make a backend and all the costs associated when they are often just doing this for free anyway. But with atproto that burden is diminished if not completely eliminated. Better yet, someone could make that cloud-syncing service by themself without the need of the emulators actively participation at all.

But atproto wouldn't be good for emulators just for game saves. I've been thinking on how it can improve some of these more demanding emulators. If you spend enough time around android emulation, heck even PC. There's much talk about getting settings right for your handheld for more demanding games. Like changing your drivers, your resolution, and any other arcane digital knob you can turn to try and get the best out of your device. This is especially true for windows emulations (or is it translation?). Getting the config just right for your processor and device can make a game go from playable to an unplayable stuttering mess.

Right now, the big guy in this is an initiative started by GameSir (a Chinese controller brand) called GameHub. It's a frontend to launch your android native games and more importantly run your windows games from your steam library. What makes GameHub good in comparison to their rivals (mainly GameNative an open source fork of Pluvia) is that games tend to just work out of the box. But the big thing here is that the tech stack for either of them isn't all that different. They're both running the same thing under the hood, what GameHub does that GameNative doesn't is keep an eye on the community and automatically apply working configs based on your hardware that they figure out themself or are told in their discord. So, what needs to change? Well, GameHub requires you to make an account with them and their app is closed source. And they are the ones who have to handle your Steam Credentials. I don't think they're doing anything nefarious, but that's still a crazy ask for closed source software.

Really the killer feature of GameHub is the configs, but they are just getting them from the community too, so why can't one make an atproto augmented version of GameNative that allows you to share configs. Those configs are then "liked" or used by others and eventually GameNative just automatically applies it to you if you have the same hardware. This keeps things in the spirit of open software and keeps the cost of doing it low since, yet again, a back end is not needed. And of course, any other software has access to this too and can implement it in their emulator as well.

The big one, Achievements.

Achievements are one of those things that atproto can revolutionize in my opinion. As it stands right now many people get achievements, but they are trapped on one platform. This is yet another wall in these walled gardens meant to keep you loyal to one platform. But with atproto these achievements can be placed in your PDS account and follow you everywhere. This would be a big boon because games could automatically give you achievements from the platform you are on, say Steam, and on the Atmosphere as well.

Heck, you could even get achievements for games that never got them! RetroAchievement should 1000000% be on atproto. And any other person could easily start making achievements for things they don't want to yet or haven't gotten around to like the more modern Nintendo consoles. Hell, someone could make achievements for old flash games, there really is no limit.

Now this is all good in theory but I'm sure some might be wondering how we make sure people aren't cheating it. Unscrupulous players might choose to write these achievements themselves without earning it. Well, this is actually already a solved issue! In fact, there's two implementations that could solve it! There's @badge.blue an early implementation of badge attestation from @ngerakines.me. And of course, Bluesky's Verification system. Badge Blue will place the record on your PDS and then attest to its authenticity. This is good because it leaves the record on your PDS and if something were to happen to the verifier like the service goes down. The unverified record could still be verified as long as the DID doc is live (correct me if I'm not understanding that right).

GitHub - astrenoxcoop/badgeblue: Define, Issue, and Verify Badges for ATProtocol Handles.

Of course, we could also do something like Bluesky's verification system. But I'm not so sure their implementation actually writes anything to your PDS, I think it just proclaims that people are verified from there account (correct me if I'm wrong). So, I'm not sure it's the right way of doing things. What I'm concerned about is longevity of records. What happens if that game company goes out of business and no longer can verify achievements. Well, they can still be earned, but they won't be verified or maybe there can be multiple attesters. However it is done, I think it's best to have the achievement live on the players PDS.

The Vision - what this could all lead to

All this was a long winded way to basically point out that atproto could provide an entire, cheap, easy to stand up alternative to things like Steamworks, Xbox Live, PSN, and of course the big player in the cross-progression and cross-play world, Epic Online Services (EOS).

The difference between this and EOS is that this theoretical "@works" or "atmosphere.network" would not only help in the basics like achievements, cloud saves, and identity. But it would also immediately give players access to the wider world of the atmosphere. Steam Forums? Just use blebbit. Want to post screenshots? They can be posted right to bluesky, no API needed. Want to livestream? Stream.place has got you covered. DM? Discord like services? All of this is either on the way or here already. And better yet, this can all be built into any client, it could be built into things like GOG if you wanted. No permission needed.

This dream was so fascinating to me it got me thinking about this idea of a sort of atmospheric console. These android handhelds and PC handhelds have gotten really popular. And when using these things people tend to use different launchers like Daijishō, Beacon, and ES-DE. But I got to thinking, what if someone could make an atproto powered version of these things. Something that had social built in, and sort of made a unified system so these handhelds almost felt like they are part of the same network. Then yet again someone had a similar idea:

https://www.youtube.com/embed/YNbPxLVS6KI?rel=0

This video is what really lit a fire under my ass. It's so funny because it is like my own thoughts made into a concept video. This doesn't exist yet but is under active development. But the big thing I noticed was that this will have social features. I wondered how they were going to do this and checked their discord. They have no idea too! 😂

If this theoretical atmosphere.network existed, then they could plug into that. The pictochat features could be a lexicon of their own. The friends? Base em' on atproto identities. The achievements could easily be tracked right from your PDS. This would give it that true console feeling and have it already be interconnected in the wider Atmosphere. And if someone else wanted to make another launcher or better yet improve one that's already out like Daijishō or Beacon? They can easily do that too; they don't need to ask for permission. They are now all part of the same network. And moreover, if all the emulators and indie games also adopted this theoretical atmosphere.network now there may be things like rich presence, cloud saves, and easier identity for netplay all working independently but also together under a unified stack that no one controls through a moat or walled garden like Epic Online Services or Steamworks. It's safe from all that because it is distributed.

Conclusion (this post is feeling rather long)

I'm gonna end it here. There're other ideas I have, like how game distribution would be killer over atproto. But I think my point is made. It's probably really obvious, I'm sure many of you already came to this realization. But I felt I needed to put it into words. By no means do I have the technical know-how to do this. But I may still try and do some of these things. I have some game ideas, and I'll likely integrate atproto into them.

If this inspires you to start some work on this vision, then I'm happy to have done that for you. If you see some technical details I got wrong, please let me know. I'm still learning. I hope this reaches people and they really discuss it, because I think it would be good for players and game makers alike.

Thanks for reading!