5 ms·
Two really different performance domains to be concerned about? This sort of fine-grained simulation is expensive, whereas rendering of the fairly-simple sort
by kemayo 8y ago
Two really different performance domains to be concerned about?
This sort of fine-grained simulation is expensive, whereas rendering of the fairly-simple sort the screenshots imply just isn't.
(I'm assuming that the backend Rust server is doing the expensive simulation stuff, and just sending the display data to the client.)
- gmueckl 8y agoThe simulation state can be huge. Streaming all of it would be pretty bad. Streaming only parts leads toneedless latency when other data is required. WebGL is not the smartest choice to me. Running things locally with only input replication between players should be the better choice. But this requires a 100% reproducible simulation.
- setr 8y agoIm not sure how WebGL would impact syncing simulation state across clients Or how opengl/vulkan/etc would be better (I also dont see why they’d impact client syncing) Unless webgl does something more than rendering..? The same data is (eventually) required for any rendering engine, regardless of how you sync the simulation
- gmueckl 8y agoSorry I meant WebGL only as a shorthand implying a web stack with a server, a browser and JavaScript. That was an bad choice of words on my part. It was not meant to single out WebGL as a rendering technology. However, more sophisticated APIs could allow more techniques for offloading more of the filtering and mapping steps of the visualization pipeline onto the GPU. Even some simulation could be accelerated, although it's often not worth it in practice.
- deleted 8y ago[deleted]
- theanzelm 8y agoThe whole idea behind dumb client/simulation server was to be able to support cities too big to be simulated on one machine (the simulation server can be distributed). I already have quite sophisticated streaming logic that basically makes sure only deltas of everything are streamed. Latency is not really an issue in this kind of game, for most player inputs I can even do simple optimistic prediction on the UI side, which works fairly well.
- gmueckl 8y agoLatency semms to be an issue to me when new data is requested that has not previously been streamed. Honestly, sending deltas always seems like a bad idea to me as this allows subtle synchronization issues to derail simulations bit by bit before the divergence is big enough to be noticable.