By using this site, you agree to our Privacy Policy and our Terms of Use. Close
drkohler said:
SvennoJ said:
Does the water lag when you jump in it? It should be clearly visible if all the water calculations are done in the cloud. Jump in, delayed splash, cloud responsible. Jump in, instant splash, more bollocks.

Sending a mesh of the waves and ripples is a lot of data, It basically is an entire terrain mesh that needs to be updated in real time.

What I can believe is that is synchronizes the seed for the waves so all players have the same wave and weather pattern. That's nothing new, same as having synchronized day/night cycle in multiplayer games. Yet we don't go touting the cloud for doing the light calculations :)

And of course it needs to synchronize the wave pattern as how else can you fight other ships, they need to be at the same height on both consoles. Yet there are far simpler ways to do that than calculate wave physics in the cloud. Dumbest thing I've read in a while.

Isn't this all too complex? I don't see any reason at all to synchronize anything.

They way I'd do it is

a) Occasionally send a byte ("Weather condition") over the net that says "It's stormy", "It's dead sea", etc. Let each console handle the weather accordingly.

b) In combat, send a byte/word for each bullet shot ("Damage condition") from the attacker that says "This will miss", "This will hit around there with % damage". Let the victim act on this byte/word accordingly.

Particularly with b), lag isn't that big a problem at all. It also doesn't matter what each of the two ships in combat is actually doing on each console at the very moment of firing, the guy who fires calls the shots (in every sense of the word).

The boats respond to the waves, go up and down, which needs to be the exact same on all the clients.

This is easy to do with a seed to generate waves with. The same as one seed can create the exact same procedurally generated complex minecraft world. All the rest is to tell each client where the ships are to add some extra waves on top, no need for complex interactions, procedurally generated wave patterns with likely pre calculated interference patterns is enough.

The cloud can direct the weather and conditions simply by telling each client to transition to a different seed at a specific time. You want to keep interactions being client and server as little and efficient as possible. Doing complex wave physics server side and sending a complete height map with speed vectors for all the nodes is not efficient.