Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by BlackSunPhoenix · Dec 31, 2019 at 07:38 PM · movementsynchronizationphp

Unity + PHP networking movement sync

Im trying to develop an online RPG game.

alt text

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.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

176 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Is Physics.SyncTransforms() automatically called in built game? 0 Answers

[UNET] Arbitrary movement on client side. 0 Answers

The name 'Joystick' does not denote a valid type ('not found') 2 Answers

Networking State Synchronization Question 2 Answers

Making a bubble level (not a game but work tool) 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges