Concrete Goals
My concrete goal for this week was simple: Get city slots and cities working, meaning that the player should be able to see slots, establish a city on a slot, and interact with that city. I also had a small concrete goal of doing some optimization work that would help us in the long run.
Accomplished Goals
I did it. I made slots visible and the player can found a city at a random slot with the simple hit of an F5. This, as always, took far more effort than I predicted. I realized that our previous definition for what a “City Slot” would be was a little off, so I had to rethink it. Further, I had to implement a way for us to define positions of objects on the surface of planets. To do so, I implemented a Spherical Coordinate System. Then, I had the slots drawn as spheres in one texture and cities as spheres in another texture.
I also got some optimization work done – namely singly-loaded-textures. This helped reduce our clients’ startup time and memory footprint by about 50%. Wow!
In the above clip, you can see slots being displayed on planets (They are the tiny suns on the sides of planets). You can also see my “founding” a city on the Sun, which creates the city model and displays it (A tiny Jupiter).
Unmet Goals
I definitely didn’t get as much done as I wanted to this week. This was mainly due to some totally awesome food poisoning that I got halfway through the week. Sad.
My unmet goals this week are twofold: First, I was unable to get a full-fledged slot/city system working due to our lack of progress on some other features (We’re running into some hitches in selection). Second, I was unable to meet all of my optimization goals. This was mainly because I had a hard time designing an optimization strategy for models, meshes, and textures since I did not design those systems. I do think I made some decent headway, however.
Next Week’s Goals
As always, my goals for next week are not yet set since we have not met as a team. However, I would personally like to complete my optimization work involving single-loaded-models and single-calculated-mesh-geometries. (Currently we re-calculate geometries every time we load a model or mesh).
Further, I want to get my slot/city functionality integrated with the unit selection system once that is complete. I also want to focus my attention on getting the UI off the ground. For our game, UI will play a very heavy role, and I want to make sure that we have something in place.
This Week’s Learnings
During this week, too much time was spent fixing bugs. I definitely learned my lessons in that OpenGL, by default, does not let you do graphics things in a non-main thread. I also learned a bit about graphics in order to optimize and display my cities.
Most importantly, this week I learned to always carry a trash can around the house with you when you have food poisoning.
Individual Morale
I’d say my morale is higher than last week, but lower than previous weeks. I’m very happy with the individual progress I made. However, I do feel like we have gone a bit stagnant as a team this week. The amount of new features that got pushed was noticeably smaller than previous weeks.
However, we did have an all-day meeting on Thursday where we got a lot of work done. It was a good opportunity for us to flesh out some details and solve some bugs. That event seriously boosted my morale.
I think the biggest hit to my morale is the continuous roadblock I run into while trying to implement features. I find that a lot of the classes we defined and architectures we created during the first few weeks are just far from reality. Our implementations differ from what we imagined. This is fine, however, it’s really a shame that we had to lose ~2 weeks of work in a 10 week class. As I’ve said in previous reports, we should have always prioritized implementation. We’ve learned our lesson and we are definitely doing a good job of prioritization now, but it’s a hard lesson to learn.