A Google Wave bug then. Thanks for answering :)
I'll file a bug report.

On Jan 14, 4:15 pm, Eyal <[email protected]> wrote:
> I encountered the same behavior. What I did to work around it was to
> send a dummy first key and then the rest of the data, all as one
> delta.
>
> On Jan 14, 5:02 pm, HaiColon <[email protected]> wrote:
>
>
>
> > I'm currently writing a multiplayer Match 3 style game for Google Wave
> > (Match 3 = If three or more blocks/gems/whatever of the same color are
> > aligned horizontally or vertically, those blocks are destroyed, giving
> > you points. The blocks above the destroyed blocks fall down and the
> > now empty space at the top is filled with new random blocks, giving
> > the illusion of an endless supply of new blocks falling down. A game
> > move can swap one block with another one that has to be 1 block to the
> > left, the right, up, or down of it and the move has to cause the
> > destroying of blocks or the move is invalid).
>
> > With every move made I do a submitDelta, submitting the game move.
> > What's happening now is that first, Wave sends the last state that was
> > sent through a prior call to submitDelta() (the game move before this
> > one) and then it sents the new state that was submitted with
> > submitDelta() just now, thus sending every submitDelta() twice. I
> > verified with wave.log() that my code only sends one update so I'm
> > 99.9% sure that it's not a bug in my code.
>
> > Is this the intended behavior, or a bug? And if it's intended, why is
> > that so? :) I can't really think of any reason why this would be
> > intended behavior but I may well be wrong.
>
> > To circumvent this behavior, I added a timestamp to every submitDelta
> > () call and my code checks the timestamp and doesn't apply the changes
> > it receives if it already received a state change with this timestamp.
> > This seems to be working fine. Here's a video I made just now of the
> > game in action with this workaround 
> > applied:http://www.youtube.com/watch?v=bdrBIW50N4k
>
> > Also, could someone shed a bit of light onto how Gadget state works
> > exactly? From looking at the debug log in Wave, it seems that with
> > every submitDelta, everything you ever stored in the gadget state is
> > sent over the network, instead of just the parts you just submitted
> > with submitDelta. Is this true? For my game this is a bit overkill. I
> > have to store a few hundred (maybe thousand) pre-generated random
> > colors for new blocks (those that replace destroyed blocks) so that
> > every Wave user of the gadget sees the same new blocks in his Wave
> > client when blocks are destroyed after a game move. I only need this
> > list of colors transferred once every time you open the wave that
> > contains the gadget, so sending it only once would suffice. It does
> > look like Wave sends this list of random colors with every game move
> > though, even if I don't access it with wave.gadgetState().get
> > ("randomColors"). I hope I'm wrong about this ^^
>
> > Thanks in advance for any information about this.
>
> > Cheers,
> > Chris
-- 
You received this message because you are subscribed to the Google Groups 
"Google Wave API" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-wave-api?hl=en.


Reply via email to