For networking, our concrete goals for the week was to get an echo server up and working, and begin developing a full server and client.
I was able to get an echo server and client working using Winsock, with both client and server running on the same machine. I also modified the server loop so that each iteration takes 30 milliseconds. Finally, I separated out the server and client code (originally, both server and client were being initialized and run in the same file) so that we can, in theory, run the server and client on separate machines.
I was hoping to get the echo server and client working on separate machines, but it seems like the lab computers have a firewall preventing inbound TCP connections. Since I myself do not own a Windows device and our code currently only works on Windows, I can't just run the server on my own laptop.
The goal for next week is to get a full client and server working, which means incorporating the game logic into the server, figuring out packet structures, modifying the client to recieve input from the user, etc. Additionally, though not originally a goal I had, I’d like to rewrite the server and client so that they can also work on MacOS, not just Windows. This way, I don’t need to be in the lab to work on my code.
Unsurprisingly, I’m getting a better idea of how Winsocks, as well as basic networking, works. I’m also slowly but surely relearning C++ (the amount of time I spent debugging basic C++ issues was frankly embarrassing).
I don't want to say that I currently feel good because I'll jinx myself, but I will say that I'm happy with what I accomplished last week and am excited to continue fleshing out the server and client this coming week.