views:

3698

answers:

28

What platforms and tools should I use for rapid game development and prototyping?

Say that I have an idea for a simple game or a game mechanic that I want to try out, what are the best tools for quickly creating something playable that I can experiment with to try out the idea?

The platform does not necessarily have to be easy to learn, that is not the issue, but once learned it has to be quick to use.

+18  A: 

Have you investigated Microsoft's XNA?

http://msdn.microsoft.com/en-us/xna/default.aspx

http://www.xna.com/

http://creators.xna.com/en-US/

Mitch Wheat
I used XNA in game development competition and it was very easy to use and create a game in short time. +1
lacop
+6  A: 

I'd say something like Flash for a nice mix of quick and codability.

eed3si9n
+18  A: 

Pygame is worth a try, mainly because it is possible to use a high-level programming language like Python to structure the game.

See What do you use for game dev ?

gimel
+4  A: 

http://wiki.blender.org/index.php/Game_Engine

Blender Game Engine is a 3D game development environment with a Python based 'AI' system.

Chris
+5  A: 

HGE (C++, DirectX)

Very simple to use 2D game development library.

lacop
A: 

If you like dynamic languages try out Pygame? Plus i think you can target OpenGL with this one too...depends on what you are looking at. XNA Game Studio is great...or u wana look at some Mac software

Perpetualcoder
+1  A: 

If it's a 2D game, QT's QGraphicsScene is very easy to use.

shoosh
+5  A: 

If platform independence is a consideration, you might want to check out the jMonkeyEngine. It is a scene graph based 3D engine written in Java.

public class HelloWorld extends SimpleGame{
 public static void main(String[] args) {
  HelloWorld app = new HelloWorld(); // Create Object
  // Signal to show properties dialog
  app.setConfigShowMode(ConfigShowMode.AlwaysShow);
  app.start(); // Start the program
 }
 protected void simpleInitGame() {
  // Make a box
  Box b = new Box("Mybox", new Vector3f(0,0,0), new Vector3f(1,1,1));
  rootNode.attachChild(b); // Put it in the scene graph
 }
}

That bit of code is all you need to start displaying 3D primitives on the screen. This example has a lot of basic functionality built in for you, including camera control, WASD movement and comprehensive performance stats. You can of course override all of this and do anything you would like.

Jason Miesionczek
+18  A: 

Flash or Game Maker for 2D games. Unity for 3D games.

NeARAZ
+1  A: 

Try Game Maker 7 http://www.yoyogames.com/gamemaker/

+7  A: 

I suggest you try the following:

Flash is good for fast development of 2d games (along with FlashDevelop 3 IDE for actionscript 3), but it is expensive.

Silverlight 2 is another good alternative and can be free if you use Visual studio express and some free graphics editor like inkscape.

If you want to do some 3d, I would strongly suggest that you take a look in Blitz3D (it uses the old DirectX 7 but you can still do powerfull stuff with it). You can do very fast prototyping with it. You could also try BlitzMax, for a powerfull 2d engine (there are also plugins for 3d engine like irrlicht3d, minib3d).

For a more robust 3d engine, you should try MOGRE (.NET Ogre3d wrapper).

Khalid
+3  A: 

Hello, here goes my 2c:

You should give a look at Allegro, it's fast to learn and a great library for prototyping ideas, even if you choose to use it for the final development it is a great library for games.

I started using it a couple years ago and recently I read a book that brought me a whole new lot of ideas and I started working on it again.

Fernando Barrocal
A: 

I am using Python for protoyping, CGKit is an incredible library, with the help of PyOpenGL it is easy to create a playable demo, and most of the good 3d content creation tools support Python scripting which is essential to get you going.

M. Utku ALTINKAYA
+1  A: 

I happen to like TorqueScript - it has served me well over the years -- and I like Torque Game Builder. For 3D they Have Torque Game Engine and Torque Game Engine Advanced. GarageGames is pretty good stuff. Little learning curve up front, but after that you'll be sailin'

Scott Evernden
+5  A: 

I like index cards and a sharpie.

Jeff
A: 

if your coll with dynamic languages for 2d there's PyGame and for 3d I really like Panda3d both of which are cross platform. If python isn't your thing you can check out XNA or TAO both run on .NET and i think TAO also runs on Mono.

wegrata
+1  A: 

IndieLib is looking pretty slick these days. Lot's of nice tutorials and guides on offer too. It's C++ but there are wrappers out there that allow you to use .NET too.

ninesided
+1  A: 

ApocalyX is worth a try, you use Lua to write code, and although it isn't really that fast or simple or clean or easy to use, it has a crap-ton of features and prototyping in it is pretty fast.

Kronikarz
A: 

I prefer to develop with Unity3D, but nothing beats Flash for prototyping. Flash is a perfect platform for testing and refining game mechanics before implementing them into a production pipeline. The learning curve is also pretty small.

Flash uses Actionscript and Unity Javascript, so because they are both ECMA-scripting languages the transition from prototype to production is smooth.

bowditch
A: 

A lot of the Game Design students at Champlain college use MultiMedia fusion for Rapid prototyping and development.

Its another pretty decent piece on the already great list of answers here. Multimedia Fusion

Bryan Hare
A: 

I use SFML. It's like SDL but OO and more gamedev-oriented. It is free and very easy to use, has a clear documentation and tutorials, is in constant development, cross-platform, and has bindings to C, D, .NET, Python and Ruby. It's written in C++.

I would also suggest an excellent 2d physics engine - Chipmunk Physics. It is very fast, written in C, has bindings to Python(pymunk) and Ruby and probably more languages, and is really really easy to setup. It's easy to quickly put up a small game to test an idea.

So... Python or Ruby with Chipmunk Physics and SFML. There is also Gosu game engine for Ruby, and has some Chipmunk Physics integration, but I actually didn't use this one.

Irwin1138
+3  A: 

Flash is without a doubt the best platform for games prototyping. With flash, you can get a games running in a matter of hours. And the learning curve is not bad at all, compared to low-level languages and frameworks.

Good things about flash IMO are :

  • Graphics and code can be managed within the same app, which is very handy.
  • ActionScript (Flash's dev language) makes it really easy to reuse your code.
  • There are tons of libraries for 2D, 3D, physics and what not, to make your games more polished.
  • Flash games can run on 98% of the computers in the world.
  • The community around Flash (and especially gaming with Flash) is huge and very responsive.
  • The community.
  • Did I mention the community ?

All in all, Flash is IMO the best platform for proofs-of-concept and quick games development. And the community makes it way easier, since most of the things you'll want to do have already been done many times, and are usually discussed on many forums and blogs.

Nicolas
A: 

Flash Allows you to develop games which can run as a desktop application using AIR , or as a thin client which can run inside a browser with flex or AS3 and even in mobile phones with Flash Mobile.

Sumit Ghosh
+1  A: 

http://www.openprocessing.org/

Fantastic resource - we use it to prototype graphical effects and simple game mechanics often.

Hope this helps,

-Tom

tsalter
A: 

You could use Coppercube. You can get a basic game up and running without any code, and then add some specific game logic using the builtin scripting language. It will then compile to either a Flash SWF or a native windows EXE.

You can read some tutorials to get you started with Coppercube here.

Phyxx
A: 

An interesting variation on Flash (2D games only), if your project is UI-heavy (such as wargames, RPG, strategy) is to use the Flex SDK and Flash Builder 4 as well, which also allows you to drag/drop UI components and quickly throw together prototype dialogs or interfaces and such. If you're doing a typical Flash-shooter or casual Flash game I probably wouldn't recommend using Flex in that case.

Crusader
A: 

I would go for www.Unity3D.com as my prefered platform.

Why? Because its a crossplatform framework, so if you pay for it later, you will also be able to publish to eg. iPhone, iPad, Android, Xbox, Playstation and Wii...

Its a bit "hard" to start up, but as I am informed its currently one as the most chosen platforms for iPhone/iPad 3D game development.

You can do 2D stuff too, but the engine is build up upon 3D from start, including psysics, lightning, shadows and you can build FREE games with the FREE license. All the user needs is either to download and install the game (as usual) OR play it inside a browser (which requires the user to download and install a plugin, just as Flash/Java)

The Unity3Dplayer utilizes the platforms 3D acceleration, so some of the demos are quite nice to watch.

Flash on the otherhand is an easier platform for graphicartist (from at starting point), but its not really designed for 3D yet - and today Steve Jobs aka "God of Apple" still thinks that iPhones/iPads should not be able to run Flash applications inside their iOS. (as it probarbly would let way too many free game pass outside the AppleStore which will lead Apple to less revenue on Apps and also not force the developers to learn how to write native Objective-C)

So I will go for Unity3D

BerggreenDK
A: 

I think python is a good place to start, so pygame would be a good thing for simple game development.

Curtis