gpt4 book ai didi

multithreading - 专用服务器与组合客户端-服务器?

转载 作者:行者123 更新时间:2023-12-03 13:00:53 24 4
gpt4 key购买 nike

我正在编写游戏服务器和客户端。服务器生成一个世界并将其提供给各种玩家客户端。它不是大型多人游戏。

客户端(至少目前)运行一个要求相当高的软件渲染器,以及执行标准客户端模拟(然后由权威服务器批准),因此任何可用的处理可扩展性都很好。

服务器也将是处理器密集型的,并且鉴于项目的性质,随着项目的进展,可能只会变得更加如此。世界是程序化的,其中一些发生在游戏中;世界选项是在游戏开始之前根据当时的系统功能设置的(理想情况下,运行的外部进程最少)。因此,硬件线程数量的可扩展性对于服务器来说是绝对必要的。

同样,由于这不是 MMO,玩家都可以访问客户端和服务器,以便他们可以设置自己的服务器。许多玩家将只有一台机器来托管服务器并运行客户端,以便能够与他们的 friend 一起玩。基于这个事实,哪个更适合我?

  • 一个组合的客户端和服务器进程
  • 分离客户端和服务器进程

  • ……为什么?

    PS。即使上面的一些复杂性只是在以后才出现,我需要尽可能早地使架构(在这方面)正确。

    最佳答案

    我想说帮助您做出决定的最重要方面是 - 是否有任何计算密集型任务可以为客户端和服务器共享?如果您可以为客户端和服务器进行一次计算而不是两次,那么拥有一个进程是有意义的(但这可能很难实现)。否则我说分开。

    我看到分离进程的几个优点:

  • 当客户端崩溃时(我会说更可能是复杂的渲染器和/或有缺陷的图形驱动程序)服务器保持运行
  • 意外(和/或生气的QQ)退出游戏不会为其他玩家杀死游戏
  • (如果需要)更容易将服务器绑定(bind)到少数内核,将客户端绑定(bind)到其他内核
  • 无论如何,您可能都需要编写专用服务器(因此它可以托管在远程服务器上,可能没有图形)并将其移植到其他操作系统可能更容易......
  • 使客户端代码整体不那么复杂

  • (如果我想出的话,我以后可能会在列表中添加一些东西)

    关于multithreading - 专用服务器与组合客户端-服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8544971/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com