什么编程语言最适合创建roguelike游戏?

时间:2009-02-01 07:51:28

标签: roguelike

有兴趣创建一个roguelike RPG(如Nethack,Rogue和ADOM),哪种编程语言最合适?为什么?

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

11 个答案:

答案 0 :(得分:14)

回到那天我试图用QuickBASIC编写Roguelike游戏中的所有东西(它是1988年)。不是推荐的方法......

还有一些发展圈子。这是FAQ on Roguelike Developmentblog dedicated to the same

答案 1 :(得分:9)

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

  • 这是高级编程语言,我不需要一直考虑内存分配等,但请继续关注算法。
  • 几乎所有东西都有大量有用的库。最近我发现了TDL / libtcod这对roguelike开发非常有用。
  • 使用绑定,您可以轻松使用C / C ++库,甚至可以在C / C ++中编写一些关键函数,并使用它们。
  • 这是我见过的最易读的编程语言。
  • 在使用Python编程时,我学会了使用内部文档。这是非常有用的,我几个月后才阅读我的代码,我仍然知道它在做什么。

答案 2 :(得分:8)

这是一个非常个人化的选择: - )

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

  • 非常便携(即使有图形)
  • 垃圾收集/内存管理
  • 提供了许多优秀的免费/开源库(有助于算法,数据结构和操作保存游戏文件等)。
  • 这是一种静态类型语言 - 这具有性能和稳健性优势,我认为这是值得的额外编码复杂性
  • 我想更普遍地磨练我的Java技能,以便在其他项目中使用

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

获得

答案 3 :(得分:6)

我在C中做了几个roguelike,花了相当多的时间在roguebasin,这是一个与roguelike开发相关的好地方。

至于你应该使用什么语言,我真的没有看到它产生巨大的差异。我之所以选择C是因为它具有可移植性,并且很多库都适用于它。但是面向对象的语言可以清理一些你可能不想跟踪的东西。

对于roguelikes,没有任何语言可以考虑特别大于其他语言。如果你正在制作图形,你可能更喜欢内置的东西,比如flash / silverlight。但即便如此,还有其他任何语言的图书馆在这方面带来了同样的难度。

所以我会说你喜欢的语言,或者你不知道并想学习的语言......

答案 4 :(得分:4)

这些答案中的大多数都很棒,但是对于面向对象的东西和可以在C ++中滥用的低级命令的综合能力,有一些东西可以说。如果你正在寻找一些灵感,那么NetHack的C源代码可以广泛使用并且记录得很好,你当然可以学习一些东西。也就是说,这是一个已经发展了数十年的巨大项目,并不是一切都像你想要为你自己的项目想要的东西一样干净 - 不要根据你在NetHack中发现的东西做出糟糕的设计选择

老实说,就你使用的东西而言,它可能根本不重要 - 尽管我强烈建议使用OO语言。在roguelike(哎呀,任何真正的CRPG)中都有很多垃圾来处理OOP是保持理智的最简单方法。

答案 5 :(得分:3)

原始的nethack是用C编写的,而source is available如果你想得到一些关于它是如何编写的想法,以及你可能会发现哪些挑战可能是开始决定一种语言的好方法。

答案 6 :(得分:3)

我的第一个问题是游戏是否会拥有基于网络的用户界面,或者是某种类似原始盗贼游戏的控制台/窗口事件?如果前者我会说任何你熟悉的语言都是一个不错的选择。 Ruby on Rails,Python / Django,PHP / CakePHP等都很棒。

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

最后,通过Java Web Start也可以轻松分发您的应用程序,这样人们只需点击几下就可以下载并安装游戏,只要他们愿意就可以将其保存在他们的机器上。

答案 7 :(得分:0)

制作任何游戏时,如果出现以下任何语言都是正确的:

  1. 你可以使用它(你可以使用它,通过知识或者现在很容易为你或你的团队学习)
  2. 它生成在客户端计算机上运行的应用程序
  3. 它可以轻松生成足以满足游戏需求的应用程序。
  4. 我认为,对于Rogue-Like,任何你知道的语言都是正确的,只要它在你的目标上运行。在这种游戏中,表演并不是真正的问题。如果你的世界一代真的很复杂,世界一代可能需要高性能......

答案 8 :(得分:0)

只需使用可以处理低级细节的内容。无论你知道什么都应该工作。

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

答案 9 :(得分:-1)

我推荐这些游戏Actionscript

答案 10 :(得分:-1)

您可以考虑使用Silverlight。

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

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