Could RTT be used to broadcast player-authoritative movement periodically?
-
Most of what I'm seeing related to RTT use-cases is chat, which is great, but the idea is it should also be able to be used for events. If we had a grid-level, and wanted players to be able to broadcast their position (not sensitive, so client authoritative is fine), would this be a potential use-case for it? Or is the idea that it would become too expensive what's really stopping its use-cases beyond just chat? Referencing this price calculation post here https://help.getbraincloud.com/en/articles/2500416-how-does-rtt-pricing-work . Maybe it would get quite expensive if many players were broadcasting their position to each other, since this example only assumes 5 people receiving the msg.
I guess really it depends on a number of factors, ie how often you broadcast that info as well. Basically a serverless solution for client-authoritative movement (the rest of the game is server/cloud script authoritative via cloud scripts) would be nice to give the players a feeling of community. Not having to set up server infrastructure of use relay servers would simplify architecture, only concern would be cost.
-
Hi Kuabs,
I guess the first question is "how periodically is periodically?". And how many players are you expecting to have concurrently?
Certainly brainCloud does offer global chat channels - that could be used to broadcast coordinates to everyone who is online [listening to the chat channel].
It certainly is an interesting use case.
Paul.
-
@kuabs A few things to keep in mind when using RTT:
-
There's a 2 KB max message size to broadcast to a channel.
-
RTT closes the connection after a couple of hours. The usual scenario that i've noticed is that it shuts down after 2 hours in the first session and upon reconnect sometimes it shutted down after 1 hour. So you'll need to have a fallback mechanism to handle that.
-
RTT has more latency involved than a fully fledged server solution so it wouldn't work for anything fast paced.
-
Api calls count depend on how many players are listening. Don't do that in a global channel where you might have thousands of players listening. Perhaps it's a feasible solution in a channel with <=100 players but it still depends on how often you broadcast it and you should keep in mind that for every broadcast in that case it will count as ~2 API calls.
In my opinion, this use-case is probably only viable in time-based games where player actions take minutes or hours or turn based games and even then you'll still have to combine it with cloud code.
-
-
All very good points @Panagiotis-Milios !