views:

153

answers:

3

I'm thinking of developing a game-like piece of software. It will probably require a bit of OpenGL, MIDI input, and math. I'd like to eventually sell the software, so it needs to be installable on PCs with different OSes. And I don't want to have to spend a lot of time on memory management and other low-level details.

My question is this: what language/framework would you use for such software?

+1  A: 

I think the closest thing to what you're after is Java. It has decent support for OpenGL(JOGL) and a good standard library that works on most systems.

Despite what some people will tell you, Java isn't as fast as C, and this can rear it's head doubly so in a game. It is cross platform though, and you don't have to bother with all that tiresome memory-management.

Colfax
Java aint fast, aint bare to the metal and is not very "scripty" either, unless you combine it with BeanShell, Groovy, Jython or something.
Marcus Lindblom
Darkfall Online (darkfallonline.com) chose to use a graphics engine programmed in C while programming all the game logic etc. in java. Their end result is very smooth, maybe that's a good solution for you.
Tom
+2  A: 

You have got a lot of options my friend, here are just a few which allow you to use a high level language to develop.

Torque 3D http://www.garagegames.com/

I've used this a bit and can tell you its a pretty good solution. You can build you game logic in their TorqueScript. Using it also gets you the option to release on pretty much every major platform including consoles and the browser. The only snag is it does cost money, but is very affordable for indies.

Panda3d http://www.panda3d.org/

This a completely free open source engine. I provides a lot of functionality and also allows you to program your game logic in python. The platforms it supports is Linux/Mac/PC.

Mono http://mono-project.com/Main_Page

I have not played around with this too much, and am not sure how good their 3d is (it isn't known for it anyway). It does allow you to program in a number of high level languages (C# and python to name a few). It also allows you to deploy to a number of platforms including embeded devices and the iphone (MonoTouch).

I would check these out and see if any are a fit for your situation. If none are then there are a large number of other options out there.

resolveaswontfix
A: 

I would use C# for scripting & the Unity 3D Engine. http://unity3d.com/

Unity has a reasonable licensing fee but it's also free to download and get started. Check the details for when a licensing fee is payable.

Anyways, Unity3D takes care of:

  • 3D rendering
  • Memory management
  • Input
  • Audio & Video
  • Networking
  • Asset pipelines
  • Scripting through the Mono CLR (ie, you can use C#)
  • And has a great level/world editor

If you are willing to trade raw speed for ease of use then this is for you. We started a project intending to use Unity. Our project needed greater customization than we could get from the engine. We wanted source code and to run at 60fps so we upgraded. But I would still recommend it as a solid multi-platform multi-OS solution.

Chris Masterton