Find Week 8's report here. Find Week 6's report here.
For the week 8 meeting on 5/18.
This week, significant progress was made on integration, with many game elements being moved from client to server and the server-client interaction being refactored. The server can now generate maze walls and ability chests for the client, as well as track and update player movement. In addition, walking and shooting animations can be seen by multiple players, and logic for chests has been added. A general structure for the game has also been implemented. Next week, we will work on collisions, abilities, and making additional animations visible to other players.
We ran into some trouble with the VNC Viewer and the demo machines. One issue we faced was connecting from the client demo machines to the server demo machine. A simple network messaging program will be run on the machines to determine why we are having this problem. Other issues we discovered involves capturing player input and displaying the first-person perspective.
In work involving other areas this week, a 2D player health display was added, which is one part of the display overlay players will see. More work was done on ability icons. And using vcpkg, the time required for setup has been reduced significantly. Documentation for the process is in progress.
With solid progress being made this week, morale is high.
The image below is the remove wall icon. The gif’s below demonstrate character animations and chests working in multi-player.
My concrete goals for the week were to finish loading in animations and work on integration so that the existing client features work in multiplayer.
I was able to get a lot of work done on the integration side. This week I made it so walking animations and shooting animations can be seen by multiple players. As in one player does their animation and the other player will also see whatever animation happened. I was also able to implement the logic for using chests for multiple players so that when one player uses a chest, it is no longer accessible by other players and shows the chest to be opened. This wasn't a goal, but I also implemented the player healthy display which is represented as a number in the top left corner.
Most of my time ended up getting spent on integration as we were trying to prioritize features for the demo on Tuesday. As a result, I wasn't able to load in the crouching and running animations for the player to make sure that they work. I'm pretty sure that my existing structure for handling animations should be fine, but I would like to take some time after getting a working demo to add those animations in.
My specific goals for next week are to help out more with integration and make sure that the game is playable on the demo machines as well as load in the animations and help implement the abilities. We faced some issues this week where the first player perspective on the demo machines didn't work due to some mouse issues with VNC viewer. Additionally, there is still the issue of player input working even if you are not clicked on the window. I haven't had the time to check both of these out and it seems like the former is much more difficult to resolve so I would like to spend some time trying to figure these out.
This week I learned that the demo machines do not function the same as our local machines. It will be interesting to see if we will be able to find solutions to the various issues posed by playing the game through a remote viewer. I didn't anticipate this to be a problem at the beginning of the project so it is unfortunate that we are now figuring out ways to deal with this.
My individual morale for game progress is very good overall. I think that the integration overall went reasonably smoothly. The only things we have left to do are to integrate handling for player position, orientation, and shooting. I'm currently working on integrating orientation but I feel that we will be able to get the other two done as well (albeit maybe not by this week's demo). The one thing I am concerned about is playing the game through VNC viewer as we tried lowering the mouse sensitivity by a lot and that has not fixed the issue.
Cleanup of our install process, also documentation.
Cleanup is done it is much easier now with use of vcpkg. But documentation is in progress.
Couldn't do much work on documentation, 4-5 major projects from other classes and 2 research papers...
Write our documentation up entirely. Work on footprints for network-based play.
Learned about vcpkg for Visual Studio.
Lower morale than usual due to the nightmare named Visual Studio. Before vcpkg it was literally a 5 hour setup every time. And every time there was a git update the VS files would be overwritten and the whole thing had to be done from scratch. Fortunately vcpkg reduces that quite a bit, so hopefully going forward it's better. Also have a lot of work going on so hard to keep up with it all.
Finish creating the maze.
Creating and generating the walls, creating and sending the ability chests from the server to the client, generating the ability chests on the client, movement for the player, and refactoring the server/client interaction, creating an overall game structure.
Met all of my goals.
Work on more gameplay: bounding boxes, abilities, etc.
Important to get timing and order of operations done correctly for the client and server. Had to deal with many crashes because of reading messages early, initializing objects early/late, etc.
Low-medium. Had to deal with a lot of bugs with the client and server.
My concrete goals this week were to finish the ability icons and to create a walk-to-crouch animation and a walk-to-run animation.
I was able to create one of the icons out of four remaining. I was able to create a walk-to-crouch animation, but not a walk-to-run animation.
I was not able to finish the icons because of work for other classes. We ended up deciding on not needing a walk-to-run animation.
My goals for next week are to finish the rest of the icons.
I did not learn anything new this week.
My morale is still high.
My goal for this week was to get shooting to work.
I did give some advice about networks over Discord, but otherwise was not able to get shooting to work.
This past week was a uniquely busy week for me (but will thankfully not occur again), and I have some environment issues that preclude me from working, given that I’m on Mac and using Bootcamp.
My specific goals for next week are to continue to work on shooting.
I got experience using Bootcamp on Mac.
My morale is good.
Last week I was able to get a server to send player_messages to all of its clients after a client updated its position through an input_message. After struggling to bring that functionality into the current structure of our code, my goal later in the week switched to solving an issue connecting client to server on the demo machines.
I added a way to pass the desired Server IP Address and Port Number to the Client on execution and made a simple network messaging system to help diagnose what problem we are facing with connecting on the demo machines.
I ran into an issue with Boost on the demo machines when I was compiling my simple network messaging system. Once that is figured out, I can determine why we are having issues connecting Client to Server on the demo machines.
My goal for the early part of next week is to solve the issue we were having connecting Client to Server on the demo machines. Then I’ll get back to helping integrate what we have left at that point.
I spent time on the demo machines for the first time.
My morale is high.