• Content count

  • Joined

  • Last visited

Community Reputation

110 Neutral

About jxwnhj0717

  • Rank
  1. I am planning to develop client-server RPG, but I get stuck in accurate attack. Think about under situation: 1. Player1 at position A in server. 2. After 100ms, Player2 see Player1 at position A, but Player1 moved to position B in server side. 3. Player2 attacks Palyer1 at position A. 4. After 100ms again. Server receives attack packet, But Player2 moved to position C, if Player2 attacks Player1 at current position C, the hit will always miss. I need estimate attack time: Command Execution Time = Current Server Time - Packet Latency - Client View Interpolation This formula from: https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking#Lag_compensation But how can I get Packet Latency and Client View Interpolation? I read the unity network demo of TPS-Auth. I think Client View Interpolation should be equal to fixed time + Client Latency.( GraduallyUpdateState.cs m_InterpolationBackTime property)
  2. If server just check the collision and broadcast the position of client, what will happen?
  3. [quote name='hplus0603' timestamp='1345825588' post='4973026'] One approach that is often used is to have fairly simple physics (sweep a sphere against a BSP tree, or similar) and then run "secondary simulation" on the client to make it look better (foot IK, moving guns/arms so they don't penetrate the wall, etc) [/quote] I am sorry I can't understand "secondary simulation", does means client received the position/state of character simulated by server, client simulate it again? has some articles explained this?
  4. I need a lot of type of jump action: 1?jump in place when press space 2?jump forward when character is moving 3?long jump when charcter is running 4?high jump when charcter jump again before the previous jump hasn't finished bullet or another engine can implement these, how to do it? I am developing MMORPG, so one client jump, how to I broadcast this action to others resided in the same window. send the key position to server? or simulate the action both in server and others's clients?
  5. [quote name='hplus0603' timestamp='1345746134' post='4972694'] You can quantize floating point numbers to shorts, if you can accept the loss of precision: [code]short sent_value = floor(float_value / MAX_RANGE * 32767);[/code] Unpack it on the other end: [code]float received_value = short_value * MAX_RANGE / 32767;[/code] [/quote] Thank you very much! I test this method, set MAX_RANGE=1000, then sent_value approximate equals to received_value plus or minus 0.02. I can use the map which has 1800*1800 size About the physical simulation,client just need calculate one character, but server has thousand of characters. If the server run the same simulation, I think may be it will crash.
  6. I come from China, if my English make you feel uncomfortable, I make an apology! But please read my question and give me some advising. I read Recast/Detour project to figure out how to navigation in 3D environment, I noticed the player position is floating point, it does't like 2D game that every point is integer. In 2D, I can deliver player position to server use two bytes(assume the grid map is 256*256), but in 3D, I need use three float numbers. The only thing I can think of to optimize the communication is zip the data, does it exist high-efficiency schema? Another question: when server received the player position, it need be validated to makesure it's whether a nomal position or a fake position, How to do it? My idea is check the distance between this position and previous position, to guarantee player can't move too fast. But this can't guarantee player would not drilling soil or walking on the sky, I need more strict validation. By the way, we choose bullet as collition detection and physics engine. I browse some bullet demo, but could not find a Demo show character's jump action. I don't know how to implement jump action, if you know how to jump, or better free physics engine, please tell me. When player is jumping, the position on the sky is allowed, so the validation is more complex. Our browser client language is AS, server language is JAVA.