Out of Tune: Weekly Progress Report Week 9 5/26

Group Status

Player characters are coming together, we have idle animations, and they are no longer boxes. We have updated the swamp frog notes to make them less confusing, UI resizing is in progress, and Key implementation is almost done, now using collision instead of interactions so parkour games work out better. Object interactions within a radius are implemented and the Final Door is just about ready. Finally, minigame 2 is coming together; cannonballs respawn players, and the basic logic is about ready, but it is not displayed in the scene yet.

Screenshots

Group Morale

Overall, the group morale seems to be nervous yet excited. We know there is still a lot left to do, but we are determined to get it done. It should be an exciting finish to the quarter, even if not everything gets finished to the degree we had envisioned.

Individual Reports

Art (Jasmine):

What were your contrete goals for the week?

Finish player character

What goals were you able to accomplish?

I made an idle animation, and modeled 2 characters. I haven’t textured them yet and I have two more characters to finish but they use the same base model so it should be tooooo difficult. I also still need to finish the running animation.

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.

I think I made a lot of good progress but as always I could’ve dedicated more time. I am always busier than I expect so I thought I would have more time to complete all the characters. I think I’m also still acting a little like a perfectionist which I think I have to work on in order to finish everything on time.

What are your specific goals for the next week?

Finish the character models for sure. From there just work on room models. Get some version of each rook done even if it isn’t perfect.

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

I learned about rigging!! That was definitely interesting and took a decent chunk of the time but it was so satisfying when it worked. I also learned how to make and export animations.

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

I’m very satisfied with how the character models have started turning out they’re so cute. Excited to finish them and see them in game.

Music (Annie):

What were your contrete goals for the week?

Drafting the carnival track and revising the swamp ambience track

What goals were you able to accomplish?

I’m able to revise the note sequence through communicating with my teammates of what kind of sequence they want.

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.

I thought I would have more time to work on the tracks specifically but I found myself busy with other classes.

What are your specific goals for the next week?

Revising the ambience track so that it won’t clash with the note sequence I made.

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

I learned how to adjust the config.h to turn my audio event name into a constant string so it allows other programmers to reference the audio file.

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

I'm a little excited for the player animation to get implemented into the game because I can finally fix the problem I have with the footstep being triggered constantly by only calling it at a specific key frame of the animation. I’m also excited for the cannon to be implemented so I can use a funny cannonball sfx.

Graphics (Gabriel):

What were your contrete goals for the week?

My concrete goals were: Add the keys display (will dynamically add keys as players collect them) Adjust the HUD layout Refactor Canvas so that it may be reused for different screens aside from the game world

What goals were you able to accomplish?

I wasn’t able to accomplish much of my set goals because I ended up shifting my focus to something else. I’m trying to make it so that textures aren’t “squished” or “stretched” whenever the window dimensions change.

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.

As mentioned, I ended up changing my week goals to make it so that UI texture scales are constant regardless of window size. Making that adjustment wasn’t all that difficult, but what I’m really struggling with right now is making so that texture positions are also constant. The way I’m determining the positions of textures right now is using the window corners as a quad and applying a texture to it. The problem with this is that I don’t have a consistent “pixel” positioning that’s not tied to the screen. Pinning the clock digits down has proven exceptionally tricky, and at this point I’m resorting to hard coding in order to make that adjustment. I’ve been told that this feature is mainly for debugging, so I don’t think it should be that big of a deal if this ends up looking janky in smaller window sizes?

What are your specific goals for the next week?

Figure out a way to use a more consistent position measurement for UI elements OR hard code different layouts Add the keys display (will dynamically add keys as players collect them) Refactor Canvas so that it may be reused for different screens aside from the game world

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

I learned that positioning can be deceptively difficult to implement when you take into account different window sizes and displays. It reminds me a lot of webdev in a way, especially how I was designing the UI to work on fullscreen and didn’t account for “in-betweens”.

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

I feel determined. There are a few things that need sorting right now (mainly figuring out UI for different window sizes, pushing what I have to main and resolving inevitable merge conflicts). Still, I do think this can all be done this week, and I should be able to start the UI for other screens.

General Game Implementation and Mini Games (William):

What were your contrete goals for the week?

Implement client side objects and interactables. Continue working on finalDoor class and other class objects that are to be rendered.

What goals were you able to accomplish?

Implemented our key class with logic for picking up when colliding with a key instead of interaction. Used implementation of swamp and lilypad as a guide to implement finalDoor Classes and key class. These should be ready for testing once I figure out how to load these into the scene.

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.

Have not worked on interactables yet. We scrapped any object and interactables on the client side, as it seems we do not need entire classes, so I stopped working on those. Instead I implemented the key class on the server side using collision instead of interaction to pick up the key.

What are your specific goals for the next week?

Interactables are still not up yet, so this week I have to make sure we can at least unlock a door. Then make sure we can put keys into the finalDoor class, then make sure we can press a button for the finalButton class.

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

Caught up to Helen and Ravi’s implementation of their swamp class, I will use this to adjust my finalDoor class and make sure it is ready to be put into the scene. I feel like I have a better grasp of the pipeline in our game now.

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

We only have ~1 week left, but my teammates seem confident :) We are so close to the complete playable game. I’ll make sure I get my part done ASAP.

General Game Implementation and Mini Games (Ravi):

What were your contrete goals for the week?

My goals were to get minigame 2 a good portion of the way done and start working on some of the other normal rooms to create parkour challenges.

What goals were you able to accomplish?

I was able to add the death mechanism with the cannonballs, work out most of the general boilerplate logic, get a basic key mechanism working to test out the parkour, and start working (still working out the kinks) on the logic to have a key appear once all 4 players are in the lobby, this way the game can only start once everyone is there.

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.

Overall the week went pretty well, and although I still don’t have the visuals for the minigame 2, I’m a lot more confident with how everything slots together in the code base, so I am able to add in graphics much faster once we have the obj files.

What are your specific goals for the next week?

Next week, I hope to have minigame 2 finished, and hopefully be halfway through minigame 3. That said, if we can’t finish minigame 3 in time, I do think it will still be a fun game. Minigame 3 is definitely the most complex. I also hope to finish up some of the parkour rooms, especially once we have more furniture models and the circus room asset.

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

I learned a lot about how to use the `dimensions` and `layout` json files, and how they interact with the init rigid body functions. I also learned how to connect everything with the positioning and graphics on the client, so we have the rigid bodies the same dimensions and locations as the graphics.

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

I am feeling pretty good about the project. I know these next ~2 weeks will be a ton of work, but I am feeling good about being able to quickly add in features now. It feels like everything finally makes sense and I am able to work with all aspects of what I am working to implement.

Physics (Brandon):

What were your contrete goals for the week?

My concrete goals for the week were to adjust the swamp colliding boxes, finish up the interactivity radius based on the architectural changes, abstract all the rigid body creation to be in one place instead of creating a rigid body in object class initialization, and implement the fundamental physics for the cannonball and piano keys for the next 2 minigames.

What goals were you able to accomplish?

I accomplished most of my goals, all except the physics logic for the piano keys. I installed blender and messed around with the colliders of the walls because originally the colliders were rotated and slanted, which is not possible for AABB physics. I created a rough granularity of a ring with rectangular prisms that prevent it from phasing through the graphics while also making it seem like the player is actually colliding with the wall. Additionally, I clarified with my group on the interactivity radius, and implemented a data structure to keep track of rooms. I rolled back the code a little bit to reference room IDs for players again, and used the IDs to lookup in the data structure the room the player is in. From there, the player gets the reference of all interactable within that room. I also abstracted all the rigid body creation to be in a single place. Previously, rigid bodies would be generated by the layout JSON file we had. We decided to only rely on that file for creating the layout of the world. I created a helper file that initialized all rigid bodies, and if it was a special object in our world it would also create a class initialization and link that new class object to the rigid body. Lastly, I roughly implemented the physics for the cannonball and did planning on the piano key physics. For the cannonball, I just created a fire() function that would set its configured velocity in the direction of a given player (via argument), and would handle special collisions to kill if it hits a player or to destroy the cannonball if it hits a static object. For the piano key, I plan to create some sort of spring dynamic, but I haven’t fully planned it out yet.

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.

Other than communication and clarification on architecture, this week seemed to go as planned. I did do other things outside of class that contested for my time, but within the class everything went well.

What are your specific goals for the next week?

My specific goals for next week are to finish the fundamental physics of the piano keys, finalize the cannonball physics with the rest of the code and integrate it to finish the 2nd minigame.

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

I’m still trying to learn the discernment between waiting for clarification on deliverables and just committing to my understanding. For example, with the architecture clarification it can be a long process of back and forth communication. I am still unlearning the habit of excessive planning.

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

I feel somewhat worried because it might be infeasible to complete the 3rd minigame, since we don’t even have the 2nd minigame completed. Additionally, we need to figure out the map.

General Game Implementation and Mini Games (Helen Lin):

What were your contrete goals for the week?

The goal for this week from last week was to finish the first mini game and hopefully get started on the new mini game.

What goals were you able to accomplish?

Since the last report the first final game game play was completed but completed before our Tuesday afternoon meeting. Added in a bypass logic for the swamp mini game which if the config variable for bypass is set then the bypass rigid body is added into the the swamp minigmae for the player to just run across the room without needing to jump aorund the lilypads

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.

Most of my progress happened on Tuesday and Thursday which the Tuesday progress was actually mentioned in our Tuesday afternoon meeting. I also had a presentation due Monday of Week 9 so I was focused on finishing the presentation and went home for memorial day. So much less progress than anticipated and desired. But I have no other dues for the rest of my classes left which means other than my club stuff I can zone in on the game.

Another thing is for the swamp mini game what is missing is just the audio logic which the audio engine was merged in and then now just waiting on the frog model and the interaction logic which I believe the interaction logic was merged in mid week so will incorporate it soon.

What are your specific goals for the next week?

Add in the audio logic and interaction for the swamp minigame

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

Learning wise thoughing majorly knowledge wise but when discussing the actual audio and game play of the swamp, I learned along with other members of our group that we were listening to it differently. Like for half of the group we have 8 steps in 9 notes for our game the other half would take 9 steps with 9 notes. We decided on just giving more detailed instructions on how to listen to the audio to get the desired result.

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

Happy that the swamp game is pretty much playable now. But definately feeling the time crunch. Hoping to put in a few more binge work sessions for cse 125 for the rest of the quarter before the demo.

Graphics & Network (Julie):

What were your contrete goals for the week?

I planned to work on implementing skeletal animation, finish setting up lighting and shadows, work on the lobby page, and add fireflies to the swamp room.

What goals were you able to accomplish?

I got skeletal animation working and loaded a character with an idle animation. It's not the final version–Jasmine gave me this one so I could start working on animation. The idle animation is working well.

I also worked on lighting and shadows. I figured out how to remove the circular lighting effect on the swamp room walls by adjusting how shadows fade with distance. Also, shadows update properly as characters animate. I'm still in the middle of implementing shadows, so it's still a work in progress.

I didn't get to the lobby page or the fireflies in the swamp room yet.

Screenshot of the game

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.

I originally planned to focus on shadows this week, but I'm glad I started with animation instead–it ended up taking a bit longer than I expected. It took some time to figure out the right settings for exporting the FBX so it would render correctly (Jasmine did all the work, I just re-exported the file).

What are your specific goals for the next week?

I'll finish up the lighting and shadows, and once Jasmine finishes the characters, I'll load in the textures and animations, and set up when each animation should play. I'll also keep adding models as they're completed. On top of that, I'm planning to work on the lobby page and add fireflies to the swamp room.

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

I learned a lot about how to implement skeleton animations using assimp.

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

I feel like I'm pretty familiar with everything now. Animation was completely new to me, but it's almost done, and I'm ready to focus on getting things finished in the remaining days. I still need to figure out how to implement the lobby page, but I'm excited to get back to working on the networking side of things!