代码之家  ›  专栏  ›  技术社区  ›  JtR

《半条命2》多人游戏协议是如何工作的?

  •  22
  • JtR  · 技术社区  · 17 年前

    5 回复  |  直到 17 年前
        1
  •  39
  •   James McMahon    17 年前

    《半条命2》、《反恐精英:来源》等都使用Valves Source引擎。阀门有一个 developer wiki 它涵盖了很多东西(它很酷,看看吧!)。..

    您可能会对以下文章感兴趣:

    Latency Compensating Methods in Client/Server In-game Protocol, Design and Optimization

    Source Multiplayer Networking

        2
  •  5
  •   ko-dos    17 年前

    你应该退房 Luigi Auriemmas papers 关于半条命。你也会在那里找到一个数据包解码器和一些分解的算法。

    《半条命2》的逆向工程信息可能很难获得,因为它与作弊有关。我猜董事会喜欢 mpcforum

        4
  •  2
  •   Kristoffon    17 年前

    尽管细节可能有所不同,但总体框架已经相当陈旧。以下是一个快速概述:

    较新的游戏让客户自己处理玩家的射击和移动。虽然这导致了更少的动作和火力,但它通过黑客攻击客户端代码开辟了更多作弊的可能性。现在,每个玩家都在自己的电脑上独立移动和射击,并将他们所做的事情传达给服务器。只有当两名玩家相互碰撞或试图同时接通电源时,才会出现故障。

    现在,服务器有来自每个玩家的客户端状态流,必须同步它们,并从中制作一个连贯的游戏。诀窍是测量每个玩家的延迟。最终目标是能够向侧向移动的敌人发射延迟非常低的武器(如狙击步枪或轨道炮),并使其正确击中。如果知道每个玩家的延迟,假设玩家A(延迟50ms)向玩家B(延迟60ms)开枪。为了命中,球必须击中B,而B在60毫秒前是B,a在50毫秒前是a。

        5
  •  1
  •   John Smith    17 年前

    推荐文章