Nora's Week 4 Report

what were your concrete goals for the week?

My goals for the week were to complete any remaining foundational tasks needed to move into core gameplay. This included enabling client-server connections over arbitrary IP addresses so that different machines could communicate reliably. In parallel, I aimed to begin early gameplay systems by defining how client inputs would be structured and how the server would respond to them. I also planned to start implementing basic animation systems and lay the groundwork for collision detection.

what goals were you able to accomplish?

I made strong progress on the graphics and rendering side of the project. I implemented a SkyBox system as a new class that renders an inside-out unit cube using a dedicated shader. This includes using the xyww depth trick so the sky consistently renders behind all geometry. The skybox is procedurally generated using fractal Brownian motion noise to create layered nebula effects. I also implemented a StarField system that renders around 8,000 stars using GL_POINTS. On the engine side, I updated the camera to expose GetViewMtx(), GetProjMtx(), and GetRotationOnlyViewMtx() so that sky elements can ignore translation and appear infinitely distant. I also updated the renderer to handle a dedicated sky pass with depth writes disabled and proper depth testing before restoring state for normal rendering. I replaced the placeholder cube model with an actual low-poly player ship and implemented a Mesh class that loads .obj files using tinyobjloader. The renderer now instantiates Mesh objects instead of cubes. I also spent time attempting to run the client-server system across different machines, including lab computers, but ran into network/firewall issues again that prevented successful connections.

if the week went differently than you had planned, what were the reasons? note that this happens regularly...I would prefer you to be aggressive in what you want to try accomplish rather than limit yourself to goals you know you'll easily achieve. so answering this question is more of a reflection on the development process and the surprises you encounter, it's not at all an evaluation.

The week shifted more toward graphics and rendering work than I originally expected. While my initial plan was to focus more on networking and gameplay systems, I ended up going deeper into rendering. There were also unexpected blockers with networking across different machines, likely due to firewall or network configuration restrictions, which slowed progress in that area. Currently, we do not have any ideas of what to try next in regards to this issue.

what are your specific goals for the next week?

I think the main focus for next week is to begin implementing physics systems, especially since movement and camera systems are now in place. This includes handling player motion more realistically, integrating collision detection, and ensuring consistent behavior between client and server. I also want to continue progressing on networking reliability so that multiplayer interactions can be tested across different machines.

what did you learn this week, if anything (and did you expect to learn it)?

I learned a significant amount about real-time graphics and rendering techniques, particularly shader-based procedural generation and rendering pipeline structure. This included concepts like skybox rendering tricks, depth buffer manipulation, additive blending, and procedural noise for visual effects. On the networking side, I continued to learn more about how local and external network configurations, including firewalls, can interfere with client-server communication.

what is your individual morale (which might be different from the overall group morale)?

My individual morale is still good. I've been mostly working during lecture time, but I recognize that I could put in additional hours outside of class if needed. I feel productive overall and engaged with the project, especially with the progress made on rendering and systems groundwork.