1) What were your concrete goals for the week?
My concrete goals for this week were to add some abstract classes to the Core library that was being developed that the Client would make use of to render as the server sent updates, and also to set up the groundwork for handling network updates.
2) What goals were you able to accomplish?
I set up a lot of basic classes with half implementations so that I could start connecting everything properly, even if not all the data or functionality we would eventually want was there. I added Update classes that the server would be using to push updates to the client, added a very basic implementation of unique ID generation for both the server and client, added basic interface for the client to render game objects that wouldn’t interfere or slow down the server’s processing (however, it will have a minor impact on memory usage).
After writing a bunch of these classes I changed the visual studio project and solution settings such that our shared libraries, Core and SunNet, would output static libraries instead of executables, and our two application projects, Client and Server, would link with the header and library files of these projects so that their code can properly be used.
After linking everything together I had hoped that a couple of PRs would be fleshed out and merged, but they were still under review and being changed. That is, the model rendering and loading that Jessica was implementing which added a lot of great changes that I would want to make use of in the Drawable interfaces I added, and the Core libraries that I had pulled into my code to make use of despite not being merged with master from Ethan and Sylvia. So my code is currently waiting behind those two to get fixed up and merged in once those changes are finalized.
This meant that I was blocked on finishing this changeset and so I looked for something else to do and decided to jump ahead a bit and work on implementing the Octree that we planned to use for both rendering efficiently, and doing unit selection in the client. I completed my initial, fairly inefficient implementation and just need to more thoroughly test it now.
3) if there were goals you were unable to meet, what were the reasons?
Although I completed basic implementations for linking things together, I was unable to thoroughly flesh out the graphical interfaces to sync up and draw on the Client with by the end of the week. This was both due to time and a failure on my part to talk more with Jessica about her changes and maybe pull them in ahead of them being merged. I was unable to complete an Octree implementation that successfully updates over time, and in its current state must be completely rebuilt each frame. This may or may not be sufficient since so many of the objects in our game will be moving so much anyways.
4) What are your specific goals for the next week?
My specific goals for next week are to finish the implementations of the Update classes so that they work properly with Brandon’s network code and to fully implement the update handler’s on the client. Additionally this means syncing with Jessica’s changes in order to finish the Drawable interface and then writing the code on the Client’s display loop to start drawing everything we are getting from the server. Additionally, finalize the Octree implementation and implement unit selection with the mouse, and along with that the orbital camera movement mode.
5) What did you learn this week, if anything (and did you expect to learn it?)
I learned quite a bit about implementing spatial data structures during the octree implementation. Though tricky, I think I found a good middle ground between performance and design complexity. I can always go back later and update it if we find it isn’t meeting our demands.
Additionally I learned that group coordination is not easy, and slacking a little on PR review is a great way to really slow the whole group down, and I plan to stay more on top of that in the coming weeks.
6) what is your individual morale (which might be different from the
overall group morale)?
My morale is very high at the moment! We made some great progress this week, and everyone is showing great enthusiasm for not only the game, but the development process. On the client side of things specifically, Jessica churned out some massive, high quality changes this week that I really look forward to using in my planned work for this next week!
There have been some growing pains with the development process of the group, but things are starting to move more smoothly and I’m very optimistic!