【问题标题】:handling multi client in game在游戏中处理多客户端
【发布时间】:2018-03-20 02:30:36
【问题描述】:

我正在做一个游戏,游戏有服务器和客户端连接到房间玩,每个房间都是一个游戏,并且在一个线程上运行,

现在我想了想,我知道我需要在游戏过程中与所有玩家交流,我不知道该怎么做,我想为每个玩家创建一个线程,这意味着我需要为房间开一个线程,为玩家开1-3个线程!

对于一个迷你项目来说还可以,但理论上如果它是一个拥有百万以上玩家的游戏,这意味着至少 1m 线程,

服务器可以处理这么多线程吗?这是解决这个问题的正确/好的解决方案吗?

【问题讨论】:

    标签: java multithreading server client


    【解决方案1】:

    首先,同步非常困难,并且是解决此问题的一种非常昂贵的方法。最好有一个线程来处理所有播放器处理,这样您就不必担心播放器之间的线程同步。老实说,如果您的游戏不需要大量的处理时间,您可能会更好地使用所有处理都在其上进行的单线程设计,而不必担心一切都是线程安全的。显然,如果您想了解多线程,这将不是一个有利的解决方案。

    【讨论】:

    • 但是可以用一个线程处理一个房间(1-3 个玩家)吗?我的意思是我需要为每个玩家读取一个套接字,我不知道玩家将数据发送给我的顺序,到目前为止我只看到套接字以同步方式工作。
    • @likesLowLevel 这当然是可能的,但这取决于一个房间需要多少处理才能确定它是否是最有利的解决方案。 RuneScape 等游戏也基于单线程设计,服务器-客户端关系似乎与您想要实现的目标相似。
    猜你喜欢
    • 2015-05-23
    • 1970-01-01
    • 2012-02-21
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 2013-05-11
    • 2011-05-14
    相关资源
    最近更新 更多