World Items
[img=http://www.seabassandgazellestudios.com/uploads/2/0/5/7/20577194/6276435_orig.gif]
Dropped items are working well and can be picked back up obviously. This works between clients and all that good stuff.
Smooth Player Movement
What makes this an interesting topic is the number of approaches that can be taken. Below is a video I recorded of two clients on the same network to show the result of my current method of smoothing out movement
https://www.youtube.com/watch?v=PUCst_S-nHM
Anyone worth their salt will immediately shout out, "Well of course it was smooth! Both clients were on your computer or local network so there was no latency!" Well that is an excellent point but I only send packets every 50ms to reduce the network traffic and CPU usage of the server. This hopefully will allow servers to take on more players.
The server tick rate can be changed so you can easily allow for less time between movement packets.
Server To Client Instance Sync
What server to client instance sync means is that the client can communicate changes made to instances to the server. For example putting wood into a camp fire. The client can tell the server they put wood in a fire but unless that server is given an ID to refer to, it could be any of the other 100,000+ objects in the world. Now clients are given the exact ID of instances on the server side.
This was very difficult to set up due to the nature of programming networking. The world within the client is all fairly simple and most of it is handled by actual objects in the world. However on the server there are no actual objects. Everything is just memory that is being kept together in an organized fashion. A 2D grid that represents every chunk of the world contains within each chunk, a list of every object. The difficult portion is translating those lists into data that can be sent across the network. You can't just say, "GO MY BIRDS! FLY!" You have to write each variable as a specific data type.
Multiple Clients
[img=http://www.seabassandgazellestudios.com/uploads/2/0/5/7/20577194/932608_orig.png]
As you can see multiple clients can now connect and run around a server together. This definitely is not that exciting but it is another required step to completing the multiplayer. I'm proud of it and all the other work required to get this far.
Original Post: http://www.seabassandgazellestudios.com/seabass-blog/moving-at-the-speed-of-a-seabass-multiplayer-progress
Thanks for reading!
Real-time updates can be found here: https://twitter.com/Seabass_N