16

出于对创建 Roguelike RPG(例如 Nethack、Rogue 和 ADOM)的兴趣,哪种编程语言最适合?为什么?

使用您选择的语言,请务必列出使其特别适合的语言的任何库或方面。

4

11 回答 11

15

早在那天我尝试使用QuickBASIC编写 Roguelike 游戏时(那是 1988 年)。不是推荐的方法......

那里仍然有一些开发圈。这是一个关于 Roguelike 开发的常见问题解答,还有一个专门讨论这个问题的博客

于 2009-02-01T08:13:01.910 回答
9

我使用的语言(我也在尝试创建 roguelike)是 Python,因为:

  • 它是高级编程语言,我不需要一直考虑内存分配等问题,而是将注意力放在算法上。
  • 几乎所有东西都有大量有用的库。最近我发现TDL / libtcod对 roguelike 开发很有用。
  • 通过绑定,您可以轻松使用 C/C++ 库,甚至可以在 C/C++ 中编写一些关键函数并使用它们。
  • 这是我见过的最易读的编程语言。
  • 在使用 Python 编程时,我学会了使用内部文档。这是非常有用的事情,几个月后我才阅读我的代码,我仍然知道它在做什么。
于 2009-02-05T11:03:58.503 回答
8

一如既往,这是一个非常个人的选择:-)

我用 Java 编写了我的 Roguelike 游戏(暴君),原因如下:

  • 非常便携(即使有图形)
  • 垃圾收集/内存管理
  • 许多好的免费/开源库可用(有助于算法、数据结构和操作保存游戏文件等)
  • 它是一种静态类型的语言——它具有性能和鲁棒性的好处,我认为值得额外的编码复杂性
  • 我想更广泛地磨练我的 Java 技能,以便在其他项目中使用

编辑:对于那些感兴趣的人来说,它是开源的,所有代码都可以在SourceForge获得

于 2009-11-18T19:14:46.860 回答
6

好吧,我在 C 语言中制作了几个 roguelike,在roguebasin上花费了相当多的时间,这是一个与 roguelike 开发相关的任何东西的好网站。

至于你应该使用什么语言,我真的不认为它有很大的不同。我选择 C ​​是因为它的可移植性,而且很多库都可以很好地使用它。但是面向对象的语言可以清理一些你可能不想跟踪的东西。

对于roguelikes,我认为没有任何语言比其他语言更出色。如果您要使其图形化,您可能更喜欢内置的东西,例如闪光灯/silverlight。但即便如此,也有任何其他语言的库在这方面给它们带来了大致相同的难度。

所以我会说选择一门你知道和喜欢的语言,或者你不知道但想学的语言..

于 2009-02-01T21:33:36.320 回答
4

这些答案中的大多数都很棒,但是对于可以在 C++ 中滥用的面向对象的东西和低级命令的综合力量,还有一些话要说。如果您正在寻找一些灵感,NetHack 的 C 源代码是广泛可用的,并且记录得很好,您当然可以四处寻找以了解一些东西。也就是说,这是一个几十年来一直在增长的巨大项目,并不是所有的东西都像你想要的那样干净,因为你会为自己的项目想要一些东西——不要根据你在 NetHack 中找到的东西来做出糟糕的设计选择.

不过,老实说,就您使用的内容而言,它可能根本不重要——尽管我强烈建议您使用 OO 语言。在 Roguelike 游戏中(真见鬼,真的是任何 CRPG)都有很多垃圾需要处理,以至于 OOP 是保持理智的最简单方法。

于 2010-01-29T18:52:01.110 回答
3

最初的 nethack 是用 C 语言编写的,如果您想了解它的编写方式以及您可能发现的挑战,这可能是开始决定一种语言的好方法,可以使用该源代码。

于 2009-02-01T08:07:40.253 回答
3

我的第一个问题是该游戏是否将具有基于 Web 的 UI 或者是某种控制台/窗口事件,如最初的 Rogue-like 游戏?如果是前者,我会说您喜欢的任何语言都是不错的选择。Ruby on Rails、Python/Django、PHP/CakePHP 等都会很棒。

但如果答案是后者,这是一款你希望人们能够在本地下载和安装的游戏,我将使用 Java。这是一门很棒的语言,无需您处理任何内存管理。由于实时编译和优化,它实现了非常高的性能,它有一个非常丰富的库来帮助你处理数据结构,Swing 制作了一些非常漂亮的 UI,2D 库允许最丰富的跨平台在 PostScript 之外渲染。它还具有跨 Windows、Mac OS X 和 Linux 的可用性,这是您无法从其他一些选择中获得的。

最后,通过 Java Web Start 也可以轻松分发您的应用程序,因此人们在拥有 Java 后只需单击几下即可下载和安装游戏,并将其保留在他们的机器上,只要他们喜欢就可以运行。

于 2009-02-06T19:16:07.607 回答
0

对于制作任何游戏,任何语言都是正确的,如果:

  1. 你可以使用它(你可以使用它,通过知识或者如果它现在对你或你的团队来说很容易学习)
  2. 它生成在您客户的计算机上运行的应用程序
  3. 它可以轻松生成运行速度足以满足您游戏需求的应用程序。

我认为对于 Rogue-Like 来说,只要它在你的目标上运行,你知道的任何语言都是正确的。在这种游戏中,性能并不是真正的问题。如果您的世界生成确实很复杂,那么世界生成可能需要高性能......

于 2010-06-13T00:01:57.307 回答
0

只需使用可以为您处理低级细节的东西。无论您知道什么都应该有效。

嘿,他们可以用javascript写一个。

于 2010-06-13T00:05:48.627 回答
-1

我推荐Actionscript那些游戏。

于 2009-02-01T08:02:28.250 回答
-1

你可以考虑 Silverlight。

它位于 C# 和 .Net 之上,因此无需担心内存管理。使用 SL,您将获得对场景图类型渲染的内置支持 - 剔除不在屏幕上的事物、键盘、鼠标事件、对象点击等。

有一个初步的学习曲线,但我发现这是一个很好的工作环境。

于 2009-02-01T21:17:01.250 回答