views:

1829

answers:

11

With the interest of creating a roguelike RPG (such as Nethack, Rogue, and ADOM), which programming language would be most suitable and why?

With the language that you choose, be sure to list any libraries or facets of the language that make it particularly well-suited.

A: 

I recommend Actionscript for those games.

ecleel
+3  A: 

The original nethack was written in C, and the source is available if you want to get some ideas about how it was written, and the challenges you may find which might be a good way to start deciding on a language.

johnc
+5  A: 

Way back in the day I tried to write Roguelike games using QuickBASIC out of all things (it was 1988.) Not the recommended approach...

There are still some development circles out there. Here's an FAQ on Roguelike Development and also a blog dedicated to the same.

DavGarcia
Love the FAQ, I have long been fascinated by the dungeon creation algorithms
johnc
+1  A: 

You could consider Silverlight.

It sits on top of C# and .Net so theres not much need to worry about memory management. With SL you'll get built in support for scene graph type rendering - culling of things not on screen, Key board, mouse events, clicks on objects etc.

There's an initial learning curve, but I find it's a great environment to work in.

George Sealy
Do you have any links that might have more information??
Brian MacKay
For Silverlight development in general, or Roguelike in particular?
George Sealy
Most of the first links here will give a good idea: http://www.google.com/search?q=making+games+with+silverlightAlso, you have a choice of languages, one of which is Python (via IronPython), giving you a rich graphics platform and a sweet language to write in.
codekaizen
+3  A: 

Well I've made a couple roguelikes in C, spending a fair amount of time at roguebasin, which is a great site for anything related to roguelike development.

As for what language you should use, I don't really see it making a huge difference. I pick C because of the portability, and a lot of libraries work well with it.. But an object oriented language can clean up some things that you may not want to keep track of.

There aren't any languages that I would consider to be specifically greater than the rest for roguelikes. If you're making it graphical, you may prefer something that has that built-in, such as flash / silverlight. But even then there are libraries for any other languages that bring them to about the same degree of difficulty in that regard.

So I'd say take a language you know and like, or that you don't know and want to learn..

Sciolist
+6  A: 

My language of use (I'm trying to create roguelike too) is Python, because:

  • It's high level programming language, I don't need to think about memory allocation all the time, etc, but keep my mind on algorithms.
  • There's tons of useful libraries for almost everything. Recently I've found TDL/libtcod which can be useful for roguelike development.
  • With bindings you can easily use C/C++ libraries or even write few critical functions in C/C++, and use them.
  • It's the most readable programming language I've ever seen.
  • While programming in Python I've learned to use internal documentation. It's very helpful thing, I just read my code few months later and I still know what it's doing.
Zath
+1  A: 

My first question would be whether the game is going to have a web based UI or be some kind of console/window affair like the original Rogue-like games? If the former I would say that any language you're comfortable with would be a good choice. Ruby on Rails, Python/Django, PHP/CakePHP, etc. would all be great.

But if the answer is the latter, this is a game that you want people to be able to download and install locally, I'm going to go with Java. It's a great language with no memory management for you to deal with. It achieves very high performance thanks to just-in-time compilation and optimization, and it has an extremely rich library to help you with data structures, Swing makes for some really beautiful UIs, and the 2D library allows for the most rich cross-platform rendering outside of PostScript. It also has the availability across Windows, Mac OS X, and Linux that you're not going to get from some other choices.

Finally, distribution of your application is easy via Java Web Start as well, so people can download and install the game with just a couple of clicks once they have Java and keep it on their machine to run as long as they like.

John Munsch
+4  A: 

That's a very personal choice as always :-)

I wrote my Roguelike game (Tyrant) in Java for the following reasons:

  • Very portable (even with graphics)
  • Garbage collection / memory management
  • Lots of good free / open source libraries available (helpful for algorithms, data structures and manipulating save game files etc.)
  • It's a statically typed language - this has performance and robustness benefits which I judged to be worth the additional coding complexity
  • I wanted to hone my Java skills more generally for use in other projects

EDIT: For those interested it is open source, all code is available at SourceForge

mikera
+2  A: 

Most of these answers are great, but there's something to be said for the combined power of object-oriented stuff and low-level commands that can be abused in C++. If you're looking for some inspiration, the C sourcecode to NetHack is widely available and documented well enough that you can certainly poke around to learn some things. That said, it's a huge project that's been growing for decades, and not everything is as clean as you're going to want things for your own project - don't get roped into making poor design choices based off of what you find in NetHack.

Honestly, though, in terms of what you use it probably doesn't matter at all - though I'd highly recommend using an OO language. There's so much crap to handle in a roguelike (heck, any CRPG really) that OOP is the easiest way of staying sane.

Ryoshi
A: 

For making any game, any language will be right if :

  1. you can use it (you are able to use it, by knowledge or if it's easy enough to learn right now for you or your team)
  2. it produce applications that runs on your client's computer
  3. it can easily produce applications that runs fast enough for your game's needs.

I think that for a Rogue-Like, any language you know will be right as far as it runs on you target. Performances are not really a problem in this kind of game. World generation can require high performance if your world generation is really complex though...

Klaim
A: 

just go with something that will handle the low-level details for you. whatever you know should work.

hey, they can write one in javascript.

sreservoir