Thanks! I actually spent the majority of my time fixing latency issues. The movement actually is mostly client side, but I have to sync positions sometimes. With purely client side movement many issues arise like one snake lagging behind the other one due to rendering being slower on one computer, a snake turning a block too late on one browser because it gets the signal later, .. things like that. So I just sync positions when it matters.