Team Report
Summarize your overall status for the week
As a team, we are looking good. We accomplished all of our week 2 goals originally proposed in our spec. We had two team meetings this session (one on Tuesday and one on Thursday) and both were extremely productive.

Group Morale

As a team, our morale is high. We are making steady progress and taking our time to design things right. We are getting all of the bare-bones infrastructure out of the way and are looking forward to focusing on the “cool stuff”

Individual Report
What were your concrete goals for the week?
Raj: I had two goals this week: help Brandon on networking and define an INI configuration parser.
Brandon: My primary goal was to create and complete a networking back-end. As a secondary goal, I wanted to help members of the team better understand git, GitHub, workflows, and C++. (read full individual report here)
Dylan: Linking up the projects, adding Drawable and Update interfaces / classes into Core.
Sylvia: To make a basic gaming architecture of classes.
What goals were you able to accomplish?
Raj: I completed the INI configuration parser. The implementation includes an extendable base class, so defining other parsers, if ever necessary, would require minimal code. (Explicitly, descendants must define the reading logic and a getter and setter that respectively handle `string` values.)
Brandon: I was able to complete the full networking-backend (minus performance optimizations, comments, and clean-up) as well as give lots of comments on team pull-requests.
Dylan: I was able to link the projects successfully, add basic Drawable and Update classes, but not implement that as fully as I would have liked. In my extra time at the end of the week I implemented a simple Octree.
Sylvia: I was able to create a basic, object-oriented structure that contains unit, planet, city and slot. I also designed the player class that has simple manipulation of objects.
If there were goals you were unable to meet, what were the reasons?
Raj: Having minimum networking knowledge and experience, I struggled this week to fruitfully assist Brandon in developing the `heliocentric` networking package, `SunNet`. Brandon knocked out the package like a champ!
Brandon: Of course, when a programmer says they “finished” something, it isn’t entirely true. I was unable to clean up my networking code or make it more performant. I am satisfied that I decided to prioritize completion over performance, however. I may come back to performance once we learn more about how the networking-layer interacts with our game.
Dylan: I was unable to fully complete my goals, and only finish basic versions because I was blocked on a couple PRs and also didn’t plan as effectively as I should have.
Sylvia: I realize that my lack of knowledge in fields such as networking prevented me from offering constructive feedback to my teammates. Also, designing an architecture can get incredibly complicated and confusing.
What are your specific goals for the next week?
Raj: I aim to set up the server-side communication logic using the `SunNet` package and assist in core game logic development and design.
Brandon: Much like Raj, I am hoping to help with the server-side communications logic as well as establishing the concept of a “game” (Set up a lobby, players join and exchange names and IDs). I’d also like to clean up and comment my networking code (lest I forget what I did).
Dylan: Finish up my incomplete classes from this past week, fully implement the client’s update handlers that use Brandon’s network code, finalize the Octree, implement unit selection and the orbital camera.
Sylvia: Add more complex implementation of classes, create destructors and link functions with server.
What did you learn this week, if anything (and did you expect to learn it)?
Raj: Through Brandon’s thorough walkthrough of the networking package design, I learned a bunch about the low-level, OS networking API and the challenges it presents.
Brandon: I learned a lot about C++ smart pointers and sockets. I also learned that everyone has their own ideas and it is important to discuss ideas, otherwise each member of the team would work on their “vision” of the game. But most importantly, I learned that team meetings need to stay focused in order to be productive.
Dylan: I learned quite a bit about spatial data structures and also about how to better work with the team moving forward.
Sylvia: Teammates are my teacher. Also, no design decision is permanent because there are always edge cases to be considered.
What is your individual morale?
Raj: Overall, my moral is high. Looking at the team’s progress this week, I’m more optimistic than last week that this game is doable. However, I’m looking to ramp up my contribution and carry more weight.
Brandon: My morale is high – we’ve made lots of progress this week and I think we ironed out a lot of our kinks. I think if we keep our pull requests small (favoring many small PRs instead of few large ones), my morale will stay high and we will be able to iterate so fast.
Dylan: My morale is very high at the moment. We are moving along smoothly, the group is communicating effectively, and everyone seems pretty enthusiastic!
Sylvia: Group meetings really pump me up as I see that other teammates are as enthusiastic about game and graphics as me (or even more). Therefore, my morale is very high.
