Skip to main content
GameDev.net gamedev.net
🔒 Locked

Best engine for developing a 2D roguelike

Started by Joost_Kivits May 3, 2015 at 8:54 PM 14 replies 30.2k views
Original Post
Joost_Kivits
Joost_Kivits

Hello everyone! I'm new to the forums and I was hoping you guys could settle something for me. I have a little bit of experience developing 3D games with unity 3D and programming languages like Javascript and C# (although you could say I'm technically still a beginner). But now I want to move on to developing a 2D roguelike dungeon crawling game and I find myself a bit confused, so I have a couple of questions:

What engine would be best to use for a 2D game? Since I only have experience with 3D games I'm used to always using a graphics engine (like Unity or Unreal) but I've heard people say that for 2D games using a graphics engine is foolish. Other people say say that I should use something like Game Maker. Games similar to the game I'm trying to create have been created with Game Maker as well (Nuclear Throne, Catacomb Kids etc.) but I'm a bit hesitant to use it since it mostly uses drag and drop events and I feel a lot more confident simply writing javascript scripts which feel a lot less limiting.

So could someone please help me settle this? How would I go about starting this project? Thanks in advance!

-Joost

Tangletail
Tangletail

Erm... Probably Game maker or Godot Engine.

Game Maker is exclusively 2D, which would make your life a lot easier.

And Godot's 2D functionality is pretty stellar. Godot also gives you access to the scource code, which can make life easier for you.

Joost_Kivits
Joost_Kivits

I'm just wondering if Game Maker isn't a bit limited in its capabilities since it uses drag and drop actions. My game might need some advanced coding.

SOL-2517
SOL-2517

I would go with HTML5 + Canvas + Javascript since you said that you feel comfortable with Javascript. Performance is not going to be an issue for a game like this and being able to distribute it by just linking to a website is convenient and makes it much easier for people to try it out.

Jay Pascua
Jay Pascua

Hello everyone! I'm new to the forums and I was hoping you guys could settle something for me. I have a little bit of experience developing 3D games with unity 3D and programming languages like Javascript and C# (although you could say I'm technically still a beginner). But now I want to move on to developing a 2D roguelike dungeon crawling game and I find myself a bit confused, so I have a couple of questions:

What engine would be best to use for a 2D game? Since I only have experience with 3D games I'm used to always using a graphics engine (like Unity or Unreal) but I've heard people say that for 2D games using a graphics engine is foolish. Other people say say that I should use something like Game Maker. Games similar to the game I'm trying to create have been created with Game Maker as well (Nuclear Throne, Catacomb Kids etc.) but I'm a bit hesitant to use it since it mostly uses drag and drop events and I feel a lot more confident simply writing javascript scripts which feel a lot less limiting.

So could someone please help me settle this? How would I go about starting this project? Thanks in advance!

-Joost

I'd say since you're already accustomed to Unity just use that.

Yes, you are able to make games pretty much with just "drag and drop" type things especially if you hit the marketplace, but you DON'T have to for everything. Also you'd have to be doing some pretty unique shit to have to need to override their stuff.

^ That applies to things like monogame as well. I can't say for gamemaker I've never used that.

Using an engine that's already been proven, used by multimillion dollar companies, just simply gets things done quick, it sounds more like the advice is foolish. Remember that's just regarding the broad "using an engine to make a 2D game".

I can understand if you're trying to learn what's going on behind the scenes then by all means go ahead and just use a library or go all handmade hero on that project, but if you're just trying to get shit done, there's nothing wrong with an engine.

One last question. What things are you looking into that you're afraid an engine might limit you?

Joost_Kivits
Joost_Kivits

Thanks for the info Delite! And well, I was afraid a simple engine like Game Maker wouldn't be able to produce procedurally generated content like randomly generated dungeons and stuff. It all seemed pretty basic, but then again some pretty impressive games have been made using the engine.

And SOL-2517, I had some bad experiences with HTML5 + canvas. Just not really accustomed to it I guess. I also want to make the game an executable.

Lactose
Lactose

GameMaker has a scripting language (called Game Maker Language, or GML) you can use, which I would guess is more powerful/capable than the drag and drop interface.

I have no experience with it myself, but some quick searches seem to bring up some detailed information on it.

That said, Unity and other 3D engines can be used to make 2D stuff just fine. Unity has recently pushed for better 2D capabilities, which you might want to have a look at as well.

Again, no personal experience using this, so I'd recommend researching and testing some alternatives before comitting to any given solution.

Hello to all my stalkers.
Anthony Serrano
Anthony Serrano

I'm just wondering if Game Maker isn't a bit limited in its capabilities since it uses drag and drop actions. My game might need some advanced coding.

For what it's worth, while GM has drag-and-drop, it isn't restricted to that; it also has a fully-featured language that is quite capable.

Joost_Kivits
Joost_Kivits

Well I guess I'll give Game Maker a try then! It's a bit more intuitive for the kind of game that I'm making than just using scripts without an engine. Thanks for the feedback everyone! Although more people's opinions are always welcome!

CaseyHardman
CaseyHardman

As Lactose said, Unity has pretty extensive 2D support now. You don't have to "make 2D work in 3D" like you once did.

With Unity you can use C# or JavaScript, and with Game Maker you can use GML (Game Maker Language).

I haven't used Game Maker in a long time and what little experience I got with it was when I was particularly new, but I'm tempted to say Unity has more scripting power than Game Maker.

Someone can correct me if I'm wrong, but I don't think GML lets you define classes/interfaces, possibly not even functions. It's not as 'legit' as C# or JavaScript. I think overall, Unity will give you a more traditional and standard programming experience, which will be more applicable if you ever need to program in another engine or something.

However, if you're completely new, Unity will likely prove more difficult for you; it's a more powerful tool all-in-all, but Game Maker is designed to be easy and 2D-friendly. Going for a 2D roguelike RPG before finishing any simple games and with minimal experience in game development is going to be tough on you, and Game Maker might take away some of that pain. Either way, you'll learn a lot.

https://x.com/Casey_Hardman
Ovicior
Ovicior

Use Monogame.

You won't have to put up with the insane amount of tools in usual 3D engines like Unity, and it might be faster (Not sure, just thinking it might be, considering it doesn't have to use all the stuff Unity does).

What will you make?
CaseyHardman
CaseyHardman

Use Monogame.

You won't have to put up with the insane amount of tools in usual 3D engines like Unity, and it might be faster (Not sure, just thinking it might be, considering it doesn't have to use all the stuff Unity does).

This is an option, but actually making the game would probably be easier in Unity despite 'all of the stuff', especially if you want to make any handcrafted areas such as villages, because you'll probably end up needing some sort of editor for that.

You can extend Unity's editors, set up your maps/regions/whatever, and then have everything save into the scene, instead of having to figure out how to save it all yourself. Game Maker would likely be even easier than this, since they have simpler, quicker support for tilemaps and let you place them properly into the environment right from the editor.

https://x.com/Casey_Hardman
Joost_Kivits
Joost_Kivits

Interesting. I'm torn between Game Maker and Unity now. The game I'm going to try to create will be similar to Nuclear Throne, Catacomb Kids, The Binding of Isaac or something along those lines.

SeraphLance
SeraphLance

libtcod is quite impressive if it's the sort of thing you're after. I'd give you a link but the site seems to be having issues at the moment.

laztrezort
laztrezort

Have you looked through the rogue basin articles (http://www.roguebasin.com/index.php?title=Articles) yet? There are quite a few tutorial/articles for writing an RL in various languages, such as C#: http://www.roguebasin.com/index.php?title=C_Sharp

I've never used those libraries (except for libtcod mentioned above many years ago), but I did roll my own using OpenTK as the rendering backend, using the aforementioned libtcode as an API inspiration. An older version of my lib can be found here if you're interested (at least until Google Code goes away): https://code.google.com/p/sharprl/.

Note that all of this assumes you are going for a more "old school" roguelike (ASCII or simple tile art, etc.).

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.