- Home /
Unity + PHP networking movement sync
Im trying to develop an online RPG game.
The player will be able to walk in the open world while he will send requrest to the server to ask for the position of all players in his area(php based). When it comes to PVP, or PVE, the duel in PVP is turn based. What i mean is, the player casts a spell and his turn ends, then he waits for the other player to cast a spell. Durring the duel the player have no controll over their characters. They can just keep casting spells to each other until someone wins.
The problem here is that this would overload the server and cause lag to the players. But since it is a turn based game, in the duel the players dont need to send requests too often. That will happen only when they cast a spell, or recieve data from the server that the other player has finished his turn. In the duel, there wont be many requests sended to the server, the problem is the synchronization in the open world.
I can make the player's client send request for the other player's possition every 2 seconds, and then i can setup the scripts to make the other players move smoothly like there is no lag(i can use NavMesh for example). The open world lag will not be noticed by the players. But if a player(A) decides to go to player(B) to duel him, player(B) will notice that player(A) is following him. Player(B) will try to stop, but his movement will be delayed with 2 seconds. That would make the players notice the delay, and they might lose interest in my game.
You might ask me, why i don't use some Networking Engine or something? I will answer you. Let's say in the past i developed my game using Unity's Unet. Unet is going to be closed soon, so what? I need to rework my entire game because of this? That would take me year or two if my game is big(and i am solo developer). What if i use Photon? It only has room for 20 players(if you use the free plan). Im living in a country where i earn really-really low amount of money. And i am not able to pay each month for online services like Photon. On top of that who knows for how long Photon would last, and will they update their service/asset to a point in which i should rework the scripts for my entire game that requires programming knowledge that outreaches my programming skills in C#.
This is why i decided to make my own system/engine based on PHP that would be used ONLY for the open world player movement, NOTHING ELSE! And about the rest - Buying items from an NPC, spells, accepting quests and so on, those would be seperated PHP scripts from the engine's scripts. Even tho i don't consider myself advanced programmer, i know that what im trying to do is an amateur job. If i succeed, there will be no need to host the game on my PC and so on, my game will be independent. I will just upload the website files to a webhost transfer my database and that's it.
I want to hear some oppinions. If there is 2 seconds delay in the synchronization, will there be still big lag around the players(lets say there are 100 online players in that area)? I need to know if there is a possible way to make the PHP engine as efficient as possible. Please help me because i even get depressed. I can't sleep knowing that im wasting my time on something pointless. Sorry if this post seems long to you, but thank you if you had the patience to read it. Thank you for your time.