Week 2: April 17, 2017

Overall Status

We have a model for our character and for the interior and exterior of our space ship, as well as the ability to load these assets. We have the network mostly set up except for one bug with our serialization. As far as graphics, we are able to move around and change the camera view, and we have a skybox. Overall, we achieved the goals we set out for this week.

Group Morale

We have a pretty high morale because we have made a lot of progress, although there is some frustration with a few bugs.

Screenshots

Goals for This Week

This week I was to work on the initial data structures that our game will use set up. The goal was to create at at least one Player class and one object class, and get them hooked up inside the server (possibly the client).

Accomplished Goals

First, I fleshed out the ideas for overall map of the data structures we'll use. I researched some ideas on how to design data structures for a video game. In the end, after discussing with a few of the group members, I stayed with my initial design with simple inheritance. I was able to create the Player class in our code base. The server creates a Player and contains its state. I also added changes to the client so that it passed proper deltas and key-press information to the server to allow for movement. By hitting WASD, we can move a cube around our world, which is being controlled by the server.

Unmet Goals

While I was able to code the Player class, my object class did not get past the initial design phase. This was due to the fact that I spent more time in making sure that the client could speak with the server and get the proper updated data. The client is hardcoded to handle only one object at the moment and while the server does control the majority of the state, it is not in full control yet.

Goals for Next Week

I will continue working the data structures and coding the ones that I have already designed. I will also need to discuss with Guillermo and Anish with regards to how the client will store information given to it and what it will need from the server. Once we figure that out, we can move the remaining control the client has over data to the server. Once that is figured out, I want to try to get the player interacting with an object, even if it's just logically and not graphically shown.

What I learned

I learned a good bit about designing classes in video game with my initial research. I also was able to dabble a little bit with OpenGL matrices while I was hooking up the cube movements.

Individual Morale

I'm feeling pretty confident in our group and our game. There is definitely a lot of work to do, but I think we can get a lot of our basic goals done. I think the work I was able to do this week contributed good progress forward in getting server/client interaction working.

Goals for This Week

My concrete goals for to help set up the visual studio environment and repository to hold both the server and client side code. All I made it sure this week to help on the graphics end by getting the ASSIMP model loading library working.

Accomplished Goals

I was able to complete my goals of setting up the environment and getting ASSIMP to work. I also additionally was able to help work out some higher level ideas of how the client should interact with the server.

Unmet Goals

We pretty much accomplished out goals this week, but there is this annoying bug where our ASSIMP dependencies somehow how a problem with the protobuf dependencies, hence separating the code base into 2 separate projects: one graphics and one networking. We hope to resolve this tomorrow when we all come together.

Goals for Next Week

My goals this week are to focus more on Client/Server interaction and create the classes on the client side to elegantly handle sending event information to the server, and handling and rendering updates as well. If theres extra time, I can implement some additional small feature on the graphics side.

What I learned

I learned a lot about libraries and how frustrating it can be making them work with your project. It takes a lot more time that you think!

Individual Morale

My morale during this week was mostly frustrating because I so badly wanted to code, but was roadblocked by taking care of libraries. Hopefully the next week will be smoother with more coding!

Goals for This Week

I hope to get rudimentary user-environment interaction nailed down. I want to have the user press F to interact with items within a fixed cone of their line of sight. Additionally, I hope to add server endpoints to my current build of the project to fully connect the two projects together

Accomplished Goals

I was able to get Assimp and SOIL loading the models created by Michael, which was a major frustration in our group. I also implemented user keyboard and mouse controls, as well as a skybox loader complete with frag and vertex shaders.

Unmet Goals

I was hoping to have the class hierarchy completed by this time, by was held back by integrating external libraries. Sometimes the models loaded would not properly load the right color texture, but we're working towards fixing that.

Goals for Next Week

I want to complete the procedural generation of the asteroid field as well as collision detection using bounding spheres.

What I learned

I learned that library integration was no small feat! Even though we're ahead of schedule on the graphics pipeline, I vastly underestimated the amount of time needed to integrate Assimp and ProtoBuf.

Individual Morale

Now that the libraries are integrated, I am very excited to write code for actual gameplay functionality. From here onward its full steam ahead!

Goals for This Week

Per schedule, I was supposed to get the protocol buffer message exchange set up. Also we wish to let the server process input events.

Results

For context, I was away to the Bay Area from Thursday night till Monday afternoon, so I had limited time to work on anything and had to do some work ahead of time. The proto buffer front had mixed results. It works if it is the only included extra library, but if combined with Assimp, which we used to import assets, externs used by Assimp will not be resolved correctly. I was to investigate it but I let the group know beforehand that I cannot guarantee any progress due to my being away.
Due to the library issue, we had to proceed with remote event processing without all libraries we would like to have (namely, Assimp). Amanda took over after I left. She managed had set up the proper message exchange format and code to communicate that a character is to move towards certain direction.
I also rearranged the network code to make it more intuitive and modular to add new communication messages and processing steps.

Goals for Next Week

For the next week, I'll start putting in cycle time limits. Also I want to work with Amanda and Anish to solve the library issue. If it turns out that we can't solve it, I will probably start working with Amanda to develop our own message serializing protocols.

What I learned

The thing I learnt this week is that it would definitely help to have unified development environment even though it may mean loss of some convenience like remote working. We had some hard time getting VS onto our own computers and fixing project settings. Had we committed to only work at school, we could have salvage some of these lost time.

Individual Morale

I'm tired from helping moving to the Bay Area, but it hasn't take a bend on my morale, in that I'm still looking forward to dive back into development tomorrow.

Goals for This Week

My concrete goals were to learn Blender and to create an interior ship model and a character model.

Accomplished Goals

I was able to accomplish all of this, although the textures on the ship leave something to be desired.

Unmet Goals

I accomplished my goals, because I didn’t expect to have finished textures by this week. Next week I may set my goals a little higher because I didn’t have much problem finishing these goals.

Goals for Next Week

My goal for next week is to add more textures to the ship model and to add lighting to the graphics in the game. I want to also have an object be able to logically interact with another object.

What I learned

I learned a lot about Blender and modeling, which I did not expect to learn this quarter. I also learned how our basic graphics code works, which will be good for next week.

Individual Morale

I am proud of the models that I made this week, and I am excited to move on to actually working on graphics code.

Goals for This Next

My concrete goals for the week were customizing the configure reader and start working on blender modeling.

Accomplished Goals

I found a 3D model on internet and I customized it by adding some basic lighting and textures to it.

Unmet Goals

I was unable to customize the configure reader because we didn’t know what exact parameters we want to pass into the server. So I have to postpone this task.

Goals for Next Week

My goal for next week is further improving our game map. This includes adding texturing and lighting and furnishing the model. Also I will start working on the server side and try to finalize the networking part.

What I learned

I learned how to use blender this week, including some basic 3D modeling techniques.

Individual Morale

My morale is high, and pretty optimistic. I found 3D modeling is really fun, and I believe I will make great models in next few weeks.