开发游戏服务器用什么语言好?

2024-02-08

我只是想知道什么语言是开发支持大量(数千)用户的游戏服务器的不错选择?我涉足Python,但意识到这太麻烦了,因为它不会跨核心产生线程(意味着8个核心服务器=1个核心服务器)。我也不太喜欢这种语言(“自我”的东西让我感到恶心)。

我知道 C++ 就性能而言是适合这项工作的语言,但我讨厌它。我不想处理它的草率语法,并且我喜欢由托管语言来控制我的手。这让我接触到了 C# 和 Java,但我对其他语言持开放态度。我喜欢 .NET 的简单性,但我想知道从速度角度来看,这是否适合这项工作。请记住,由于这将部署在 Linux 服务器上,因此它将在 Mono 框架上运行 - 不确定这是否重要。我知道 Java 在语法上与 .Net 非常相似,但我的经验有限。是否有任何框架或可以简化开发的东西?

请帮助我和我挑剔的自己找到解决方案。

更新:我并不是故意听起来那么挑剔,而且我真的不认为我是。我唯一真正排除的语言是 C++,Python 我不喜欢,因为可扩展性问题。我知道进程之间有多种通信方式,但是如果我有一个8核服务器,为什么我需要创建8个进程呢?有更优雅的解决方案吗?


我不想这么说,我知道我在这里冒着被降级的风险,但听起来好像没有一种语言适合你。所有编程语言都有其怪癖,程序员只需适应它们即可。完全有可能在没有类的情况下用 Python 编写一个工作服务器(消除“self”变量类引用),同样使用干净的语法编写 C++ 也同样容易。

如果您希望部署跨平台并希望开发跨平台,那么您最好的选择可能是 Java。它比 C 和 C++ 等编译语言更短的开发周期,但比 Python 和 Perl 等解释语言具有更高的性能(有争议,但我一直反对 Java =P),并且您不必使用像这样的非官方实现Mono 有时可能不支持某种语言的所有功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开发游戏服务器用什么语言好? 的相关文章

  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • Python:帮助(numpy)在退出时导致段错误

    我遇到了一个奇怪的现象 在 python 解释器中 我执行以下操作 gt gt gt import numpy gt gt gt help numpy 帮助显示正确 但一旦我按 q 返回解释器 Segmentation fault core
  • Scrapy的redirect_urls异常.KeyError

    我是 Scrapy 和 Python 的新手 最近推出了我的第一个蜘蛛 有一个功能似乎以前有效 但现在它只适用于我试图废弃的一些网站 代码行是 item url direct response request meta redirect u
  • 春季MVC。方法参数字段的默认值

    我有一个带有方法测试的简单控制器 RequestMapping produces application json ResponseBody public HttpEntity
  • javax.xml.bind.JAXBException: 类 *** 及其任何超类在此上下文中均未知

    我正在尝试通过 REST Web 服务传递对象 以下是我的课程 使用一些示例代码解释了我需要的功能 Rest Web 服务类方法 POST Path find Consumes MediaType APPLICATION FORM URLE
  • 更新分页。是否可以?

    他们是否存在一些方法来处理更新分页 例如我有 100 行类型 Id private Integer id Column private boolean flag Column private Date last 一开始它们看起来像 id f
  • 如何可视化多维数据上的 kmeans 聚类

    我在 mnist 数据集上使用 kmeans 聚类算法 并希望可视化聚类后的图 到目前为止我做了这个 from mnist import MNIST mndata MNIST Datasets X train y train mndata
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • 如何限制scrapy请求对象?

    所以我有一个蜘蛛 我认为它正在泄漏内存 结果当我检查 telnet 控制台 gt gt gt prefs 时 它只是从链接丰富的页面中抓取了太多链接 有时它会超过 100 000 个 现在我已经一遍又一遍地浏览文档和谷歌 但我找不到一种方法
  • 如何将 fields 参数传递到 Google Drive Python API 调用中

    I have results drive service files list body execute where body q query string maxResults 1 为了提高性能 我想限制返回的字段 如下所述 https
  • 如何对 Web Api 操作进行后调用?

    我创建了一个 Web API 操作 如下所示 HttpPost public void Load string siteName string providerName UserDetails userDetails implementat
  • Pip 突然使用了错误版本的 Python

    在 os x 上使用 pip 时遇到一个奇怪的问题 据我所知 快速查看我的 bash history 似乎可以确认 我最近没有对我的配置进行任何更改 唉 pip 命令似乎突然使用了与以前不同的 python 版本 到目前为止 我使用命令 p
  • Struts2中的变量声明

    Struts2中如何声明变量并为该变量赋值 使用设置标签
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • Lucene/Hibernate 搜索锁定异常

    我使用 Hibernate Search 在 Web 应用程序上索引和全文搜索项目 没有问题 来自我的 pom xml
  • VSCode无法切换matplotlib后端:ImportError:无法加载需要“qt5”交互框架的后端“Qt5Agg”

    我只想通过在 VSCode 中运行 Python 来进行绘图 但结果失败了 我无法将后端从 agg 切换到 Qt5Agg 但是 我可以在 VSCode 的终端中轻松执行此操作 VSCode集成终端中的问题如下所示 我尝试了各种解决方案但失败
  • 如何列出Resources文件夹中的所有文件(java/scala)

    我正在编写一个函数 需要访问资源中的文件夹 并循环遍历所有文件名 如果这些文件符合条件 则加载这些文件 new File getClass getResource images sprites getPath listFiles 返回空指针
  • 使用 PDFBox 在 Android 中创建 PDF

    我正在尝试通过我的 Android 应用程序创建 PDFPDFBoxapi 但出现以下错误 java lang NoClassDefFoundError org apache pdfbox pdmodel PDDocument 我已经将以下
  • django admin 中内联模型的分页器

    我有这个简单的 django 模型 由一个传感器和特定传感器的值组成 每个日射强度计的值数量很多 gt 30k 是否可以以某种方式分页PyranometerValues在特定日期或一般情况下将分页器应用于管理内联视图 class Pyran

随机推荐