Agile language for 2d game prototypes?
Occasionally ( read: when my fiancé all开发者_开发百科ows ) I like to prototype different game or game-like ideas I have. Usually I use Java or C# (not xna yet) because they are the languages I have the most practice with. However I would like to learn something more suited to agile development; a language in which it would be easier to knock out quick prototypes.
At my job I have recently been working with looser (weak/dynamically typed) languages, specifically python and groovy, and I think something similar would fit what I am looking for.
So, my question is: What languages (and framework/engine) would be good for rapidly developing prototypes of 2d game concepts?
A few notes:
- I don't need blazing fast bitcrunching performance. In this case I would strongly prefer ease of development over performance.
- I'd like to use a language with a healthy community, which to me means a fair amount of maintained 3rd party, libraries.
- I'd like the language to be cross-platform friendly, I work on a variety of different operating systems and would like something that is portable with minimum effort.
- I can't imagine myself using a language with out decent options for debugging and editor syntax highlighting support.
Note: If you are aware of a Java or C# library/framework that you think streamlines producing game prototypes I open to learning something new for those languages too
Python + pyglet or cocos2d
I used pyglet to prototype an iPhone game that I just recently finished. It was a joy to work with, and definitely rapid.
I have had great early results using Clojure for 2D game development.
Reasons for this are:
- Dynamic language - excellent for interactive prototyping using the REPL, e.g. in the Roguelike I'm developing you can play the game while interactively querying / manipulating the game state
- Extremely productive (once you get the hand of the Lisp syntax) - I probably need to write less lines of Clojure than any other language because of macros, higher order functions, STM etc.
- It has excellent interoperability with Java, so you can directly borrow all the fantastic open source Java libraries. e.g. Swing / Java2D is great for simple 2D games but you could go all the way and use something like jMonkeyEngine if you really wanted to. You can also use all the Java netowrking and IO libraries etc.
- Performance is generally good - although the default is to be dynamic at the expense of absolute speed, you can add primitive/type hints to get very fast performance if you hit a bottleneck.
- Cross platform - runs anywhere you can find a JVM, without the need for a rebuild / recompile. GUI apps work just fine across platforms assuming you stick to pure Java libraies like Swing. You can also create applets or launch via Java webstart if you want to run in a browser.
- Great community - the Clojure community itself is small but supportive, friendly, innovative and growing fast. And it's also part of the huge / broad Java community so you have a massive ecosystem of proven libraries and tools whenever you need them.
Check out PyGame at http://www.pygame.org/news.html
Personally I'm not much of a fan of it. Far too messy, but I've used it in the past for prototypes with great success.
For C# using a quick Windows Form or WPF application in combination with drawing primitives has worked well too.
Microsoft SmallBasic
The development is as simple as it gets, check the posted apps - source codes are attached. Another advantage is that you could reuse your knowledge of .NET.
The biggest issue here is the multiplatformness - its applications run using Silverlight, which is kind of cross-platform (Windows + MacOS X, Moonlight for Linux, but I'm not sure it supports SmallBasic). But AFAIK the development environment is Windows only.
Depending on the kind of game you are looking to prototype AS3/Flex is a valid choice. Flash Develop is a decent open-source IDE, and the SDK itself is open-source.
The language is much looser than Java or C#, so even though it pays for it dearly in cohesion, it's extremely well suited for prototypes/quick and dirty development.
精彩评论