我开始研究用Java编写的游戏服务器。当然,Java不是服务器开发的最佳解决方案,但它是我最熟悉的语言。
我正在尝试设计这个游戏服务器以处理大量连接,我不确定要关注什么:将数据存储在内存中或者降低内存使用率并使用更多的原始CPU功率?
答案 0 :(得分:1)
当然取决于你的游戏是什么样的。我最近在我的服务器上对5,000个客户端进行了基准测试,例如20MB的内存。你可能会保留比我更多的状态数据,这可能是一个问题。
许多连接的严重问题是设置套接字以正确处理它,使用某种方式的套接字处理变得非常困难或破坏@ 1024连接等。我不确定你可以在java中做多少优化。
请看this link我正在谈论的内容。
而且,祝你好运!此外,尽快将语言切换为提供与java相似功能的语言,但没有可怕的缺点(意味着Objective-C或C#)。我不仅仅是“抨击java”,但是当你谈到做一些高效的事情时你会遇到的问题是java会抽象你离操作系统太远而你将无法利用优化当你需要的时候。
答案 1 :(得分:0)
我不建议你设计服务器远远超过你真正需要的。如果您突然发现有10,000个客户端,则可以重新设计系统。
我会从基本服务器开始,例如i5配备8 GB内存,价格低于500英镑,i7配备24 GB,价格不到1000英镑。
随着您的连接数量的增加,除非您使用云解决方案,否则在耗尽资源之前可能会耗尽带宽。
BTW:你可以在Java中实现一个低于100微秒延迟的高频交易系统。我还没有听说过任何Objective-C高频交易系统。 C#可能在Windows上运行得更好或更好,但我更喜欢Linux用于服务器系统。