So nobody actually read the prompt.
I mostly used the lower level stuff, down to just interacting with CivetWeb itself for websockets and HTTP. HTTP for embedded debug-server, web-sockets for angelscript debugging.
In a prototype that did use networking I also mostly relied on remote-events aside from the default replication. I really didn’t care for the Controls
, it was needlessly limited and didn’t bring anything for how limited it was (such as prediction or state tracking) - even for a prototype I ended up expanding that into something very very fat and then having to widdle it down before sending it off.
Only 1 game (that is probably being played right now) I’ve made in Urho actually used networking, but it was done just before the SLikeNet move (it was the reason I did the initial RakNet work because kNet didn’t have the guts needed for LAN discovery and adding it was going to be hell) and that also used mostly remote-events but controls
were less of a problem because it was targeted onto older generic Sega-based racing hardware for the Cape-verde arcade market. So it was really a LAN game as there was a hub machine with the local router and the other machines are plugged into that. So networking wasn’t much of a hassle there since latency was almost a total non-issue.
IMO, the controls stuff is messed up. It doesn’t make sense given that Urho3D doesn’t really do much of anything fantastic regarding state. It’s not saving state, it’s not rollback capable, it’s just … meh - here’s this packet of generic data where we decided some info is sort of important, have at it bro! Just make it a generic VariantMap then and add some basic delta capabilities to VariantMap.