This week's milestone was a "minimum viable product" of the game, and we mostly hit it. This week we accomplished:
Week 7 Tuesday, May 15
We're feeling pretty good about the game and our steady progress :) Some people will be busy next week.
Turrets spawn facing outwards (and their orientation is fixed), enemies can be destroyed and can destroy you, finally some sand in the background.
My goals for the past week were to implement normal mapping, fix transparency, add metallicness and roughness to the shader, and add a skybox.
Normal mapping was finally implemented and now works. Transparency was identified as working well enough and it wasn't worth the time to fix minor bugs that were difficult to see. The skybox is partially implemented, but is still buggy.
Metallicness kind of works, but probably not as intended. Roughness currently doesn't work, as it requires a functional skybox. The skybox wasn't finished simply due to lack of time (other classes kept me busy this week).
I'm planning on finishing up the skybox this week, tweaking the way shaders accept texture parameters, and then finishing up metallic/roughness implementation. I might also devote some time to getting Assimp to accept fbx model files.
I learned the basics of how to load and display skyboxes, but there's still some issues that I need to resolve.
I'm satisfied for the time being. I definitely think we'll have to cut stuff in the end, but we're making and have made good progress.
My concrete goals for this week was to find a way to make sure the finite sound buffer array did not crash the game and to implement random rocks spawning as obstacles for the ship.
I finished both goals...mostly. Sounds no longer play if the sound buffer array is full. I am not sure this is the best fix because it is a little jarring to not hear sound when expecting to. I also implemented another fix where sounds that have played up to a certain amount get cut off and replaced with the new sound. This can also be jarring too depending on how long the sound is. It also does not guarantee that the sound buffer array will not be full so in the end, it is not used. We bumped the size of the buffer array from 10 to 30, but we can keep bumping. The other goal of spawning rocks is working fairly well. Rocks spawn randomly and travel from up-screen to down-screen. They have life points and destroy a limited number of blocks. The bear is a random rock spawn with more life points. The only problem I was not able to work out this week is a rock not detecting collision with any blocks created after the rock spawned. I fixed this 10 minutes later :)
I was unable to completely finish the random rock spawning feature due to my limited knowledge of bullet and understanding how collision works. I am working to understand the library more so that I can use it better in the future.
Next week I hope to fix the bug with the new block collision detection and start working on another feature in gameplay.
I learned about bullet and how it handles collision detection. I also learned more about the game's Unity-like architecture, which I think keeps the game well organized.
I'm feeling pretty good and happy to be contributing more.
Shadow mapping
Not shadow mapping
I'm not familiar with direct x, so I had to study up a bit and analyze Dana's rendering code to understand how to use shaders and such, before even starting to code. So, shadows are still a work in progress, but because there are tutorials online, it's going relatively smoothly and should be finished soon.
Finish up shadow maps firstly, then maybe more graphical effects or animations. A rather big assignment is due Friday so my time may be a bit limited until the weekend.
Direct x rendering and hlsl shaders
Not bad. My health is slowly returning to normal, and so is my productivity, so I'm happy.
I didn't get around to finishing spawning more enemies and powerups as time goes on. I was busy with other classes and other stuff. So the gameplay isn't quite at MVP status, but it's pretty close!
Even though I thought my gameplay code was clean as I wrote it, there ended up being a lot of it, and I had to help Karen more than I expected (not her fault at all), mainly with Bullet stuff. I could have commented a lot more, maybe with some "example usage" sections, and written a short document of how to add a new collision group to the game - there are like 5 places in the code you need to change - way more than I thought! I didn't realize how much of the codebase structure I had stored in my brain's RAM.
Medium-high. I wish we had gotten farther this week, but we sorta accomplished most of this things for our MVP milestone. I'm happy with how much gameplay I got done this week.
Export the player model
Got the player model sculpted and either (will be as of Monday) finished/almost finished making a low resolution version of the sculpt for use in game (But to support bones we probably need to use FBX).
Nothing too unpredictable, got about as much work done as I expected, the player model looks pretty good, but I wish I could have made it look better.
Start texturing everything, excess time goes to rigging and animations.
How to roughly sculpt folds into pants.
Things are going pretty well. Patrick showed some gameplay and I was excited for it!
Finish up network optimization.
Optimizing the scene graph is done, however, there is a bug in the transform class which causes unnecessary update messages. Values are getting set to nan somehow. Also, it shows a change in scale when they look like they should be the same.
The transform class bug is getting in the way of finishing up network optimization. There is another bug where multiple delete messages are being sent for the same object, it doesn't make anything crash, but I don't want unnecessary messages being sent.
Fix the transform bug, then fix the multiple delete messages. If I have time, optimize the components in a similar way to the game objects, so I don't need to send over render data every frame.
I learned that directx math functions aren't that good. I was trying to do quaternion equality, but it didn't take into account the negative of a quaternion represents the same orientation. Also, for some reason, some objects slowly, but surely, increases in scale.
It's pretty high, but I don't think I'll have much time to work on the project this week.