Week 5 Status Report


Group Status Report:

  1. Summarize your overall status for the week
    1. Finished planting, growing and harvesting features
    2. Client-Server connected, 4 players can play!
    3. UI pushed to main, looks amazing but has yet to be connected
    4. Map added (might be too big?? not sure)
    5. Loading screen pushed (SO CUTE, ask us about it!)
    6. Alistair joined our team as an honorary teammate for networking πŸ˜‰
  2. Include both the week # and the date of the meeting
    1. Week 5, meeting on Tuesday May 3rd
  3. add a statement summarizing the group morale (feel free to be creative in expressing your morale)
    1. Honestly, amazing. Everyone on our team is so hardworking and friendly, and somehow we haven’t burnt out yet. Glad to have Alistair on the team :^)
  4. Screenshots
  1. Planting and Growing:



  2. Blooooooooom:



  3. Network connected (ALL HAIL OUR FRAT KING) with some planting, some memes, topped with our beautiful map:


  4. harvesting:



  5. Loading screen Animations:



  6. Potential in-game UI design:



  7. Shadows



Individual status reports:

Cher:

  1. Concrete Goals:
    1. Make more necessary 2D assets
  2. Accomplished Goals:
    1. Created some potential loading animations, with another draft or so on the back burner if we need them; also shoutout to Jennie for her animation work as well!
  3. Goals Not Accomplished:
    1. Any additional UI art that’s needed; stuff like how notifications when you have some veggies growing should appear and other visual cues that may be needed for facilitating gameplay
  4. Goals For Next Week:
    1. Finish the necessary art we find that we need, as soon as possible
    2. Help make it look more poppin in general
    3. Help out on other stuff if needed (e.g. we’re thinking about sound design + effects soon)
  5. What I’ve learned this week:
    1. Animation’s a little tedious but fun
    2. I recently tried getting more familiar with Maya to get a better feel for 3D modelling so I can be of additional art assistance πŸ™‚
  6. Individual morale:
    1. Kind of freaked out we’re halfway through the quarter already, but still excited about everything

Cynthia:

  1. Concrete Goals:
    1. Implement post-processing for game
    2. Import world and seed models from Danica
  2. Accomplished Goals:
    1. Implemented shadow mapping and integrated into game
    2. Created World class to render the world onto the scene
    3. Created Seed class to draw seeds onto the scene
    4. Created framework particle class to display particle effects
  3. Goals Not Accomplished:
    1. Bloom not in project (yet). For some reason, creating color buffers for post processing causes the UI to not display at all so I’m trying to figure out why that’s happening.
  4. Goals For Next Week:
    1. Get bloom into game without interfering the UI
    2. Get textures for the particle effects to test them out
  5. What I’ve learned this week:
    1. What color buffers are (for bloom)
    2. Basic understanding of how particle effects work
    3. It is important to freeze transformations before you export a model, otherwise the transformations end up being wonky
  6. Individual morale:
    1. Really happy with our progress this week! I wish I got to do more, but I was in and out of the doctors the last 4 days. Assuming all goes well, I should be fine after tonight!

Danica:

  1. Concrete Goals:
    1. Get to know the code base because I haven’t worked on it in a while and I feel like everything changed in 2 weeks
    2. Finish planting/growing/harvesting features
    3. Make the tools
    4. Research particle implementation
  2. Accomplished Goals:
    1. Got to know the code :^)
    2. Finished planting/growing/harvesting with the brogrammers
    3. Debugged some stuff
    4. Made the tool models
    5. Thinking about UI and edge cases
    6. Researched particle implementation
  3. Goals Not Accomplished:
    1. I was hoping to finish some of these features alone but doing it with the team made it much more enjoyable and made the relearning curve easier.
    2. Lowkey adding particles looks kinda hard
  4. Goals For Next Week:
    1. Add trading
    2. Debug the stealing function
    3. Figure out economics strategy and implement it
    4. Particles???
  5. What I’ve learned this week:
    1. Debugging with the team at 3AM is more fun than doing the same thing at a reasonable hour
    2. I can easily eat more than Jakob on ANY given day
  6. Individual morale:
    1. One more midterm left, but honestly, I’d rather work on 125 ?

Jakob:

  1. Concrete Goals:
    • get seed planting and harvesting working
    • get stealing working
    • get sprinting working
  2. Accomplished Goals:
    • Helped work on seed planting
    • got stealing and sprinting down
  3. Goals Not Accomplished:
    • Leon and Danica were able to implement the harvesting
    • I haven’t set up a stamina system yet with limited sprint time, stamina cool down, and stamina regeneration
  4. Goals For Next Week:
    • Stamina System
    • Money System
    • Get UI to send events
    • get interacting with the UI to take money from the player and put an item in their hand
  5. What I’ve learned this week:
    • i learned that we’re crushing it
    • im getting more familiar with how our different systems are interacting and have a pretty concrete vision on what finishing up the game will look like
  6. Individual morale:
    • HYPE

Jennie:

  1. Concrete Goals:
    1. Make UI to adapt the display dimension dynamically
    2. Add loading page animation
    3. Rebase and understand the new changes in the code
  2. Accomplished Goals:
    1. UI and fonts can dynamically adapt to the display dimension
    2. Make the loading page animation and move loading to an different thread ( but discover new bugs after multithreading …. )
    3. Rebase and understand the code. I figured out what’s causing the bug but couldn’t think of an way to fix it without drastically change the existing code
  3. Goals Not Accomplished:
    1. debugging multiple thread for loading
  4. Goals For Next Week:
    1. debugging multiple thread for loading ( or maybe just do one thread and have an simple progress bar ) The issue is caused by opengl function call in the model loading that blend the texture that the effect of GL function calls cannot be shared across threads. I am still not sure how to separated the GL function call from the rest of the code.
    2. build more UIs for map and sale page.
    3. Show loading scene when waiting for other client to connect
  5. What I’ve learned this week:
    1. Plan ahead for karaoke and design pattern.
    2. C++ compiler optimization will result in unexpected behavior that if there isn’t an variable storing the return value of constructor, the compiler will actual call the default constructor.
    3. OpenGl multi-threading is more complicated than I thought lol.
  6. Individual morale:
    1. Exciting for the team progress!

Leon:

  1. Concrete Goals:
    1. Finish plot interaction with seeds growing
    2. Finish plant harvesting (players taking a fully grown vegetable from a plot)
  2. Accomplished Goals:
    1. Helped finish the implementation for planting/growing/harvesting!
    2. Made GameManager static and refactored some code as a result of that
    3. Helped debug a memory issue that caused the game to be unstable when ran and not reflect any changes made in GameManager
  3. Goals Not Accomplished:
    1. Debugging some issues with harvesting different vegetable types
  4. Goals For Next Week:
    1. Fix and tweak all the known issues pertaining to harvesting (only some vegetables can be harvested and collision radius might be too small?)
    2. Implement the trading system
    3. Possibly get a working inventory system depending on time
  5. What I’ve learned this week:
    1. VS Studio can be weird when it comes to dependencies lol
    2. Debugging at 3AM with the team can actually be productive
  6. Individual morale:
    1. Have some midterms left, but still excited to keep working on this and seeing everyone’s progress!

Nicholas:

  1. Concrete Goals:
    1. Support multiple clients
    2. Reduce packet transmission size
  2. Accomplished Goals:
    1. Added support for multiple clients by making the server accept a pre-determined number of clients. Currently, the accept is still single-threaded, so the server and all connected client blocks until all clients are connected. The number of clients is also still hard-coded.
      1. Surprised by how well multiple-client collisions work
    1. Added capability for the client and server to deserialize packets that are larger than the default static buffer size. Implemented by pulling from the socket buffer multiple times to reconstruct the packet in a larger buffer.
    2. Added in-memory model caching during client initialization. Previously a model would be recreated over and over.
    3. Exterminated memory leaks, which was particularly important because even a trivial memory leak in the networking code adds up, considering that we’re sending and receiving a new packet every 8ms or so.
  3. Goals Not Accomplished:
    1. I have not been able to effectively reduce the packet size, because after profiling the packets, I found out that size-wise, the payload consists mostly of the model’s transformation matrix for the players.
      1. The server β†’ client packets are only about 1 – 2 standard MTUs anyway, so the optimization probably wouldn’t make much of a difference
      2. The way to not send this huge matrix is probably to compute the matrix locally client-side. Given the added complexity for only a small added benefit, I wasn’t sure the change is a high enough priority to risk more bugs in the code. This will be discussed further in future meetings
  4. Goals For Next Week:
    1. Increase multiple-client robustness. Right now, one client crashing causes the server to block, which causes all clients to also block. Also figure out other possible error conditions.
    2. Add networking configs. Right now, changing the server’s IP in the client needs a recompile, and so is changing the number of clients the server is expecting
    3. Explore non-blocking connection. When clients are initially connecting to the server, the single-threaded client blocks, which freezes the animation. Fixing this probably needs a change in the client-server handshake architecture
    4. Possibly help Jennie with the multithreading loading process, since the network part needs to tell the GUI part when the game is ready to start.
  5. What I’ve learned this week:
    1. Smart pointers are hard to properly use.
    2. Wifi sucks. Having one client connected through 802.11 pushes our latency up to around 50ms. We saw quite a bit of frame stuttering.
    3. Network memory leaks are nasty and accumulate quickly
  6. Individual morale:
    1. Midterms every week isn’t fun, but excited to put my best into this because the team is awesome πŸ˜€
      1. Besides 125 is so much more fun to do anyways πŸ˜‰
    2. Danica my 後輩 and my 干杯 partner


Leave a Reply

Your email address will not be published.