After talking to Dr,Diefenbach about the problems that I was facing regarding this project. I have decided to cut back on some of the content. How I originally planned this out was using the VRchat playform to create three trypes of worlds, one was going to be a park like setting, the other one was going to be set ip in a party like experience, but in the end I have decided to cut down two out of three worlds since the workload was going to be intense if still kept.
My new approach in how I will tackle this project will be as followes. I will be comparing and contrasting vrchat vs my own personal project to see which one will be best for what I am trying to accomplish
For this week I have revised my plan from what I thought I was going to do. To what I will be now doing.
This week I have successfully connected the project to the internet. By internet I mean that I was able to connect it to a network using Photon. The Photon engine is a game engine specializing in multiplayer game development. It’s a series of products, software, technology, and networking components that bring great speed, performance, and more to online play.
After reading the documentation and succesfully implementting the require test these are the rest that happened during gameplay
Week 5
Continuation on the VRchat like clone. If completed then I will do a comparison as to what is better and what was easier to implement.
Week 6
Continuation of the VRchat like clone but this time allow the player to select where they want to go. For example giving them the ability to select worlds and be able to connect with them
Week 7
Implementation of spawning into the game as well as trying to list how many players are currently connected between the different worlds
Week 8
Implemenation of avatar selection. Allowing the player to choose between different already created character.
Week 9
Implementation of voice chat as well as wrapping things up
Week 10
Present the project that I have been working on
In todays daily blog I will be talking to you about the progress that I have made with the Vrchat clone. For starters I have succesfully implemented a keyboard into the game. Why a keyboard you ask? Because I want people to be able to log in with whatever name they feel comfortable with, I have also added tha ability to log in annonymosly if they do not want to name themselse.
The code that you see here is the code that I have used for when it comes to connecting to the online multiplayer. When starting the game you will have the ability to choose between Logging in with a name or without a name. If the player chooses to log in with a name an if system was implemented so that they dont just leave it blank. Once the player finishes choosing the way they want to log in, a function will be sent to photon to see if they are able to connect. Once connected it will load into their home scene where they will be able to pick from a selection of avatars to worlds that were created. Those functions will be added later into the game.
public void ConnectAnonymously() { PhotonNetwork.ConnectUsingSettings(); } public void ConnectToPhotonServer() { if(playername_Inputname.text != "") { Turnitoff.SetActive(false); PhotonNetwork.NickName = playername_Inputname.text; PhotonNetwork.ConnectUsingSettings(); } else { Turnitoff.SetActive(true); Testing.text = "Please Input a name"; } } #endregion #region Photon Callback Methods public override void OnConnected() { Debug.Log("OnConnected is called. The Server is available"); PhotonNetwork.LoadLevel("HomeScene"); } public override void OnConnectedToMaster() { Debug.Log("Connected to Master Server with player name: " + PhotonNetwork.NickName); }
public void JoinRandomRoom() { PhotonNetwork.JoinRandomRoom(); } public override void OnJoinRandomFailed(short returnCode, string message) { Debug.Log(message); CreateandJoinRoom(); } public override void OnCreatedRoom() { Debug.Log("A room is created with the name" + PhotonNetwork.CurrentRoom.Name); } public override void OnJoinedRoom() { Debug.Log("The Local Player: " + PhotonNetwork.NickName + " joined to" + PhotonNetwork.CurrentRoom.Name + " Player count" + PhotonNetwork.CurrentRoom.PlayerCount); } public override void OnPlayerEnteredRoom(Player newPlayer) { Debug.Log("Player count: " + PhotonNetwork.CurrentRoom.PlayerCount); } private void CreateandJoinRoom() { string RandomRoomName = "Room_" + Random.RandomRange(0, 1000); RoomOptions roomOptions = new RoomOptions(); roomOptions.MaxPlayers = 20; PhotonNetwork.CreateRoom(RandomRoomName, roomOptions); }
So a little bit about the script that was posted above this paragraph. It allows the player to create their very own room, using the Photon framework. The only downside for the free version is that you are limited to only about 20 players compared to other platforms that allow up to 100 players at once. Once succesfully connected to the photon network it will create a room, if not then it will continue to work until connection is made
So in summary the first script is used for when the player is trying to log in to the service while the other script is used for when they want to join other worlds, the ability to pick and join a world will be developed at a later time but will be possible towards the end of the class. A summary of everything will be provided tomorow
Assets that are currently being used as of this date
So for todays blog I will be talking about the updates that I have made for the game. Currently with the build that I have made so far, it has allowed me to create worlds where players are able to join in. In the home menu of the game you can see the amount of players that are in that specific room. So lets say before you enter you will see that it says 0/20 but once someone enters that specific lobby it will change that counter to 1 telling to you that someone is inside that room.
I have stumbled into some difficulties today, for starters the worlds were not connecting to the proper worlds and they werent updating as they should. The number for how mnay players were currently in the world was stuck at zero. After 2 hours of debugging the mistake that was causing that error was that a function was not being called properly. The function that was preventing things to work properly is called OnConnectedToMaster. This function in particular grabs the name of the player that is placed by them in the login scene, after that it grabs their name and moves them into the main hub. But I made the mistake on placing the PhotonNetwork.LoadLevel("HomeScene"); on onconnected instead of onconnectedtomaster since this function calls the main server and if connected successfully transports them to the main hub.
So for todays blog I will be trying to clarify a few things about the project that I am currently working on and why am I creating it.
What is the purpose?
The purpose of this project that I am doing is to get a better understanding in creating a VR chat like clone. The reason as to wht i chose to do this was because if I were to create something along the lines in the future. I would have a better understanding in creating one. Since this would be the first time that I will be working in getting a game to use online multiplayer
What it will look it?
When it comes to the worlds I was in the mindet of creating two worlds so that player can travel, explore and talk to one another. Why do something like this when discord does the same thing? I want to create a social virtual reality game where players are able to hang out, as well as to help them when it comes to social anxiety. Since talking to someone behind the screen is not the same way as to talking to them and seeing their reactions through a virtual reality headset.
Technology Problems?
One of the main problems that I will be facing would be getting the multiplayer up and running. I can get it up and running but I also have to make it where other players are able to see each other, be able to speak to one anotherm and be able to join different worlds together. As you saw from the past post I was having difficulties when it comes to just updating a counter where it shows how many players are in a room.
Requirements
So for the requirements that I am trying to aim is to get it up and running for PC. As well as get it up and running for Meta Quest 2.
Users role
The user will be able to talk to one another as well as be able to interact with the world that they are in. Main purpose is so that people are able to interact with other people but in the virtual world
I know it was late but I wanted to sit down and decided what I will be doing. For tomorrows blog I will be showing what I have worked on and the next steps that I will be doing when it comes to this project. As well as a revision of the goals that I have in mind.
Creating rooms based on selection of map
Joining virtual rooms on map selection
Synchorinizing scenes based on map selection
So for todays blog I have implemented to where the player is allowed to pick a world and their avatars stays with them. At the moment it only works with local testing, since more than one character on the screen cause the game to crash. I will look into this in the coming days. But so far it has been a success. The way that you do this process is that you call the photon networn and you instantiate a character prefab, if succesful it will connect to the network and at the spawn of the world you will be able move around with the premade character.
I have looked at the feedback that was provided by Dr.Diefenbach. After testing out a couple of Text to speech program they all work for a windows build of the game, but since I am aiming to use it in an android based build the compatability of it is non existing. But it has given me an idea to how I should approach when people do not want to talk and just want to stay mute. I shall provide video of what I am thinking about in the next video update
I have also decided to look at activies that players will be able to do inside the virtual world and I have decided to go with coloring cause who doesnt like coloring.
So for today I have decided to do a video update rather than text since I have made a huge progress on the game
Videos that were talked about during the update
Hello Yall today I have decided to go a different route when it comes to updating you all about the updates that was made for the past week. I will be writing the pros and cons about the technologies that was tested throughout this week.
For starters let us talk about the Text to speech link that was provided by Dr.Diefenbach. When trying the program from a totally new unity build it worked wonderfully. The ability of being able to type and the voice say the word was just super fantastic. But the reason as to why it was not implemented was because there was some compatability issues with my project and the text to speech. The huge major problems that I was having when it came to getting it to work properly was becaue since the originl project was originally built on a windows platform, it was not able to succesfully translate to an android based build. It kept throwing me errors about the shaders not being compatible and since I know that some shaders are not compatible with the android based build I decided to just scrap it.
Pros: Amazing text to speech program.
Cons: Was not able to get it running in the Android version of Unity
This is another project that was implemented into the game. After getting to the part where changing some settings in the camera was needed. The realization of the limited shader was a huge problem as to why this video would not work in the game. Since The amount of shaders were limited compared to the windows version of Unity, it had to be scrapped since it was not able to be implemented properly because of the limitations of running things in the android version of unity
Pros: The ability to draw is simply fantastic
Cons: Shader limitations using the android version of unity
NPC Engine is an interesting and really cool technology. The ability of being able to talk to NPCs with your voice is a really cool idea. But since this is a very early alpha state of this program, it was quite difficult to get things up and running. For starters you had to download the package form the unity store and once installed into your project you had to also download more stuff in order for this engine to work project. When I clicked on the required files to make it work, it kept giving me an error that it was not able to download properly into my computer. At that point I have just decided to not use it since with each lead it would leave me to a dead end
Pros: Really cool idea especially since you are able to talk to NPCs with just your voice and it gives you a real time response
Cons: Very early alpha build, where much more files were needed in order to make it work properly
This is what will be worked on for the next upcoming weeks, there will be some ramping up when it comes to this project so that hopefully it can get implemented succesfully.
This upcoming week continuation of the multiplayer aspect side of things as well as avatar selection
week 7 : Implementation of Photon Voice
Week 8 : If not properly set up then the continuation of photon voice
Week 9 : last minute fixes
week 10: Present