Language Advice for a Newbie with Experience in Higher-Level Languages

Hi! I'm thinking about getting into game development, but I worry that my preferences in languages & development may be a bit of a barrier. I'm currently a Web Developer working in Java, but I've also been doing other web-based work in Ruby, and am liking that better (as I find Java a rather heavy language). I like developing in environments where I can avoid:

Objective-C would be lumped in with C and C++ in your view of the world.

It is entirely possible to write decent games with Python and Ruby. You might not be making a Quake or DOOM 3 with them but current computer speeds and the like you could easily develop a good enough sim or side scroller without too much problem.

Qt is a User Interface (plus data types and other stuff) library. Not exactly geared to game development but more for application development. Not to say that it can't be used in game development but knowing it's main focus may be beneficial.

SDL may be a library that you might consider seeing that there are bolt ons for Python to use SDL. (I think Ruby has a bolt on as well but my knowledge of Ruby stuff is limited.)

Java also has some game library add ons that might be of consideration. Seeing that you already know it, it might make you more productive in the short term.

Your 'twitchy' preferences will affect what games you'll be considering but there is quite a large subset of games that are still quite possible with the languages you are considering.

If you are familiar with high level languages then look at Dreamcard or Revolution, its very very easy to learn,
and there is a recent game specific library for getting colission and path movements.
The demo is free for 30 days or something like that, wouldn't hurt to try.

Zekaric Wrote:SDL may be a library that you might consider seeing that there are bolt ons for Python to use SDL. (I think Ruby has a bolt on as well but my knowledge of Ruby stuff is limited.)

With Python you can use pygame, which is essentially SDL. I would strongly recommend then using the OpenGL bindings for Python though (or some python libraries derived from OpenGL) in addition to PyGame since otherwise your drawing will be unnecessarily slow and you miss out on the automatic scaling, rotating, etc sort of things you can do in OpenGL. Unfortunately OpenGL is somewhat low-level, though it's not that hard to use.

Apparently BlitzMax (which has a pretty high-level basic-like language) has been catching on like wildfire if you have a few bucks to spend, and it's undoubtedly less of a hassle to set up (that is, install, have an install work for your end-users) than Python (and probably Ruby, though I haven't set it up myself.)

There are pretty good game libraries for both Python and Ruby. For Ruby you'll just have to look harder.

I'm a bit of a Ruby fan myself so I'll address that part of the world.

There is a Ruby/SDL binding, but it has problems on OSX. For one it uses lots of libraries that I didn't have installed. (That also means that you'll have to change the build script if you want it to work with frameworks) There's also a GL/Ruby binding, but the the GLUT portion tries to link with X11/GL.

From what I have seen, all of the python/ruby extensions that I've seen are a little involved to install on OSX.

Better options?
1) EDIT: See OSC's post above.
2) I'm working on a Ruby game environment myself. If you are interested, I could send you a current build. It uses OSC's OpenGL and OpenAL code, but uses SDL for input and windowing. It also has classes for sprites, physics, and texture loading, sound and music. There are currently OSX and linux builds. (Windows too if someone can compile it for us)

No offense to anyone, but Java is not a bit more high-level than C++, except for the nicer framework. If you can work with the difficulties of Java, you can work with the difficulties of C++, too. And ObjC will be bliss, so will be Ruby/Python.

This has all been some fantastic feedback. Thank you! Something to clarify:

By "high level" language I just meant higher levels of abstraction and a preference for dynamic typing. I found some nice introdocs on Objective-C and it does seem like something worth trying out on its own rights (not necessarily, but possibly, for game dev).

Zekaric Wrote:Your 'twitchy' preferences will affect what games you'll be considering but there is quite a large subset of games that are still quite possible with the languages you are considering.

I should also mention that the kind game I'd most likely experiment with would be strategy, especially of the turn-based type. To some extent, hereing the Qt is better for applications is almost a commendation! (If you've ever played the WIndows game Stars!, you'll know what I mean.)

I'm playing with some of OSC's stuff right now, and am going to take small steps from there.