2009-02-01 127 views

回答

-1

我为这些游戏推荐Actionscript

3

原始的nethack是用C语言编写的,如果您想了解一下它是如何编写的,以及您可能会发现的挑战,这可能是开始选择语言的好方法,您可以使用source is available

-1

你可以考虑Silverlight。

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

有初始学习曲线,但我觉得它是一个很好的环境工作英寸

+0

你有没有可能有更多信息的链接? – 2009-11-23 21:08:34

6

嗯,我已经在C做了一对夫妇roguelikes,花费相当长的时间在roguebasin,这是一个伟大的网站与任何有关roguelike发展的任何事情。

至于您应该使用哪种语言,我并不认为它会产生巨大的差异。我选择C是因为可移植性,许多库可以很好地工作。但面向对象的语言可以清理一些你可能不想跟踪的东西。

我认为没有任何语言比roguelikes的其他语言更具体。如果你使它成为图形化的,你可能更喜欢那些内置的东西,比如flash/silverlight。但即便如此,还有其他语言的图书馆在这方面给他们带来了相同程度的困难。

所以我说把你懂得的语言和喜欢,或者说你不知道,想了解..

9

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

  • 它是高层次的编程语言,我不需要一直考虑内存分配等问题,而是紧记算法。
  • 几乎所有的东西都有很多有用的库。最近我发现了TDL/libtcod它可以用于roguelike发展。
  • 使用绑定,您可以轻松使用C/C++库,甚至可以在C/C++中编写几个关键函数并使用它们。
  • 这是我见过的最具可读性的编程语言。
  • 在Python中编程时,我学会了使用内部文档。这非常有帮助,几个月后我刚刚阅读了我的代码,我仍然知道它在做什么。
3

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

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

最后,您的应用程序的发布也很容易通过Java Web Start进行,所以人们只要点击几下鼠标就可以下载并安装游戏,只要他们拥有Java并将它保持在机器上运行,只要他们喜欢。

8

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

我写我Roguelike游戏(暴君)在Java中,原因如下:

  • 非常便携(甚至图形)
  • 垃圾收集/内存管理
  • 许多优秀的免费/开源库可用(有助于算法,数据结构和操作保存游戏文件等)
  • 这是一个静态类型语言 - 这有我判断是值得的额外的编码复杂度
  • 我想更广泛地磨练我的Java技术用于其它项目

编辑性能和稳定性的好处:对于那些有兴趣的是它是开源的,所有的代码都可以在SourceForge

4

这些答案大部分都很好,但是对于面向对象的东西和可以在C++中滥用的低级命令的综合功能有些东西要说。如果你正在寻找一些灵感,NetHack的C源代码已经被广泛使用并且记录得很好,你可以肯定地学习一些东西。也就是说,这是一个数十年来一直在增长的巨大项目,并不是每件事都像你想为自己的项目想要的那样干净 - 不要因为你在NetHack中发现的东西而陷入糟糕的设计选择。

虽然诚实地说,根据您使用的内容,它可能根本无关紧要 - 尽管我强烈建议使用OO语言。有很多垃圾可以在roguelike中处理(真的,任何CRPG),OOP是保持理智的最简单方法。

0

作出任何游戏,任何语言将是正确的,如果:

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

我认为对于类似盗贼的人来说,任何你知道的语言都会是正确的,只要它运行在你的目标上。在这种游戏中,表演并不是真正的问题。如果你的世代真的很复杂,世界一代可能需要高性能...

0

只是去处理一些将处理你的低级细节。无论你知道应该工作。

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