Author Topic: Preferred/ideal development environment/language for roguelikes?  (Read 17087 times)

requerent

  • Rogueliker
  • ***
  • Posts: 355
  • Karma: +0/-0
    • View Profile
I've been meaning to get started on my roguelike project, but the more I prepare to write the first line of code, the more I feel like my traditional Java-based setup may not be ideal for me. I love Java, but I'm going to want an approach more optimized for prototyping that is also less verbose.

I want to have a wide array of deployment options (I would sacrifice this though)-
Compile to mobile device, compile to binary, publish on web, or distribute via source without ridiculous compilation instructions (Obviously, development will have to be considerate of the restrictions for each platform). If I can publish to web the other options aren't really important.

I willingly sacrifice control for productivity-- I don't really want to deal with pointers or memory management. I like code-completion and every form of spoiling that Java developers are used to.

I want concise or ultra-readable syntax. I want to shorten the number of times I have to push buttons.

I need the option to run CPU-intensive simulations.

I want to be able to prototype quickly- either making changes while the program is running or quick compiling. An interpreted language with the capabilities of compiling to native would be cool.

I want my environment to be easy to set up or come mostly already set up. Nothing obscure.

I'd like my deliverable to be lightweight. If it must include a VM it should be tiny.

I don't care about preexisting libraries- basic data structure management is all I really want.


I know QBasic, C/C++, Java, AS3, LISP, and some dumb scripting languages. I firmly believe that a programming language and development environment should do as much work for you as is possible. I want to think less and implement more. I've already done the whole 'compile linux from source' thing and am not in this for my personal education of programming concepts.

I've looked at Scala and I like it, but it's not great for prototyping because of its bad compile times. "Drink the koolaid" cults are also not very desirable.
I've looked at Python, but its obsession with dynamic features makes it a poor choice for CPU-intensive simulation.  This could be done with C/C++ extensions, but I easily get sucked into optimizations and want to avoid thinking too much.
There are some Python derivatives like RPython that looks interesting, but I haven't heard anything about them from another human-being.
Javascript/HTML5 has very good performance now a days, but I don't think it's a great choice if things get complicated.
I'd just use Flash, but the VM, on account of a sub 7-mb distribution size, is total shit.
I'd just use Java, but I don't want to require the JVM.

Anyhow-- what are y'all's experiences?

thanks.
« Last Edit: April 18, 2012, 10:27:58 AM by requerent »

Krice

  • (Banned)
  • Rogueliker
  • ***
  • Posts: 2316
  • Karma: +0/-2
    • View Profile
    • Email
Re: Preferred/ideal development environment/language for roguelikes?
« Reply #1 on: April 18, 2012, 12:10:55 PM »
No such thing exists. There are good and bad features in all languages. You want everything, but it's rarely possible.

Niautanor

  • Newcomer
  • Posts: 2
  • Karma: +0/-0
    • View Profile
    • Email
Re: Preferred/ideal development environment/language for roguelikes?
« Reply #2 on: April 18, 2012, 02:14:42 PM »
In my Opinion the best Language for your first(I think?) roguelike would just be the one you are most comfortable with.

I mean there is no such thing like a perfect language and you could either spend thousands of hours thinking about it or you could just start writing some code and see how it goes  ;) (At least that is what I did).

XLambda

  • Rogueliker
  • ***
  • Posts: 208
  • Karma: +0/-0
    • MSN Messenger - tau_iota@live.de
    • View Profile
    • The Weird Rogue
Re: Preferred/ideal development environment/language for roguelikes?
« Reply #3 on: April 18, 2012, 02:29:57 PM »
Honestly, I think Java is the best choice for you.

Many mobile devices support java - IIRC even Apple supports java apps. There are several tools which allow you to compile java code to executables. The source can be distributed nicely as well. Java WebStart allows for launching things from the Internet. You might dislike the JVM, but it's installed on pretty much every single PC out there, is available for all the major OS' and has been considerably optimized in the last years, both on the compiling and running front.

You might not be 100% satisfied with Java, but here's something you should know: It is an absolute pain to write a program in a language you aren't 100% familiar with. This applies even more for a roguelike. If Java is the language you know then go for it!

Pueo

  • Rogueliker
  • ***
  • Posts: 263
  • Karma: +0/-0
    • View Profile
    • Email
Re: Preferred/ideal development environment/language for roguelikes?
« Reply #4 on: April 18, 2012, 02:46:18 PM »
IIRC even Apple supports java apps.
I'm not too sure about that.  As far as I know, iPods/iPads only do C/Obj-C.  Unless you mean Mac OS X, in which case, yes.
{O.o}
 |)__)
   ” ”   o RLY?

konijn_

  • Newcomer
  • Posts: 29
  • Karma: +0/-0
    • View Profile
    • Email
Re: Preferred/ideal development environment/language for roguelikes?
« Reply #5 on: April 18, 2012, 02:50:03 PM »
Personally I would only go either haxe or JavaScript.

I haven't met a scenario yet where I had to abandon JavaScript because it got too complex.

T.


XLambda

  • Rogueliker
  • ***
  • Posts: 208
  • Karma: +0/-0
    • MSN Messenger - tau_iota@live.de
    • View Profile
    • The Weird Rogue
Re: Preferred/ideal development environment/language for roguelikes?
« Reply #6 on: April 18, 2012, 02:58:31 PM »
IIRC even Apple supports java apps.
I'm not too sure about that.  As far as I know, iPods/iPads only do C/Obj-C.  Unless you mean Mac OS X, in which case, yes.
Ah. My memory must have been incorrect, then. I have to admit, I am not an iOS user, so I have no experience with that.

Pueo

  • Rogueliker
  • ***
  • Posts: 263
  • Karma: +0/-0
    • View Profile
    • Email
Re: Preferred/ideal development environment/language for roguelikes?
« Reply #7 on: April 18, 2012, 04:48:43 PM »
I want to have a wide array of deployment options (I would sacrifice this though)-
Compile to mobile device, compile to binary, publish on web, or distribute via source without ridiculous compilation instructions (Obviously, development will have to be considerate of the restrictions for each platform). If I can publish to web the other options aren't really important.
I'm going to be biased and say C.  You can compile it to binaries for any platform, distribute it via source, make a few changes and port it to iOS, use http://nestedvm.ibex.org/ and port it to Android or publish it as a web app.

Although there are pointers and memory management, to me it's much more concise than some other languages.
{O.o}
 |)__)
   ” ”   o RLY?

requerent

  • Rogueliker
  • ***
  • Posts: 355
  • Karma: +0/-0
    • View Profile
Re: Preferred/ideal development environment/language for roguelikes?
« Reply #8 on: April 18, 2012, 08:38:04 PM »
No such thing exists. There are good and bad features in all languages. You want everything, but it's rarely possible.

Gee, Thanks.

Quote
In my Opinion the best Language for your first(I think?) roguelike would just be the one you are most comfortable with.

I don't have comfort issues. I just want the better tool for the job.

Quote
You might not be 100% satisfied with Java, but here's something you should know: It is an absolute pain to write a program in a language you aren't 100% familiar with. This applies even more for a roguelike. If Java is the language you know then go for it!

I disagree. I had to develop a web-published game a while ago- I wanted to do it as a Java applet or webStart so that I could take advantage of a wide variety of libraries I was familiar with and runtime performance increases. My boss refused and insisted on flash, which I had no prior experience with. I think it took about week to learn and another week to master- all in all the development time was very reasonable despite having to learn something completely new. If I'm going to embark on a serious project or series of projects that are similar, I want a toolbox that is specialized for that particular task. I already know how to program games.

Quote
I haven't met a scenario yet where I had to abandon JavaScript because it got too complex.

Very interesting! I would never be waste my time doing anything remotely Dwarf Fortress-like, but I would like to be able to manage a lot of off-screen updates. How would pure JavaScript perform in that regard?

Otherwise HaXe looks sexy. I considered using it for flash development once a long time ago, it has matured a LOT since then.


Quote
IIRC even Apple supports java apps.

Moot- I could care less about apple.


Thanks guys- more advice is always welcome.

george

  • Rogueliker
  • ***
  • Posts: 201
  • Karma: +1/-1
    • View Profile
    • Email
Re: Preferred/ideal development environment/language for roguelikes?
« Reply #9 on: April 21, 2012, 03:31:39 PM »
I would recommend Clojure and ClojureScript, but I'm not sure the tooling is where you'd want it to be based on your post. Maybe worth taking a look though.

guest509

  • Guest
Re: Preferred/ideal development environment/language for roguelikes?
« Reply #10 on: April 22, 2012, 05:48:29 AM »
  Oh no not this again!   ;)

  Krice is right. He may also be correct.


Tapio

  • Newcomer
  • Posts: 46
  • Karma: +2/-1
    • View Profile
    • Email
Re: Preferred/ideal development environment/language for roguelikes?
« Reply #11 on: April 23, 2012, 06:14:30 AM »
Very interesting! I would never be waste my time doing anything remotely Dwarf Fortress-like, but I would like to be able to manage a lot of off-screen updates. How would pure JavaScript perform in that regard?
Just a couple of standards to accelerate JS:
JavaScript has WebWorkers for multithreading. They don't have DOM access (and are also otherwise limited), but you mentioning off-screen sounds like they could suit you. There's also WebCL for accelerated GPU (and multicore) computation, but that's not ready yet and it's not pure JS anymore. Then there is WebGL - while graphics oriented, some generic computation could be hacked there too and if your graphics are drawn through WebGL, that should leave a lot of CPU resources for other uses. But again not pure JS anymore (need to do a little GLSL) and only about 50% desktop penetration.

requerent

  • Rogueliker
  • ***
  • Posts: 355
  • Karma: +0/-0
    • View Profile
Re: Preferred/ideal development environment/language for roguelikes?
« Reply #12 on: April 23, 2012, 09:18:34 AM »
HaXe has completely won me over. It can target HTML5/JS, Flash, and Native without any changes to code (using the NME library). The language/syntax is very Flash-like, but the actual HaXe language features are superb for my needs/paradigm.

@aave,
I'll just DIE without pixel shaders! I'm not opposed to WebGL or OpenGL, but I'd rather not use up development time on non-gameplay oriented components.

purestrain

  • Rogueliker
  • ***
  • Posts: 172
  • Karma: +0/-0
    • View Profile
Re: Preferred/ideal development environment/language for roguelikes?
« Reply #13 on: April 23, 2012, 09:20:19 AM »
I willingly sacrifice control for productivity-- I don't really want to deal with pointers or memory management. I like code-completion and every form of spoiling that Java developers are used to.

Some time ago i really liked messing around with lots of languages like Vala, D, OCaml and so on. But now i'm feeling really tired und lazy, so i keep working with java. Every now and then i'm thinking about using c++ again, but i don't want to work with header files and pimpl-idioms... don't want to talk about compile times in c# / c++ / c ... background compilation ftw. I wanted to try haxe - but where are my refactorings?

Maybe you should just stick with java as i do if you're as lazy as me :-)

Edit:
Since you want to try haxe maybe you can tell me if the tool/ide support is getting better.
« Last Edit: April 23, 2012, 09:22:21 AM by purestrain »

requerent

  • Rogueliker
  • ***
  • Posts: 355
  • Karma: +0/-0
    • View Profile
Re: Preferred/ideal development environment/language for roguelikes?
« Reply #14 on: April 23, 2012, 10:25:45 AM »
I willingly sacrifice control for productivity-- I don't really want to deal with pointers or memory management. I like code-completion and every form of spoiling that Java developers are used to.

Some time ago i really liked messing around with lots of languages like Vala, D, OCaml and so on. But now i'm feeling really tired und lazy, so i keep working with java. Every now and then i'm thinking about using c++ again, but i don't want to work with header files and pimpl-idioms... don't want to talk about compile times in c# / c++ / c ... background compilation ftw. I wanted to try haxe - but where are my refactorings?

Maybe you should just stick with java as i do if you're as lazy as me :-)

Edit:
Since you want to try haxe maybe you can tell me if the tool/ide support is getting better.

I've been having some trouble building the NekoVM (which is used to compile HaXe) on my all-from-source linux boot. FlashDevelop, however, has a plugin that enables refactoring. The newest version comes preloaded with HaXe, but for a number of reasons you should point it to your own installation. NME is one of the project types- it's a set of libraries designed to abstract the functionality of Flash to other targets- allowing you to compile to JS, SWF, or a native binary (not a crappy wrapped SWF). I have fooled around with it in FlashDevelop, but I really want to set up my development environment in a new linux boot. There is also an Eclipse plugin for HaXe, but I haven't tried it yet.

HaXe is very mature and feature-complete for the existing targets (a java bytecode target is on their development stack), but there isn't a HaXe-oriented IDE that gives you happiness out of a box yet. I would highly recommend checking out http://www.haxenme.org/ and http://haxe.org/. It seems too good to be true! There's also a list of ides on their sites that outline exactly how much support there is for each one.