“I managed to figure out multiplayer implementation in Unity, in terms of setting up a server (as host) with 3 clients. The implementation is not finished, as I still have some scripts to write in order to properly update player information to all players. However, I have been able to spawn 4 players within a game space, and can individually control each player. I have also looked into IP configuration, and how we can connect multiple clients over LAN with multiple PCs. I also further configured Oculus Rift integration, and fixed the jittery frame rate I was having. Lastly, I wrote some player controller and motor scripts to make network integration easier (disabling components so only one player can control one at a time, etc).”
“This week I implemented the mechanism to pick an object and turn into it. Object picking is implemented by ray casting. I drew a simple cursor so the player understands this is the place where the player is aiming at. When the player hits the fire button, an object is picked and then the mesh and collider of the player is replaced by those of the picked object. I also imported the two SketchUp models into Unity.”
“I have been working on improving the overall layout of the house, as well as adding textures and working with colliders on the walls, stairs, and ceilings in order to make an explorable environment. As the house is coming together, I am beginning to think about possible additions to the house, as well as weak points (where a player may get stuck in a corner or starts floating in the air — due to collider bugs). On top of this, I am looking in to ways to make the environment run smoother with certain tricks to using unity. While this may require an entire rebuild of the house, It will certainly be worth it in the long run when it comes down to performance issues (this can be adjusted towards the end once the main layout is determined).”
Accomplishments Made by Team
We now have a solid framework, and a strong idea on how this game will function “behind the scenes.” Although not all scripts are written, we know of different ways we can implement them. Also, we now have enough assets to perform functional tests, and incrementally build up the project to help find serious issues before it’s too late. Within a week or two, we estimate we will have a functioning multiplayer game that will be aesthetically pleasing and have decent functionality. That is, we feel confident we will have a game of some sort to present during the final presentation.
One problem we might have is in integrating our scripts/prefabs. We each are working on different aspects of the project, so we must make sure that not only do our parts individually work, but that they work in a single project. For example, Andrew created a player prefab that will work nicely with a Network Manager and with the Oculus Rift. Sizhuo is now has to base his game functionality off of this prefab template, and Grayson will use Sizhuo’s collision implementation built from this to ensure the environment functions properly with player interaction.
Andrew ran into a serious problem with RPC’s, which is Unity’s old answer to multiplayer functionality. They’re obsolete in Unity 5 (which means they don’t work anymore) and Andrew found this out 4 hours after starting to write scripts for this implementation……
Also, Andrew found out that basic UI elements don’t appear on the Oculus Rift (not even on the monitor when the Oculus is being used), and so a new Oculus UI might need to be implemented, which can be troublesome.
Grayson ran into an issue with coloring walls, and their colliders. Since the house is made up of cubes, it is difficult to color only one side of the cube (coloring walls, for example), so Grayson is now trying to use two cubes for each wall. This solves the coloring issue, but then we may have different collider issues with the player getting stuck, spawning incorrectly, etc.
One problem Sizhuo met this week is that the camera is fixed at the origin of the player’s coordinate system, which means that it is always at the center of the player model. This can cause problems. As shown in the picture, when the player turns into a shelf, the camera is in the shelf model so the view is partially occluded by the layer. Another problem is that sometimes the colliders don’t work correctly. If the user turns into a mug, it may pass through the shelf.
Plans for the next week
For next week, Andrew will try to finish up the multiplayer implementation, and test out multiple different setups with more than one computer, to see if an active gaming session can be created without bugs or crashes. If this is accomplished, he will begin looking into the Oculus Rift UI issue, to ensure that the game can be implemented successfully.
Sizhuo’s plan for next week is to deal with the camera clipping issues. He is thinking about assigning a camera position to every object. He will also look into how Unity deals with physics to make the objects interact correctly, and if possible, start implementing the game mechanism for the hunter gameplay.
Grayson will try to finish the house and add surrounding environment (trees, other buildings, landscape, etc) and begin adding props to the house (with the help of Sizhuo). If necessary, prop spawning will be looked at, to prevent items being spawned within other objects.
Overall, we are making great progress, and expect to have most of the difficult work figured out in the next couple weeks. No serious issues have arisen yet, but nonetheless we are still preparing for them.