@docskull
The movement system works by sending two messages to the server:
Start) Actor begins moving in a direction
Stop) Player has released the movement button
The first message sends the actor in a specific direction. They will continue walking that way until they hit a barrier (Anything that would normally stop them). The second message creates a temporary barrier that only that actor will respond to. The barrier is placed ahead of the actor and disappears after the actor makes contact with it.
One thing to note is that the client only sees the movement that the server responds with. That means if you are using a remote server that is slow, the actor will only start moving a second or so after they use the arrow keys. This will come across as lag. Also, the actor can only move in one direction at a time and the keys for other directions will not move until the actor has come to a complete halt.
I used this system for my grid movement because low-bandwidth, accurate results were a priority for me. There are other ways to make multiplayer movement work though. You could change it to free movement so the actor can move any direction and change direction quickly. You could have the client move the actor without waiting for server confirmation, but then the server and client will never be quite in synch. You could sync client/server at 200ms or lower but then your bandwidth usage goes up proportionality.
One of the best movement systems is mouse-based with pathfinding (like Zynga games use). It is very efficient and doesn't require server confirmation, but you can't use it for PVP or anything with true collision.
In the future, I hope to offer multiple movement options so people can use the one that works best for their game. Still, anyone who uses this kit is going to have to learn network programming on their own since this isn't even a skeleton yet, just a taste of what is possible.