Week 4 Update

Group Update

Summarize your overall status for the week

Network → Hooked up client server and able to send structs back and forth 

Art/graphics → Hooked up assimp, can load any model from blender now. Made a donut, can make anything now.

Game Engine -> WASD + LCTRL + Space + Mouse Movement = FPS Camera and User Movement

Gameplay → Created a functional quadtree which is capable of collision detection

Art/Screenshot/Progress

Individual Updates

Shane

What were your concrete goals for the week?

Be able to pass structs across the server/ client and be able to update client state through server

What goals were you able to accomplish?

Finished message passing for structs. Currently using a header to determine what event comes after and also a terminator sequence to easily distinguish the boundaries of packets.

What are your specific goals for the next week?

We will most likely wrap up integration this Friday. Next week, I will either move off of networking to start working on game mechanics or adopt our current server for four hosts.

What did you learn this week, if anything (and did you expect to learn it?)

C++ is pain. Joke aside, passing structs through boost using their built in serializers is SERIOUSLY (kinda pun?) not easy. If I were to do this again, I would have just casted everything to a string or written my own serializers.

What is your individual morale (which might be different from the overall group morale)?

I lost all my code from last Friday for some random reason we couldn’t quite figure out, so I was pretty sad. But now we got everything working, so I feel pretty good. On a slightly worse note, I am getting more and more upset with how cryptic C++ errors are…

Thomas

What were your concrete goals for the week?

I wanted to set up the material system to be able to load UV mapped textures on a model from blender, and render it with some basic lighting. I also wanted to get deferred rendering set up, since it would help us render lots of lights.

What goals were you able to accomplish?

I finished all the model loading, there were a couple bugs with our old model code. Assimp can handle multiple meshes per scene, but we were combining all the meshes together into one mesh while loading. This borked all the vertex indexing, but I was able to fix it by adding an offset to the triangle indices. We may want to change this in the future to load multiple meshes separately. But it’s good to keep in mind.

I finished texturing, again using assimp to load UVs and stb_image (the GREATEST image api in C++) for the actual textures. Everything worked pretty well, but we realized that we need to be very careful about normals and the mesh structure in blender. Smooth lighting relies a lot on vertex normals.

If there were goals you were unable to meet, what were the reasons?

I didn’t get much done on the deferred rendering, and we need to decide if it’s worth the work. On one hand, we could handle some really interesting effects with it. But my opinion at this moment is it’s not worth the time investment, since we have a short schedule to work with. I was busy all weekend with a project team, but that should cool down this week and I’ll be able to keep pushing forward.

What are your specific goals for the next week?

1. Refactor the material system a little to be easier to work with.

2. Integrate the renderer with the scene graph so we can display moving characters

3. Work on a global renderer to track the lights and other effects in the scene, since otherwise we would need to pass a lot of information to all the model objects.

4. Shadow mapping! We want spotlights to be a gameplay component, so we’ll probably want shadows

What did you learn this week, if anything (and did you expect to learn it?)

I learned that texturing in blender can be hard, and we should keep our art style simple. There was some talk about using cel shading, I think it would complement the theme of our game well.

What is your individual morale (which might be different from the overall group morale)?

I’m feeling pretty good, but there are a lot of graphics features we want to implement and not much time. I think sticking with forward rendering will save time overall, even if it’s not quite as efficient for rendering lights. That’ll free me up to work on more interesting features.

Sam

What were your concrete goals for the week?

After conversing with the professor and the TA last week, I decided to shift my own personal goals a bit away from the graphics side because I realized that my energy and focus could yield more results if directed elsewhere, and so I decided to focus on working on data structures that could help us with unit collision, and data structures which could represent the objects on the map.

What goals were you able to accomplish?

I researched and completed a working quadtree which can query a specified range for the number of objects within that range, and a working demo of a collision between two objects. These data structures will serve as the backbone of the collision detection on the server-side. I also helped out on the graphics end and was able to create a tile that can randomly spawn trees. 

If there were goals you were unable to meet, what were the reasons?

I was also trying to research Bullet physics engine, but the progress on that is going slower than I expected because there aren’t a lot of video tutorials online and the documentation for it is rather poor and buggy. 

What are your specific goals for the next week?

I want to start coding data structures for other things about the game, such as players, weapons, maps, etc etc.

What did you learn this week, if anything (and did you expect to learn it?)

I learnt that runtime efficiency is extremely important in an multiplayer online game, and that a quadtree is a very important data structure to be using for unit collision 

What is your individual morale (which might be different from the overall group morale)?

I’ve achieved quite a lot for this week, and I’m happy for myself and the team. I can slowly see everything come together 

Sheila Pham

What were your concrete goals for the week?

Rig the character and animate it. Add cloth/hair and its respective simulation and somehow import that into the animation. Create the environment tile with rocks and low poly grass. Also think about procedurally generated grass perhaps, read up about that. 

What goals were you able to accomplish?

I was able to help write some more classes to set up the environment in the game and core mechanics of allowing us to pass information to tell the human model how to move somewhere. I was able to model a full body and keep some assets for later use. Also, I learned how to texture something properly and the ideas on how to properly test for if the normals are correct. 

We were able to assign random locations in the tiles so that it would not cause a potential overlap with the models.

There are 5 different types of trees, and they look pretty spooky.

What are your specific goals for the next week?

My goals for next week are building the tile for the environment, putting clothes and hair on the character and doing a small animation on it. Also want to be able to render a bigger environment map with a list of tiles.

What did you learn this week, if anything (and did you expect to learn it?)

I learned that blender has some nice features for me to see the normals and how it can affect the way the vertex connects to shape the object. The color zone (green, blue, yellow) indicates up or facing towards a hypothetical sun. The other colors (purple, pink, blue) show that the normal and faces point down. 

What is your individual morale (which might be different from the overall group morale)?

I feel a bit proud being able to make a human mesh. I feel frustrated with not being able to sculpt and also nit-picky about how ugly the face of the girl looks. I wanted a cute face. I’m feeling a bit worried with how I can attach several meshes into one without messing up the vertex or losing important ones when importing to the game.

James

What were your concrete goals for the week?

I wanted to get controls working, setup a first-person camera, and a Scene graph structure working. Overall, I wanted to have users be able to move around in an empty 3D world. Additionally, I wanted to at least have the structure of a Scene graph to be set up, so we could begin communicating positions and movements to the network.

What goals were you able to accomplish?

I was able to get the FPS camera movement and WASD player movement working. I also started working on the Scene graph, but have not yet gotten it to work.

If there were goals you were unable to meet, what were the reasons?

I was also trying to research Bullet physics engine, but the progress on that is going slower than I expected because there aren’t a lot of video tutorials online and the documentation for it is rather poor and buggy. 

What are your specific goals for the next week?

Incorporate the collision detection with the rest of the code.
Begin sending events across the network, and have multiple clients see movements reflected.
Scene graph working and making sense.

What did you learn this week, if anything (and did you expect to learn it?)

I learned about the Quadtree from Sam, and refreshed myself on how Scene graphs work.

Aneesh

What were your concrete goals for the week?

Helping set up a way to send structs across a network connection.

What goals were you able to accomplish?

With quite some help from Edward, Shane was able to get the code we had from our work in the group meeting to work for sending serialized structs across a network connection.

What are your specific goals for the next week?

I don’t have any specific goals as of right now for the next week. However, I would like to work on the game logic on the server side and so will likely take up some task on that end.

What did you learn this week, if anything (and did you expect to learn it?)

Serialization in boost seemed pretty straightforward from the examples we saw online but the same set up did not seem to work for us. I still have to meet up with Shane and understand what we did wrong to not have things working. But I did learn a little about a useful layer of abstraction that boost uses to serialize stuff which was using archives.

What is your individual morale (which might be different from the overall group morale)?

I feel like I have not been able to do much on the project outside the work I do during the group meeting times. I do feel somewhat daunted by the newness of the tools we are using. But I am working on setting more time aside and actually sitting down to work on the project outside of group meeting hours. I guess I am a bit worried about failing to learn the new tool but I will have to overcome that fear to contribute well towards this project.

1 comment

Comments are closed.