Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

What high-level game engine would you recommend to develop a 2D game prototype on windows? (or mac/linux if you wish)

The kind of things I mean by "high-level" includes (but is definitely not limited to):

  • not having to manage low-level stuff like screen buffers, graphics contexts
  • having an API to draw geometric shapes
  • well, I was going to omit it but I guess being based on an actual "high-level" language is a plus (automatic resource management and the existence a reasonable set of data structures in the standard library come to mind).

It seems to me that Flash is the proverbial elephant in the room for this query but I'd very much like to see different answers based on all kinds of languages or SDKs.

share|improve this question

closed as not constructive by Tetrad Jan 23 '12 at 23:59

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

26 Answers 26

up vote 31 down vote accepted

I've used pygame extensively, and it has lots of positives:

  • it's a library for Python, which is a high-level language
  • it's got good clear documentation
  • it's got an active community

Pygame is a wrapper around SDL, a cross-platform 2D graphics library. Pygame also has wrappers for sound, music etc. Note that despite Python being a high-level programming language, pygame is (for the most part) a fairly low-level graphics library.

share|improve this answer
2  
You might want to mention that although it's in a high-level language, as a game framework it's still fairly low-level. –  Henk Jul 22 '10 at 0:46
    
Thanks, I've added a mention of that. –  talljosh Aug 2 '10 at 22:58
3  
Yeah, you can easily spend a a few weeks slowly building up a game engine in PyGame without much actual game to show for it. It's a great library, but in my experience you'll have to build up some framework code over time before it'll work for rapid prototyping of more involved ideas. –  James Aug 4 '10 at 5:01

The Slick Framework written in Java is a good choice. It's what I first used to learn to program. The benefits are it runs cross platform, can produce applets for the web, and has fantastic tool/library support through Eclipse or whatever else the Java environment has. That said I eventually switched to Flash simply because if you want to distribute your games there's nothing easier or more effective.

share|improve this answer

I've been on a similar quest and ran across a few other tools not mentioned here:

  • Stencylworks is a IDE / dev environment for building Flash games very quickly and easily, visual interface for existing modules. it seems to be 100% free, not open source, and key advantages include slick, codeless coding (it's not like Gamemaker's schitzoid script/visual interface). I do worry about the limits of the visual interface - unclear how properly object-oriented it really is; it certainly has simple stuff; presumably javascript script editor's in there somewhere, but haven't seen it yet. It seems to be meant for collaborative development at its core (chat builtin to IDE; all resources and behaviors hosted on a server, user-contributed). That could be GREAT for prototype development. I haven't doen much with it yet but the tutorial was dead simple, and there's no sign of any timeline (which is why normal Flash is so bad for games - timeline metaphor is sooo wrong for games)

I've tried a few other weirder ones too.

Alice is a 3D game / dev environment which is open source - looks kind of clunky.

Kodu, going beyond Gamemaker on the easy/limited spectrum, aimed at kids, lets you build games with an Xbox controller. free from Microsoft Research

Scratch, from MIT Labs, is free and really basic 2D, aimed at getting kids into coding. Visually clunky. Flexible though.

Going waaaay back to Papert's LOGO, Microworlds JR lets you write in logo, allegedly. Needs an update to be useful, IMO.

For me, so far, it's coming down to Construct 2 vs Stencylworks...though I'll check out how easy it is to build a decent 2D game in Unity, as I know and like Unity.

share|improve this answer

PixieEngine is a web based IDE and game development environment. It uses CoffeeScript for scripting and provides a built in editors for pixel art and sound effects.

PixieEngine IDE

share|improve this answer

There is always GLBasic.

It's a fairly high level language and has recently been expanding its mobile support.

  • It's both 2D and 3D
  • Free for non commercial
  • Basic sprite commands, with pixel or block collision
  • Write once and deploy to many devices and platforms (mostly)
  • Has Box2D support via wrapper (search forums)
  • Custom data TYPES with functions (close to a class but missing much OOP functionality)
  • Can get a sprite moving on the screen in a short time with few lines of code
share|improve this answer

With PreviewLabs, a company specialized in rapid prototyping, we're often using Unity3D to prototype 2D Games.

Although it's a 3D engine, there are several ways to use it for 2D prototyping. These are the main advantages:

  • It's free to use for the PC and Mac platforms
  • The paid versions also work for iOS and Android, allowing you to see how your concept would work on a different platform.
  • It comes with a physics engine, which you can also use when prototyping 2D games.

I'm writing a series of blog posts on how Unity3D can be used for 2D game prototyping; this is the first one: Prototyping 2D Games in Unity3D

share|improve this answer

FlatredBall It's free (not open source) 2.5D (2d with 3d primitives) game engine for XNA and Silverlight. More in features.

share|improve this answer

HGE Seems Great.It have Particle Editor,GUI Editor,And used by pro programmers.

share|improve this answer

Your question is about what it takes to write a 2D game prototype, but I think there's something else to consider: the biggest advantage of Flash is what it takes to share that prototype with others. Almost everyone already has Flash installed. I can upload a SWF and pass the URL to someone over chat or email. No download, no install, no unzip, no exe, no cross platform issue. I ended up picking Flash because it was so easy to share and get feedback. Iteration involves uploading again and telling them to reload, and I wanted quick iteration for prototyping. (Javascript + Canvas/SVG is another useful option, and I'm sure we'll soon see libraries like Flixel/Flashpunk for JS).

share|improve this answer

Torque-2d by GarageGames is a great game engine with a great community, some really impressive add-ons, and built-in support for Windows, Mac, and Wii, and even the iOS (on separate license). It costs $99.

Unity3d (you can develop 2d games on it) is another very good high quality game engine with a relatively low barrier to entry. Again, great community, and really cool multi-platform support, including iOS and Android, in addition to Win/Mac, Wii, Xbox, Playstation, and the web.

A great iPhone centric game engine is cocos2d for iOS.

share|improve this answer

I'd recommend Scirra Construct for beginners and quick prototyping.

The game engine itself is abstracted, so you can focus on your game entirely. Plugins enable additional functionality, the "code" is made of draggable event, condition and action blocks etc.

Construct is under active development and has an active community as well.

share|improve this answer

I started using FlashPunk for my first game development project, and so far it has been really slick. It is a Flash library built for game design. It is a bare-bones game engine similar to Flixel, but is more like GameMaker, being more user-friendly to beginners than Flixel. FlashPunk along with the Ogmo Editor make it very efficient to get right to level design without having to spend a lot of time on coding. More info about all three of these can be found at the Flash Game Dojo.

share|improve this answer

The Scrolling Game Development Kit version 2 is the second major iteration (rewrite) of a game development IDE and framework for exactly this kind of prototyping and simple 2-D game development. As the second iteration, it takes advantage of modern languages (C#) and technologies (reflection on custom code) as well as working out some of the fundamental flaws in the design (now it allows you to place sprites directly in the map editor rather than only a path which must be externally connected to a sprite, and it doesn't try to be quite such a Wysywig editor because there are some things you want to happen at run time only and others you want at design time only).

Some of the features of interest:

  1. The vast majority of the framework code is exposed and editable within the IDE. If you don't like the way the "PushTowardSprite" built-in function behaves, you can bring up the editor and change it, or add your own that will appear in the list right along with all the built-in commands.
  2. You mentioned the ability to draw polygons. This framework is based on OpenTK, which is a .NET wrapper around OpenGL. So you have all the power of OpenGL at your fingertips. There's a single class "Display.cs" in the framework code that you can edit within the IDE do add whatever drawing features you want.
  3. Much of the framework is targeted as side-scroller physics (walking on slopes, riding platforms, etc), so a lot of that code is already done for you; of course you can customize or ignore it for other 2-D game types. A Tetris game has been written with it.
  4. Parallax scrolling
  5. Alpha translucency can be embedded in the graphics or applied to the drawing of any graphic.
  6. All project data is saved in a single XML file (a .NET dataset). External editors can access the file thereby extending the features available in the IDE if necessary.
  7. Projects are compiled first to C# projects (compatible with Visual Studio) and then to EXE files (with all the resources embedded). If necessary, you can load the project into Visual Studio for enhanced debugging or code development interface.
share|improve this answer

cocos2d which uses pyglet. I use these two Python libraries extensively for prototyping.

Much easier to work with than pygame.

I'm surprised it hasn't been mentioned yet!

share|improve this answer

Well, if it's for prototyping you don't really need a slick back-end with resource management and stuff like that. As long as you can load graphics and display them you're mostly set. I'm going against the grain and propose 'write your own'. You will lose zero time figuring out how to use someone's api. If write-your-own is really not an option, DirectX comes with a sample framework that provides most basic services. Not being bound by a framework means not losing any time following its rules, and not being limited by its scope. I've been prototyping as a job, and my fastest results were when I could just bash in code without having to worry about, or being hampered by, a framework. A 2D wrapper really needs no more than loading images and being able to display them at x,y - possibly with scale, rotation and if you want to be trippy, shader. The rest you can code as you need. For a prototype that is - the code won't be nice.

share|improve this answer

Adam Atomic's Flixel is also worth mentioning. A simple, modern, bare-bones game engine written in Flash. You can learn it in minutes, not days. And using Flash (or Processing/Java) keeps you from one of the most dangerous pitfalls of prototyping: You can't use the prototype's code on any serious platform. It's the game you want to prototype, not the code.

share|improve this answer
1  
+1 For Flixel. Great engine. We used it at the Global Game Jam (and won :). Can't get semi-polished prototypes out much faster than 48 hours! –  michael.bartnett Dec 7 '10 at 8:48
    
Really really great. I had a play this morning and it's taught me actionscript from scratch. –  mcintyre321 May 30 '11 at 19:16
    
@michael.bartnett, can you link to your winning game? Just curious :) –  James McMahon Feb 28 '13 at 1:46
    
@JamesMcMahon I appreciate your curiosity :) Could you ping me on chat about it? Also, wanna mention for future comment readers that I'd favor Flashpunk over Flixel nowadays between the two of them. –  michael.bartnett Feb 28 '13 at 2:55

Game Maker is very cool, it basically does everything you've described. It has drag and drop icons for beginners and code for advanced users. However, after having used C++ exclusively for over a year, going back to Game Maker was... painful.

Downsides:

  • No user defined data structures (nothing like C structs or C++ classes, just "objects")
  • Dynamically typed (type "varAwesome = 0" and oh my god it just appeared)
  • YoYo Games is evil

Upsides:

  • Easy to use, hard to master
  • Does a lot of low level stuff for you
  • Vibrant and active community

I started making games using Game Maker in 2002. :)

share|improve this answer
6  
lol at dynamically typed - downside... –  RCIX Jul 26 '10 at 10:18
    
Yeah, that and the weak typing. I got some really strange bugs before realizing that the modulus operator was returning answers in floating point. –  James Aug 4 '10 at 5:08
    
No user defined data structures are a pain. If you need to return more than one value from a function you need to create an object for it, but all objects are full game actors with a position, events, etc. You can't pass around arrays (if you don't specify an index, it will assume [0]) –  Bart van Heukelom Aug 4 '10 at 12:38
    
I recommend GameMaker as well if you want to quickly prototype your game design. GameMaker is very powerful and I've seen some amazing things done with it. You could potentially save yourself a lot of time and grief if you prototype your game design in GameMaker first before moving on to develop a game engine in C++ or XNA. –  Neeko Aug 3 '11 at 12:39

I'm a very beginner in game making, and I was impressed to manage to make something out of pygame so quickly and easily. Python + SDL = easiness assured.

share|improve this answer

I've been using DarkBASIC Professional for 2 years and really enjoy it. If you can't afford to buy the full version, you can simple download the free ad supported version. The Game Creators, makers of DBPro, also release a regular newsletter which makes pretty good reading, plus they've got a fairly large active community; all of the above can be found here:

https://www.thegamecreators.com/

Check it out, hopefully you might find something there.

Cheers, BFM

share|improve this answer

I use Novashell.

I used Game Maker as main tool, but I had a issue with YoYo Games (I will not explain here now), then I found Novashell.

Novashell is REALLY a prototyping tool, it was made by the person that also made "LORD" (Legend of Red Dragon) and "Dink Smallwood" so he could make games fast for Ludumdare (a 48h gamejam competition), it has a map editor, supports LUA scripting, is made in C++, has zlib license (meaning that you can do whatever you want with the source, short of claiming that you invented stuff that you did not), and has a physics engine (Box2D), particle system (Linear Particle for ClanLIB), supports MikMod and Fmod, works in Linux, Mac and Windows, is dead easy to use, and you can ask stuff to Seth!

EDIT: Seth is the name of the programmer (that also made LORD)

share|improve this answer
    
thanks! never heard of this one before but the feature list is interesting enough to try it. also open source –  Nek Aug 23 '12 at 7:37
    
Yep! My own version of Novashell is a bit improved in relation to the official version, but it will take a LOOONG time before I can release it :( (it is not even in a computer physically near me) –  speeder Aug 23 '12 at 13:15
    
anyway I don't have time to learn it before the Ludum Dare on this weekend. Hope you'll release it before the next LD. –  Nek Aug 23 '12 at 14:03
    
also this LD's keynote is by Seth himself! –  Nek Aug 23 '12 at 14:04
    
Yep :) Seth is awesome... I am not keeping up with LDs :( So I have no idea even when the next LD will be. –  speeder Aug 23 '12 at 14:41

It's not specifically a game engine, but look into Processing. Some of the good points are:

  • Minimal setup required. You can have something onscreen in 30 seconds.
  • Can dip into Java any time for stuff like collections, but a lot of the drawing, animation and interaction syntax is much less verbose than straight Java.
  • Anything you write will be compatible with Processing.js, so you can work with it anywhere you have a modern browser.
share|improve this answer

I'll second the mention of Game Maker. I would say, if every game engine falls on a continuum from "easy to use/learn but limited in what you can do" to "really powerful, but takes a long time to master"... Game Maker is pretty much the definition of the easy-to-use extreme. As Cyclops says, most basic functionality (sprites, creating game objects, movement, collision detection, scorekeeping, etc.) are drag-and-drop icons. It actually does include a fairly robust scripting language you can use too, once you start getting good... but when you start writing your entire game in their embedded scripting language, maybe it's time to "graduate" to a scripting language like Flash or PyGame.

Still, I've had great success with Game Maker as a beginner, no-programming-needed tool for game design students, and can't recommend it enough.

share|improve this answer

GameMaker looks like a good introductory game-prototyping or building tool. It is based on drag-and-drop "without the need to write a single line of code", so looks to be aimed at beginners. (I've never used it, just happened across it - but their website certainly looks slick. :)

share|improve this answer
    
Two other GameMaker answers after mine - and yet, my answer gets downvoted. Maybe I needed more bullet points? :) So it goes... –  Cyclops Jul 23 '10 at 13:39
    
(The amount of downvoting on this site is depressing.) Anyway, anecdote: at the company I work for, which uses mostly C++ and Lua for handheld platforms, we use GameMaker regularly to do prototypes before jumping in. We also have yearly "game jams" and most of the submissions are based on GameMaker. I still get it confused with Game-Maker ( diygamer.com/2010/04/original-gamemaker ) regularly, though, which was also awesome for such things "back in the day". –  leander Jul 29 '10 at 23:30

Angel (C++) and AngelXNA (C#) are worth looking at.

share|improve this answer
2  
+1 as I did the port for AngelXNA ;) –  Jeff Jul 16 '10 at 13:58

I find XNA to be a very nice language to prototype in. It is easy to throw together quick ideas to see how the game play/mechanics would work, and strong enough to really get the job done. It also has a great community at the forums for help, and several 3rd party tools (physics engines/helper libraries/etc..)

share|improve this answer
    
Since Microsoft XNA is DOA, the next best thing is Monogame (open-source implementation of XNA). –  ashes999 Mar 2 '13 at 20:40
2  
They will still support it, and you can still prototype games with it. They just aren't shipping new features. I wouldn't call it dead, but rather in retirement :) –  Joe Mar 3 '13 at 16:28

If you want to look at other things. You can check out Löve (which uses Lua)

share|improve this answer
2  
Whoa, that looks like a super fun way to learn lua! –  GloryFish Sep 22 '10 at 17:25
8  
Just to note, I wrote the above comment in September 22, 2010. 7 days later I sat down and in one night created my first Löve game having never written any Lua before. Since then I have created several games with Lua and Löve and I am currently porting a Löve game to iOS. It's been a great prototyping language and a great way to learn Lua. –  GloryFish May 12 '11 at 21:42
1  
That's awesome to hear :D –  Ólafur Waage Apr 21 '13 at 0:20

Not the answer you're looking for? Browse other questions tagged or ask your own question.