Recommended 2d Engines?

Started by
9 comments, last by ambershee 10 years, 2 months ago

Hi guys,

I'm considering dabbling with 2d, and am looking for some advice about tools / engines to adopt (failing to find one I like, I'll work with planes in a 3d engine I'm already familiar with, but hopefully this won't be necessary!). I had a quick gander at the topics here, but didn't see one that quite answered my needs!

I'm looking for something that provides the following:

1) A strong graphics API / renderer that supports sprite animation, sprite batching, shaders, lighting / shadowing and particles out of the box.

2) Collision and event handling. Rigid body physics etc not required, though some physics might be a nice bonus for visual purposes.

3) Rapid development tools - a strong editor and either a decent and simple C-like scripting language, or even better, a visual tool similar to UDK's Kismet or UE4's Blueprint system.

4) Easy multi-platform deployment is a bonus.

Thanks for your time!

Advertisement

Most of these requirements can be found in GameMaker or or Construct 2. Some people recommend Unity for this, but even with the new 2d additions to it, it isn't as good for 2d as the others yet(though for 3d it is top notch).

1. GameMaker Studio supports everything you mention out of the box except for lighting/shadowing. There are several tutorials and extensions to get this up and running quickly, or with the "surfaces" GameMaker provides you can easily code your own as well. The sprite system is pretty good, and for batching it has a texture page system that is basically a texture "atlas" setup for reducing texture pages. Shaders are written in the OGLES Language(can't remember exactly which version), because that one is the easiest to cross-compile/convert to all the platforms and is still powerful enough. There is also a particle system included.

2. The whole d&d event system comes in handy. You can use d&d to code some things, but as it gets more complicated you will want to use GML code instead. But the event system is still useful then. You get events for lots of things. Besides almost all of inputs like mouse and global mouse inputs for example, you get things like "out of room", animation end(which happens when a sprite is about to loop the animation), alarms, the "step" events, which include beginning, middle, end so you can force things to happen in a certain order, all the collisions, game and room(level) begin and end, create and destroy events, and custom events as well if you choose to use them. The only thing that I'm uncertain of if you are requesting is collision response. You get the collision event, but you have to decide how to respond to it. There is also implementation of the Box2d physics engine internally if you wish to use it. Look on the showcase at Bullet Bros to see the physics in action. You can see the rest of the showcase too to see examples of nice games done with the software.

3. For the most part, the editors are pretty nice. The couple things that need improvement is the room editor and the GUI, but they are both workable and have never gotten in my way. The GML scripting language is kind of a c-like language. I picked it up very quickly coming from having learned C++. You can also use the Drag&Drop system for coding, but it gets unwieldy pretty quick if you get complicated. There is nothing stopping you from using both at the same time, even in the same event. For the most part, the GML language allows you to do everything you need as far as 2d and even 3d(which is in some ways a tacky add-on but has gotten some nice games made with). It isn't really an OOP language, but you have access to data structures and other similar things you need. There is also a parent/child system, where you make objects with these relationships, and in events and code, you can access parents to get included all the children. Say you can have a single parent bullet, and then several children bullets, and if you put a collision event between an enemy and the parent bullet, it will happen for all the children. In fact, you can get different parameters using variables. Say in that collision, you use the variable "strength" to decrease the hp of the enemy, then in each child, you can set different "strength". You can even use a parent enemy instead, and then each enemy can do whatever he wants and still responds the same to the parent bullet object.

4. Multi-platform? More so than Unity or Shiva! There are some things that Shiva or Unity do that GameMaker does not, but the sheer amount of platforms that GameMaker ports to is more. This isn't a "gimmicky" statement, as indeed it ports to all the "important" platforms for most people, unless you are intending to develop for consoles. Try Windows, Windows 8(as Javascript for Windows 8 stuff, I don't know details), Ubuntu, Mac, iOS, Android(including OUYA), Windows Phone 8, Tizen Native or Javascript(Don't know why you would want it), and HTML5(which can use WebGL if you need the drawing performance and the browser is compatible). They had a PSP port before Studio was released, but they couldn't work things out with Sony I'm understanding so that didn't pan out.

Sorry for the long post guys, but I heavily recommend GameMaker, and these are my reasons why.



Thanks! This is great information. Coincidentally, I have used GameMaker in the past (quite some time ago, GameMaker 6.1 IIRC) and it wasn't that bad. I'll have to take a look at how it stacks up these days compared to before :)

Yes, so much has changed since version 6. Most of the "better professional" features weren't there before. They are taking time, but Yoyogames is doing great things with the software.



Ethanon Engine:
http://doc.ethanonengine.com/manual/6

I'm not sure whether this is exactly what you need, but I've been developing a game engine for a few years that doesn't sound all too different. You'll find some information in the GameDev thread > over here <. It should have all the rendering requirements that you're looking for, RigidBody physics and collision detection is fully implemented and it's all focused on a visual WYSIWYG editor, accompanied by your own game logic in the form of a C# plugin. There is no native multiplatform support though, but it's open source and based on OpenGL / OpenAL, so there's at least nothing fundamentally speaking against it.. but again, it's not there out of the box.

Some impressions from the other thread:
Cc8rBXPh.jpgphysics5.pngMateTerrain.jpg

#1 shows a game project that is being developed using the engine, #2 shows a physics techdemo and #3 shows the editor environment.

Of course, this is a very biased post, since I'm the developer of the suggested game engine. I'm sorry for invading your thread, but it sounded like kind of a match to me, so.. I just thought, I'd mention it and that's it smile.png I haven't used Construct2, GameMaker and the like, but they have a large community, so there must be something to them. Can't be all too wrong to go with them.

Thanks!

I'll be sure to check them both out too.

Are you looking primarily for cross platform mobile, desktop or both? You can find a huge selection of engines at http://mobilegameengines.com/. It separated them into iOS/ Android and HTML, but many of the engines listed support lots of additional platforms, such as Windows, Mac, Blackberry and even TV platforms.

A grumpy old game developer

Hi drmop - thanks for the link. For the record, I specifically target the PC.

Notably, these lists can't actually be filtered in any meaningful way (not even by cost, which is listed for all entries!), so whilst the information is sometimes there, it's a royal pain in the arse to find what you actually need to know :/

Try this one http://oxygine.org/

This topic is closed to new replies.

Advertisement