1) what were your concrete goals for the week?
My goals were to have the ship animation done and a UI set up for the team.
2) what goals were you able to accomplish?
The ships are able to rotate towards the target with some degree of error that needs to be fixed, and they’re able to shoot lazers and explode…however –> to the next section
3) if there were goals you were unable to meet, what were the reasons?
- I was having trouble turning shooting on and off. As of writing this post, Sylvia says that she has it handled it, but sometimes the animation is too fast.
- In addition, there’s no trigger for the explosion and any waiting for it to be deleted yet either. So it’s also an all or nothing deal.
Most of the issues are that I’m not really sure how the server is being handled so, I have a lot of trouble figuring out what needs to be updated, how it is updated, and where.
4) what are your specific goals for the next week?
I need the animation working with all of its triggers. I also want to help out with more things. Now that the UI library is integrated, depending on how much Dylan has already done with it, I would like to be able to design it too.
5) what did you learn this week, if anything (and did you expect to learn it?)
I probably should have stayed more on top of the code reviews. I had mainly paid attention only to things that were the client side.
Brandon on the other hand, takes the time to review everyone’s code, so I feel like he knows most, if not all, that’s going on in the project. However, I was mostly lost when I had to use the server side code.
In addition, taking time to document our software architecture might have been helpful, but we put it off because our architecture was changing so often that it would not have been worth it.
6) what is your individual morale (which might be different from the
overall group morale)?
Morale is still low. I feel like I was the least contributing member on the team. Dylan is doing so many things at once, one of his Trello cards was setting up the UI so I wanted to take that off of his hands. On Thursday, I started in the morning with trying to set up the nanogui library and trying to link it properly with our project. Once I had everything linked, I spent another few hours trying to figure out why the program was crashing each time I was trying to instantiate a UI screen. By 3pm or so Dylan said that he would take care of it so I wouldn’t have to worry. Reluctantly, I left it up to him.
Next, I switched to integrating animation with Syliva. I already had a client only version working, but there had been debates back and forth about how to handle rotation and whether it should be on the server or the client. The idea was that most of the load should be on the client side so that all the calculations wouldn’t slow down the server if there were hundreds of units.
I was told that the only thing I would have to work with in order to calculate rotation was an orientation vector sent by the server. I struggled with trying to figure out how I would work with such little information, but we decided that we could lerp from the original orientation vector to the final orientation vector, and that I could build the rotation matrix based off of that vector.
This worked only sometimes, and other times the ship would be pointing the wrong way. I was also really unhappy with how inaccurate the lerping method was. It was also not going to fly because maybe 1/10 times it would rotate correctly. I ended up deciding that I wanted to go with my quaternion slerping implementation, even if I had to stick all the calculations on the server for the sake of having the right functionality. However, the math I had used before was not working anymore and sometimes the ship wouldn’t even rotate. In the end, I spent 12+ hours that day working with no results while my other team members seemed to have gotten a lot accomplished.
Several days passed, and after pulling my hair out, I finally had rotation working (mostly, but not perfect yet) by Saturday afternoon. After digging through all of the classes I figured out that nothing I wanted to update was updating because I had a misconception about how things worked on the server side. Rather than assigning the value to the variable in just the class it belongs to, I also have to set the same value to another class which sets it properly for the class I was trying to set it in originally (?).
I thought that I had figured out how the server side works once rotation was in, but then I spent the next entire day just trying to turn a boolean on and off so that I could turn on and off shooting lasers, but once I turned it on, the variable was never updated properly for me to turn it off, and once again I had made no progress on a simple task the entire day.
I feel like I didn’t have a hard task, nor did I have many tasks, but I wasn’t able to accomplish anything.
Looking at some of the other team’s projects, they look really nice. With me being one of the people handling graphics, I feel like it’s on me for our project not looking as nice.