Are you wanting something like a cloud-based ... browser/cache basically a users localstorage/db/browser data would be synched in the same format in the cloud?
How are you imagining this? (Burned out dev, looking for a side project).
Are you wanting something like a cloud-based ... browser/cache basically a users localstorage/db/browser data would be synched in the same format in the cloud?
How are you imagining this? (Burned out dev, looking for a side project).
I just wish there was a SaaS (much like firebase) where you sign up and have an API that lets you define the data that your game-state involves (which may be a large schema), and then provides you with a suite of methods for letting clients create, find, and join group sessions ("games", "matches", however you want to call them) where the game-state is synced across all clients in that session until the game ends, with each client being able to modify the game-state within defined limitations (i.e. play the game.) I suppose the server would have to know under what conditions a game ended so that it could notify all players and end the session.
It just seems very daunting to me.
With that said, I also want something like this and definitely think it's a problem worth pursuing. I know there's Photon for Unity but I don't know what it actually provides and it's obviously tied to a specific engine.
I know, I'm side tracking from productive conversation, sorry for that.
Of course, a lot will have to be done by you for anything like client-side prediction, server reconciliation, lag compensation, entity interpolation, but knowing that the state manages itself is already a huge relief if you are unfamiliar with these concepts.
Another project which already includes many of these features is https://github.com/timetocode/nengi. It is more opinionated and well focused on fast-paced games.
On my side, I have been creating an open-source multiplayer game for the browser that includes client-side prediction, entity interpolation and server reconciliation https://github.com/halftheopposite/tosios.
For the middle part, i developed https://github.com/NewChromantics/PopNotPoker as an alternative to boardgame.io for easy room creation, sharing, and most importantly to me, exetremely easy game rules (all async js)
The "netcode" would be stuck on top (player movement, voice chat etc), using a bit of player meta for say webrtc session sync (or udp addresses etc etc)
This is an approach I used for 25 years on pc, console and now vr & web games; have "keyframes" where the server/authority dictates new game state to everyone, and everything else is client side predicted and throwaway
I've been working on a new game on and off which is a bit less working with websockets directly and I looked at ably[0] to be that firebase like system, I've found it works reasonably well if you squint, though it's definitely not the same thing.
You can hack together a pretty nice implementation which gets you started using for example using presence[1] to store a minimal dataset associated with synced state. Then derive gamestate off that.
Which you can then expand on.
Though maybe you were wanting a more complete solution =)...
- [0]: https://www.ably.io
If anyone has experience with building this kind of thing, I would gladly pay for some consulting.
It has all the parts you would need to get any multiplayer game (from 1vs1 to MMO) working.
I'm working on a client that I will try to make more accessible (just like particubes and roblox are trying to do), but no matter how you turn it you're going to need some basic programming skills: