“I created a main menu UI that works with the existing Network Manager, so it has a nicer appearance, and is visible when wearing the Oculus Rift. It involved writing a new script to use the network manager script, and learning how canvases worked with panels and buttons, and how to make them Oculus-compatible (which turns out, they need to actually exist in world space, so I just made a new scene that acts as a main menu). Thus, I was able to perform network testing with the Oculus Rift, and it worked! Furthermore, I added sprint and jump functionality to the Player Controller and Player Motor scripts, so we have more game functionality, and still have Network compatibility. Lastly, I organized all of our project files, and after a few (disastrous) attempts, I managed to get a “final” project template of what we have so far, and put the entire project on GitHub so everyone is working with an up-to-date version of the project.”
“This week I spent most of the time making my scripts work over the network. Unity has high-level APIs that make the synchronization of value types (bools, floats) very easy, but it is trickier to synchronize complex objects, like a mesh. My solution is when a player is to turn into an object, the id of the player and the object model is sent to the server, and the server broadcasts that message to every client to tell them replace the model locally. Also I added a gunshot effect using particle systems.”
I have been working more on the population in the game as well as making sure all items are not only in the correct place, but have colliders as well. Part of this is also making sure a player cannot glitch somewhere inside the map, or get to an unreachable area with the props. After this, I need to work on is the start of a default character model so as to not glitch through the prefabs in the scene. Not only will this look better than a floating sphere, it will give the player a better view of the map while playing as a person at a normal height rather than moving against the ground.
Accomplishments Made by Team
We have everyone updated on the project, which is a huge plus. One worry we had was that our files would not work together once they were in the same project, and that was if we could even get all the files into one project without many compiler errors. This was a huge task, and it is finished. Also, the environment is much more resembling a game at this point, and not an undeveloped template. Assets such as props, decor, and even “the little things” that make the house a “house” have been added, so that a player can feel much more immersed in the game. Although we said we had a functioning game last week, we still lacked some basic gameplay stuff, which Sizhuo is constantly adding to. With the addition of gun particle effects and network state updates, the game is even closer to a finished product. We are definitely at the state of testing (once teams can be made, though we could just make it a free-for-all at this point).
Grayson needs to look into colliders, as with our current player controller we can run through some walls, and fall through stairs. The cause of this is unknown at the moment, so we are unsure at the severity of the issue (it could be a 5 minute fix, or a complete reconstruction of our colliders, which in that case we may need to look into work-arounds, as we are pretty far into environmental development, we don’t have too much time to redo things).
Sizhuo ran into serious issues with update the player’s image across the network. He found a very innovative issue, with sending id information to every client, and manually update the player’s appearance client side.
Andrew realized that making a UI that works in conjunction with the Network Manager is incredibly difficult/annoying, as it involves writing a new script to manually call functions in the hidden Network Manager script, so that the UI can have the same functionality as the default Network Manager HUD. Also, we have an issue where our player gets a “double jump” instead of a single jump, which might be kept because it works well within the game. Also, Andrew found out the pains of GitHub when version control isn’t managed, and thousands of meta/runtime files are created and attempted to be replaced within the repository, so this problem was solved by manually sorting all the files, then creating a new repository to hold the entire project.
Plans for Next Week
Andrew will look into creating an in-game UI (that may just be text based, we will see) to display player health, what team they are on, time left in the round, and maybe other useful information. If there is time, he might also look into how GitHub manages merging of files with Unity-based assets, though this route may be avoided.
Grayson will continue to work on the environment, by added more props to the scene, as well as looking into/fixing collider issues withing the house. He will also look into the default player model, to finalize player movement and perspective in the game.
Sizhuo will continue working on various scripts. Some scripts, like the script for opening doors, has not been implemented yet, so he will begin that. He may also look into making teams for the players, as well as respawning players when they run out of health.
Most importantly, we plan on meeting this weekend to do playtesting across a network with multiple clients, to see if all current functionality is working. Since we have an Oculus, we can also extensively test how object changed will affect camera view, and so on. We believe we are still on track, and everyone is doing an excellent job with their parts!