Group Status Report
Week 5 was a challenging yet productive week for team 2. Despite the multitude of errors we ran into, we reached our goal of being able to detect collisions on the server using moving objects sent from the client. Next week, we plan to make the game playable with context by rendering the player on a planet, where a camera follows the player as they move to enhance the perspective. Right now we have objects rendered and moving in a static location. We also plan to introduce win-lose mechanics to make the game minimally playable. Outside of game-related work, we team-bonded by (accidentally) going on a difficult hike on the Ho Chi Minh trail and video-called Carlos who was not able to attend with us.
Individual Status Report
s
Alex Garza
Concrete Goals
A client that acts as a terminal that sends events to the server and waits for a response to update its gamestate
Creating a camera that follows the player and has the perspective of the planet from our design document
Basic collision detection between two cubes and bounding boxes
Spawning new clients when they join the server and sending the info to all other clients to render game state changes
Goals Accomplished
A client that acts as a terminal and only reacts to game state updates from the server. The player now only moves based on server updates
Collision detection with rectangular bounding boxes (including pseudo-rotation [over estimates bounding box] and scale!)
Parsing and creating bounding boxes for objects defined in our scene file
Multiple clients on one server and being able to see another clients movements
Justification for unaccomplished goals
Over the last week, I aimed to create a camera that can follow the player sticking to the perspective of the planet. It turns out this requires a lot of math and is not as simple as I thought it would be. In turn, I focused more on server-client communication and collision detection.
Specific Week 5 goals
With the latter half of week 5 being busy for me, my main goals for this week are a bit smaller in scope than usual.
Research how to make game objects stick to the surface of a sphere even when the players move
Look into how to perform collision detection on rotating bounding boxes and consider if this is necessary for our game
Create a more defined server side enemy AI that will move towards the player and can kill the player
What I Learned this Week
I learned a lot about how delicate sending and receiving information across a network can be, and how to limit that information to not congest the network. We ran into a pretty big bug where as time went on, there was increasing long input delay until the player would update. It turned out that the issue was the server was sending updates too frequently to the client causing network congestion. Our solution was to instead only send modified data across the network - we considered this at first but thought it’d be too difficult to start with, but it ended up being a rather simple change.
Individual Morale
My overall morale remains high as we continue through our busiest weeks. Some of this week and next week are going to be slower due to midterms and other obligations, but I am confident that we will stay on pace!
Carlos Wirawan
Concrete Goals
I have only two main goals for this week because it’s midterm week!
Implement the collision detection of game objects
Research about how to stick the game objects to the planet. Something along the lines of ray casting if we’re using Unity.
Gameplay physics!
Goals Accomplished
Implement the collision detection of game objects
Justification for unaccomplished goals
This week is midterm week and mostly everyone is busy this week.
Specific week 5 goals
Continue working on the physics for the gameplay
What I Learned this Week
This week is a really busy week for me. I have two midterms this Thursday, but I am certain that we will be on time! We have most of the gameplay basics implemented, and next week will be a free week for me. Overall, my morale is high.
Individual Morale
This week is a really busy week for me. I have two midterms this Thursday, but I am certain that we will be on time! We have most of the gameplay basics implemented, and next week will be a free week for me. Overall, my morale is high.
Cora Xing
Concrete Goals
Simplify model of Triton Statue to make it easier to model
Goals Accomplished
Finished modeling Fallen Star
Justification for unaccomplished goals
Pivoted to modeling Fallen Star instead of finishing the Triton Statue model
Learned that it’s easy to get carried away trying to make the polygonal surfaces as close to the original round curved surfaces and faces that are not flat
Specific week 5 goals
Color Fallen Star, put Triton Statue on hold, try out sculpting Sun God instead of the Triton Statue, otherwise try to pick another landmark to model instead -- convert Geisel into tower instead of user spaceship
Figure out why materials aren’t being exported with the object files for certain parts of objects, and why this happens for certain materials but not others
What I Learned this Week
I overestimated the amount of work it would take to craft bumpy round surfaces, especially the Triton Statue’s buff arms and asymmetry for both the arms, tail, and face that increase the modeling difficulty.
Models with flat planes are a billion times easier to create :)
Individual Morale
Concerned about finding resources to learn how to export materials and textures with object files because most YouTube videos I’ve found online are about creating models and animations within Blender only, and there is less material for using Blender models for games. Will keep scouring the internet otherwise default color the surfaces without textures
Evan Laufer
Concrete Goals
Finish the textures additions!
At least make the basic QOL improvements to the rendering interface. There are a few low-hanging fruits that are really bad (i.e. at least allow passing in a whole scene to render instead of manually doing each one).
Got roped into collision detection, so I helped the gameplay team fix their collision code as well as added code to the renderer to display bounding boxes so the gameplay team could have easier debugging.
Goals Accomplished
Helped gameplay team with AABB collision detection
Added render support for the bounding boxes to aid in debugging
Added normal mapping shading to aid in debugging a strange model error
Helped Cora fix the spaceship model (for some reason the vertices are wound in the wrong direction for half the model, causing half of it to look inside out)
Refactored the rendering API to make it easier for me to make changes without breaking things for the gameplay team.
Textures are almost done I swear
Justification for unaccomplished goals
Basically I just got caught up fixing other bugs, which meant I couldn’t finish off the textures. Almost done though
Specific week 5 goals
Alex wants me to add a rainbow shader. Sure thing.
Textures will actually be done.
Refactor camera to be a part of the scene graph, so it follows the player
Honestly, most other rendering stuff is extra beyond the MVP. Need to consult with the team for most important future rendering (i.e. do we care most about shadows, or animations, or particle effects?)
What I Learned this Week
Don’t use pointers
Code works better when you start the server first
Scale and then translate.
Individual Morale
Good. Seems like we are getting pretty close to being able to have a MVP, which is nice. I am feeling pretty tired due to research obligations and other classes but that is normal for me at this point haha.
Priyal Suneja
Concrete Goals
implement basic collision
implement multiple clients
implement clients so that they are dummy terminals that just render info sent by the server
implement enemies that follow around the closest player
make game logic more complicated, add win lose mechanics
Goals Accomplished
implemented collision with pseudo rotation
i.e., we just have cubes as our bounding boxes that don’t rotate with the object
implemented multiple clients
implemented clients so that they are dummy terminals that just render info sent by the server
implemented enemies that follow around the closest player
made it so that the client only gets packets when there is an update instead of getting information about the entire world every tick
Justification for unaccomplished goals
The only thing we didn’t accomplish was adding win-lose mechanics and have rotation in collision detection. The reason for this is mainly that the algorithms for the things we did end up doing were very complex and we also ran into bugs that took forever to solve.
Specific week 5 goals
add rotation with collision detection
make gameplay more complicated for reals
add bullets, add enemies that spawn in waves, win lose mechanics
bind player movement to the spherical world
What I Learned this Week
basic collision detection
how to debug extremely weird errors like your game becoming slower the longer it goes on
you’re more likely to finish a dangerous trail when you don’t know that its famous for being dangerous
Individual Morale
good :) This week has been a little busy, but we are getting things done. It seems like we might have to move our dev freeze up by a week, but we have been making pretty solid progress. Hopefully once midterms are done we can dedicate a little more time to the game and be ready for dev freeze by the end of next week.