【发布时间】:2011-09-29 07:25:48
【问题描述】:
我制作了一款游戏(仍处于测试阶段,需要改进,以及其他一些事情),我想知道是否存在更好的方法来说明我在游戏服务器中所做的事情。 (C#编程)
玩游戏的过程是这样的: 客户端应用程序(玩家)→连接到大厅服务器→检查他喜欢玩的游戏的可用房间→大厅响应请求并将玩家指向正确的游戏服务器(全部使用“原始”TCP /套接字)。
每个游戏服务器在房间中至少有 4 个玩家(可以有多个房间)且最多 12 个玩家时自动启动游戏。每个房间在不同的线程中启动,我的意思是,我为每个房间创建一个线程( 4-12 名玩家),所以如果我有 1.200(游戏服务器可以预期更多),那么将至少有 100 个线程(甚至更多取决于每个房间里有多少玩家)。 主线程(并且正在工作)加上创建的所有线程将消耗我服务器中的所有资源......所以,我想知道是否有人可以提出更好的想法或方法?
请记住,所有连接都是异步的,除了在房间里,我的意思是,在房间里,服务器必须等待一个玩家的移动(如 Ludo 游戏或下注)让下一个玩家(在房间)做同样的事情。事实上,移动按钮仅对轮到继续移动的玩家有效。由于这个原因,传输是同步的,当有人移动时,其余的会收到他们各自的通知。
【问题讨论】:
-
你最后是怎么做到的? 10年了!