Week 9 Report


FRIDAY MAY 27TH 10AM-11AM
MONDAY MAY 30TH 10AM-11AM
WEEK 9 STATUS

This week we:

  • Integrated power-ups into our scene. We now have a blowdryer that will work as a speed boost to allow players to gain an advantage in getting the crown.
  • We have a logical floor now so that players can fall. Currently, it works like a trampoline but we will work towards getting players to respawn.
  • We’ve made a lot of physics tweaks some including handling collisions recursively and fixing how our cars launch out of makeup booths,
  • Our game has shadows!
  • The audio engine is up and running. The game soundtrack is complete and 3d spatial audio works for the clients.
GROUP MORALE
  • We’re feeling good, have a lot of things done and what we have left is manageable!
IMAGES & Videos
Shadows
Pressing space to start and match countdown
Using a powerup increases your speed and leaves a trail that slows other players
Players can now fall into the pits around the map

Individual Reports

  1. Concrete goals
  2. Accomplished goals
  3. Unmet goals
  4. Specific goals for next week
  5. Lessons this week
  6. Individual morale

Aiden

  1. My concrete goals for the week were to finalize UI elements, help with sound effects, create some power up assets, and finalize the game map.
  2. I was able to complete the sounds, UI elements, power-up assets (a blow dryer and hang glider), and finish the map.
  3. The only thing I did not complete was the finalized menu screen, which is already close to its final look.
  4. My specific goals for this final week will be to add final touches to anything that needs to be fixed, and make sure there are no issues with culling on any models.
  5. This week I learned a bit more about color theory as I created some UI assets.
  6. My morale for the week is pretty good.

Andrew

  1. My goals for the week were to balance test our game, and implement both start-  and end-of-match mechanics.
  2. I was able to do balance testing with everyone else in our team. The wedge-shaped cut-outs in our map are supposed to be walled off from the players, but when we tested the game without them being walled off, we observed that players preferred to just drive through them to intercept the crown holder. This observation led us to conclude that our map might be a little too small. Our current solution for this is to keep the cut-outs open to players, and Steven implemented a trampoline feature for this. I was also able to implement a press-space-to-start mechanic for each match. I also implemented a countdown mechanic to give players more time to react to the start of each match.
  3. I was able to accomplish all of my goals this week.
  4. My goals for the last week are to make sure our game works without any bugs before the demo and to plan out with the rest of the team how we will structure our demo (e.g. how we introduce the game, how we highlight certain mechanics).
  5. I learned how to work with our graphics framework to load image textures and draw text on the screen. Initially, I had implemented images for the end of each match, but I pivoted from this to text after our group decided it would be better to use text.
  6. My individual morale is good.

Emily

  1. This week, my goal was to finish implementing the UI. This included displaying the text using a text library FreeType as well as displaying the rest of the UI elements like icons and such. I also wanted to tune values like particles, animations, and adding more UI elements. 
  2. I was able to finish up the UI so that game time, player scores, and their makeup level is displayed to the player. I also began tuning particles and animations. As well as adding new animations for the makeup booth to allow for makeup items to fly around the player while they are in the makeup booth. 
  3. I’m still in the process of adding more animations and tuning certain parameters, but I feel like these tuning things just continue to happen in the background and are never-ending in that they’re never entirely complete. 
  4. I would like to finish up tuning parameters and to brainstorm ideas for the final presentation. 
  5. This week I learned about how different textures interact with different shaders and how those things get passed to the shader. I think I never fully understood how texture objects and texture channels work so this was a good opportunity! 
  6. Ready for our final week!!!! I’m so happy things are coming together! 🙂

Evan

  1. Integrate the music with the network
  2. I just helped with some minor balancing changes
  3. I didn’t really have much to contribute this week since it is towards the end of the development and most of the necessary changes were for graphics, and I couldn’t really help with that. The music network code was already set up last week, so terry was able to easily integrate when he finished his music library.
  4. I need to fix the Clock Tick code to actually work on so that it actually ticks 30 times a second. The current code to sleep does not consistently wait the appropriate amount of time.
  5. I learned that our game is pretty fun to play!
  6. My morale is great! I’m excited to have a finished product to show off. I am a little bummed that I feel like I can’t really help very much anymore.

Steven

  1. My concrete goals this week were to give all remaining obstacles bounding boxes and to do something with the pits in the map (slopes, falling and respawning, invisible walls, etc.).
  2. I gave the pillars on the map a bounding box and made a floor (it isn’t actually an object, I just check the player’s location and determine whether they would be on the floor or not). For now I have the pit act like a trampoline so players can bounce back out. This means players can now make it on top of obstacles, so I decided to make objects “slippery” by having them give players a slightly randomized direction and fairly high speed (independent of input). In addition, I also worked on the following:
    • Pushing cars now works recursively, so you can push a whole row of cars. I also made pushing modify the player speed.
    • Scoring is now weighted by how much time is left in the match. For now, the points awarded per second doubles over the course of the match.
    • Cars now roughly follow the trajectory of the map when leaving a makeup booth (before they would be immediately thrown into a wall). I also tweaked the behavior of the bar blocking the exit of the booth so players can no longer get stuck.
    • I added a powerup. You can pick it up and use it by pressing space. It causes a speed boost and makes the car leave a trail that slows down other players. This trail is represented client-side with particles.
    • Other small tweaks and additions like more audio triggers and messing with particle behavior.
  3. Slopes ?
  4. My goals for next week are to make bounding boxes for any new obstacles we add and to continue testing and polishing what is already implemented. I will probably add an indicator for when the player has iframes (this is already being sent and saved client-side, but there is no effect yet, maybe just particles?) and a UI element to indicate when a player is holding a powerup.
  5. This week, I learned that sleep_for() is not very good when you need precision ?
  6. My morale is good.

Terry

  1. My concrete goals for this week were to finish our audio engine, get spatial 3d sound working, and finish the game’s battle theme. 
  2. I was able to accomplish finishing our audio engine, get spatial sounds positioned correctly in relation to the camera viewport, connect all the audio triggers with composed sounds, finishing our battle music, and creating an adaptive engine sound based on the car speed. 
  3. All goals for this week were met
  4. Creating a couple more sounds for makeup booths and power-ups. Also, I should be done with audio and can work on the gameplay experience, theming, and also user experience. 
  5. I learned a lot of linear algebra and image transformations to get spatial audio to work. I learned about car engines, game “juice”, and audio engine interpolation (audio “tweening”).
  6. My individual morale is that I’m excited for this week. I finished most of the big things that I needed to do, and just need to polish things here and there.

William

  1. My goal for this week was to implement shadows.
  2. I implemented a shadow map for the directional light as of writing this report. By tomorrow, it should be upgraded to a cascaded shadow map. I may have shadows implemented for spotlights (by approximating them as directional lights).
  3. I did not implement shadows for point lights because I did not have enough time. Because the shadow map for point lights has to be omnidirectional, unlike directional lights which just use a 2d texture, it needs to be implemented with a cube texture instead of a normal texture. This makes it very hard to reuse the code I wrote for normal shadow maps, and especially cascaded shadow maps (which use a geometry shader to render to a 2d texture array).
  4. Once I finish CSM for spot lights, I plan to end development of the graphics engine and use the rest of the week to tune the game’s visuals. Specifically that would include editing specular and emission maps, as well as placing more lights around the arena.
  5. I learned a ton about shadow maps, cascaded shadow maps, geometry shaders, texture settings, texture arrays, and how opengl handles shaders.
  6. Generally feel good. A little sad that I couldn’t get shadows for point lights or implement some final effects like bloom and anti aliasing, but I am overall happy with the direction the project has gone. And I am confident that we will get the game in a solid state by friday.