zoukankan      html  css  js  c++  java
  • 有价值文章收集(即时通信)

    即时游戏通信

    所有逻辑实际发生的时刻都在服务端,只有当数据发送到服务端时,事件才真正发生。
    客户端的操作应该是立即响应的,必须先行动,才发送数据。
    导致的结果是,客户端的事件发生时间和服务端是不同的。自己的行为会比服务端早,别人的行为会比服务端晚。由于具有时间差,客户端完成的行为可能会和服务端实际发生的行为不同。这时候就只能由服务端校正客户端,但只有在出现冲突时才需要校正,而不用校正所有的差异。
    当客户端必须从服务端获得数据才能继续逻辑的时候,自然只能等待服务端返回才会出现事件,但是服务端的事件会先发生。
    服务端发送的事件,客户端必须无条件接收,无论当时看起来是否合理。

    行走,应该认为是客户端在实际远程操作服务端,将自己的操作发送给它。因此必然是具有延迟的操作。而客户端的显示则是自己处理的。不同步将会影响其他的判断,但这是无法避免的。双方差异过大则校正。
    普通的攻击。只要客户端显示在范围内,CD时间已经到了,攻击动画就可以正常播放。但是由于具体的伤害值必须由服务端计算(随机),因此伤害数据和实际减血必须等服务端返回后才会发生。如果由于坐标问题服务端判断这个攻击不成立,将返回MISS。
    某些顺发技能可能无法做MISS处理,则需要先由服务器判断是否可行后再释放。可以先做动作,但是效果发生在判断完成前必须等待。
    打开宝箱是立即的操作,但是显示获得物体必须服务端判断。如果认为无法获得宝箱,显示空或者错误信息。
    触发陷阱,完全服务端判断,客户端只作显示。

  • 相关阅读:
    mysql修改数据表名
    HDU 5742 It's All In The Mind (贪心)
    HDU 5752 Sqrt Bo (数论)
    HDU 5753 Permutation Bo (推导 or 打表找规律)
    HDU 5762 Teacher Bo (暴力)
    HDU 5754 Life Winner Bo (博弈)
    CodeForces 455C Civilization (并查集+树的直径)
    CodeForces 455B A Lot of Games (博弈论)
    CodeForces 455A Boredom (DP)
    HDU 4861 Couple doubi (数论 or 打表找规律)
  • 原文地址:https://www.cnblogs.com/axyz/p/2059598.html
Copyright © 2011-2022 走看看