游戏

2017-10-08 86 views
0

我工作的一个游戏处理多客户端,游戏中有服务器和谁连接到房间玩客户端,每一个房间是一个游戏,并在线程运行时,游戏

现在我考虑过它,我知道我需要在比赛中与所有球员交流,我不知道如何做到这一点,我想为每个球员做一个线程,这意味着我将需要打开一个线程房间和1-3线程的球员!

一个小型项目很细啊,但是从理论上讲,如果它是一个游戏有600万级+的球员,这意味着像1米最小线程,

有可能是一个服务器来处理这么多线程?这是对这个问题的正确解决方案吗?

回答

0

首先是非常难以同步,并且是解决此问题的非常昂贵的方式。最好有一个线程处理所有玩家的处理,这样你就不必担心玩家之间的线程同步。说实话,如果你的游戏不需要大量的处理时间,你可能更擅长使用单线程设计来处理所有的处理,而不必担心所有的线程都是安全的。显然,如果您想了解多线程,这不会是一个有利的解决方案。

+0

但是有可能用一个线程处理一个房间(1-3个玩家)?我的意思是我需要为每个玩家读一个套接字,但我不知道玩家将数据发送给我的顺序,到目前为止,我只看到套接字以同步方式工作。 – likesLowLevel

+0

@likesLowLevel它当然是可能的,但这取决于一个房间处理多少处理是否是最有利的解决方案。 RuneScape等游戏也基于单线程设计,而服务器 - 客户端关系似乎与您尝试实现的类似。 –