Finally. It took a few lines of code on the client to “fix” the issue of clients not being able to move and be visibly replicated to each other. It’s a terrible hack that just sends the most recent input thirty times a second. It’s terrible and I will be rectifying it. For now, I’m just ecstatic to see two players moving around and that being reflected by what’s on screen. I printed out the server source code which I usually find helps with tracking down issues as the pages can be annotated and organised to get a better handle on the whole picture. As the codebase increases in size, this becomes more difficult, of course.
Now that the client and server are both doing what I kind of want, I’m hesitant to touch anything lest it all break in the most spectacular fashion. At this point, I’m also tempted to hook up all the Dreamcasts I have on hand and see the players all moving around in-game.
The current to-do list looks something like this:
- Restructure the server-side code
- Allow players to set their name and colour
- Create a game list server
- Add a UI front-end to the server for management and a better overview of what’s happening in-game
- Add diagnostic information on the client and server (bandwidth, packets sent/received, uptime)
- Add network latency/reliability simulation tools
Once the above is done, it should be time to try an Internet-based network test. If there’s time, I’d also like to implement G.279 encoding/decoding before then.