Week 8 Report

Group status

Meeting: Sunday, May 26, 2024

We added sound effects, ways for the boss to sabotage, crafters and spawners, and a crosshair! We need to continue working on finishing the rest of our gameplay.

Our group has mixed feelings because half of us got sick. Many of us are worried about being behind, but we’re confident we can get back on track.

Individual statuses

Nick

  1. My goal for this week was to do a lot of things from audio to movement tuning, and just like a lot a lot of things. You can probably find all of them in a previous weekly report but it’s okay because I did none of them.

  2. I ended up not doing anything besides adding a silly little html crosshair element that we’re probably not going to be used in the final game

  3. I caught covid for the first time and I was wiped out for most of this week :(

  4. This week since I’m finally starting to feel better, I want to start implementing the core game loop for what the players will experience in the demo. This means putting players in a sort of lobby while waiting for people to join (or literally just moving the players to a position in the air in a starting room while the players populate), having some sort of countdown clock in which the players can move around and do things in. Hopefully not much more than this is needed to have a complete MVP.

  5. I learned that I should not have put off getting the (4th? 5th?) vaccine. covid sucks

  6. I am in disarray but I guess I’m slowly picking up the pieces to put things back to normal.

Marcelo

  1. what were your concrete goals for the week?

    GAME PHASES

  2. what goals were you able to accomplish?

    I switch goals to creating some sfxes and i create some sample ones

  3. 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.

    Unfortunately I realized i got covid and accidentally got Nick and Sean covid as well 💀. Due to this I work on something less intensive than coding - sound designing. I hope to recover soon and I want to code some fun interactions.

  4. what are your specific goals for the next week?

    game phases.

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

    I learned that I should design sounds in mono files so that I can support playing the sound from a directional source.

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

    A bit nervous due to the unexpected circumstance

Tyler

No report.

Killian

  1. My concrete goals for this week was to concept a finalized version of the map so I can start concepting it this week.
  2. This week I was able sketch the finalized version of the map but since I was home with no access to my PC, I couldn’t do much more than that.
  3. For this week, I mostly kind of met my goal but I wish I could’ve done a more thorough drawing.
  4. Next week, I want to focus on modeling everything else that we need for the game, along with a solid version of the map.
  5. I don’t think I learned anything new this week, except for maybe more about exporting Blender files
  6. I feel a little worried this week because I kind of took a week off from modeling but I think I can catch up with work this week.

Sean

The reason why I missed last week’s meeting was purely because I overslept my alarm. However, I suppose it worked out because I later tested for Covid! I was fortunate enough to have a very mild experience with Covid—I got over it a lot faster than a normal cold, and I didn’t feel too bad. Since I had to isolate, and I didn’t have much homework this week, I was able to spend a lot of time working on the game!

My goals last week were:

I spent a lot of time trying to figure out why shadows felt weird.

In summary, there were three issues with shadows I found and fixed:

Finally, shadows look nice! Except they still are broken on my Android phone, as well as on Nick and Kenzo’s PCs (which is mostly masked by the outline filter also being broken for them).

I also built on Will’s features: I fixed Will’s reticle, which previously only rendered for him and (oddly) on my phone, and I added a smooth transition for sabotage effects like spore and traps.

I also refactored Entitys to use auto-generated IDs. Previously, they were called names, and it wasn’t clear that they had to be unique (they were given human-readable names), so duplicate names broke things. Now, many of the debug keys work properly.

I also fixed how raycasting works—the physics engine has several poorly documented quirks about its raycast methods, so we made incorrect assumptions about it—so for like the seventh time, jumping was fixed again. This refactor was to implement hitting players, which currently only applies knockback.

I was under the impression, from reading the photos of the whiteboard posted last week (I missed both of last week’s meetings), that Tyler had finished a recipe system, but it hadn’t been applied to crafters yet. Since it was on my to-do list, I decided to implement it. Quite unfortunately, Tyler had already implemented it on his machine, but he forgot to push it. It’s quite tragic because now, all of his work was for naught. I’d really like to avoid this again in the future, so during this week’s meeting, we made sure to clarify who was working on what, and avoid stepping on each others’ boundaries.

Finally, the biggest change to the game was that I added temporary sound effects and a system for the server to send sound events to the client to play in 3D. From playtesting, the sounds have really given the game some character and life, even if it’s just constantly hearing “boing jump.” I think adding particles will be just as impactful, so I look forward to seeing them in the game soon, as well as proper sound effects from Marcelo!

However, during the meeting, it became clear that others were also experiencing lag. Server metrics suggest the physics engine is handling the game with ease, so it must be due to client-side rendering. I refactored the graphics code to batch draw calls for the same model together using instancing, and now the game can handle dozens of items with ease.

During the meeting, I was assigned to fix performance this week. However, I already did that. So, for the rest of our second to last week, my goals are:

I’m confident we’ll get the game to a fun state soon!

Will

  1. My goal was to implement a couple of the boss player’s abilities: giving other players a blindness + slowness effect and setting traps.

  2. I did both of those things and some extra stuff as well. The blindness effect makes use of our rendering pipeline by temporarily adding a new filter on the client side, so I’m glad we had that infrastructure in place. Similarly, the trap feature builds off of previous work which made it easy to just create a new entity type and implement its interactions. In addition to that, I revamped the particle system code so we could control the appearance of particles and how many/often they spawn. The hope is that we’ll be able to plug that into other types of models with minimal setup. I also used a new particle system instance to render a reticle in the center of the screen so you can see where you’re aiming.

  3. It took me a while to figure out some issues with WebGL transform feedbacks, byte offsets, and shader attribute ordering for the particle system code. When I implemented a particle system for CSE 169 I just did the physics on the CPU because I couldn’t find a good resource explaining transform feedbacks, but the initial implementation by Kenzo helped elucidate a lot.

  4. My goal for next week is to implement a win condition. This will involve support for two stages of gameplay, the first of which will have a timer and the second of which will be essentially a multiplayer QTE. I would like to finish this ASAP so we have time to try making a combat stage.

  5. I learned lots about transform feedbacks which are pretty neat. I can see how they make OpenGL/WebGL more general purpose.

  6. I feel confident that we’ll have something to show by the demo day.

Kenzo

  1. My goal for this week is to implement a particle system spawner. so we can use it to spawn particles whenever the players do some action/ something happened

  2. I was able to plan and see how can I implement the particle spawner in a efficient way so that the code can be expandable and can be reused in many places.

  3. I was really busy this week with my other class, because the final presentation is coming up this Thursday. But I’ll try to finish the particle spawner as soon as possible

  4. My goals for next week is to continue implementing the particle spawner.

  5. I learn more about how Will implement the sabotage player code and see how the playSound was implemented so that I can get an idea of how I should implement the particle spawner

  6. I am a bit worried we are behind but very excited to see how will our game turns out

Meeting notes

Today’s meeting was moved online because four of us are sick.

Present: Sean, Tyler, Will, Kenzo, Killian

Summary of to-do items: