Previously, I’ve made some multiplayer games with Unreal and Godot, but maaan, after suffering all the client-server replication thingies and finishing my multiplayer games, then I had to manually make matchmaking stuff, user registration, etc.
Then, I found Nakama: Yay, realtime multiplayer, database storage, user login, google play purchase handling and all of that for free (except servers, you know). So, I got interested on making an Unity game with it.
I went a bit deep into the documentation and, if I understood correctly, there are no RPC events and data is shared with JSON files via webpackets with no udp or something.
Well, then, there’s the question. I want to make an online third person game, like Fall Guys, but simplified. So, I thought on making something like this:
Every player shares to the server their data every 0.1 seconds - So, they’re sharing their location, Z rotation (I only need the yaw rotation, not roll nor pitch) and finally, the player state = 0 is idle/walking , 1 is jumping, 2 is double jumping, 3 is dead… etc) Things like Idle/walking calculation are done on client side after gathering the data by comparing the current location with the last one.
That data gets sent to the server, and shared across the clients on a specificmatch.
And that’s it!
I don’t want a server authoritative game, having stuff calculated on the server side seems expensive and probably not worth the effort - hack the game as much as you want if you’re happy winning that way, just eat my ads and I’ll be fine.
So, can I do that? Or are there better ways? Should I even use Nakama?
Also, if sharing that kind of JSON data is the way is the way to go, does it get optimized? I mean,
seems like a waste of data when we compare it to this: