【发布时间】:2011-04-13 23:16:21
【问题描述】:
我有一个用于客户端-服务器游戏的服务器(理想情况下是小型 MMO 的基础),我正在尝试确定组织所有内容的最佳方式。以下是我所拥有的概述:
[server start]
load/create game state
start game loop on new thread
start listening for udp packets on new thread
while not closing
listen for new tcp connection
create new tcp client
start clients tcp listener on new thread
save game state
exit
[game loop]
sleep n milliseconds // Should I sleep here or not?
update game state
send relevant udp packet updates to client
every second
remove timed out clients
[listen for udp]
on receive, send to correct tcp client to process
[listen for tcp] (1 for each client)
manage tcp packets
对于管理游戏状态、tcp 连接和发送/接收 udp 数据包以进行状态更新,这是一个公平的设计吗?有什么问题或问题吗?
我最感兴趣的是进行游戏循环的最佳方式。我知道如果我有大量客户端,我会遇到问题,因为我会为每个新客户端生成一个新线程。
【问题讨论】:
-
many user是多少? -
我没有设置限制,但目前没有人使用它。我想拥有的是可扩展的。我知道为超过 10 个客户端的每个客户端生成一个线程会很糟糕。
标签: java multithreading networking client-server