Looking for an engine for a 2d action RPG.

Started by
16 comments, last by feel2d 8 years, 2 months ago

I'm looking for an engine for a 2d action RPG, a hobby project me and some friends are working on. There's a list of things we're trying to do with it that are fairly complex, and all of us are normally modders instead of actual devs, so while we do have a lot of experience modding and at least two of us (myself included) are pretty good at it, making an actual game is new to us and something fairly easy to use would be preferred. Also I should mention that I'm not the one doing the programming. (I might pick up some to make it easier on the guys that are, but that's not why I'm there.) I'm doing sprites (we all are), music (one other guy is as well, but this is primarily my job) and level design (working directly with one other team member).

What we need, in brief:

2d, top-down/isometric view.

Support for *entirely* sprite-based graphics, specifically 16-bit.

Real-time combat.

Very precise hitboxes and multiple hitboxes per character.

Support for a large number of custom stats per character.

Support for DoT and other status effects, but on a numeric basis.

2d, top-down/isometric view:

This is fairly self explanatory.

Support for *entirely* sprite-based graphics, specifically 16-bit:

We have a pretty good idea how we want the game to look. And we're picturing a couple late '90s 16-bit games made by Square Enix. Namely, these two.

http://topiat.com/system/images/1147/originals/051120101538/secret_of_mana.jpg

http://sydlexia.com/imagesandstuff/snes100/snes30.png

Real-time combat:

Our combat is supposed to be real-time, complex and tactical. The basic principle is similar to the above games, but with larger movesets for the player. If the engine is a JRPG engine, it just flat-out will not work. Same goes for engines that are built for turn-based combat.

Very precise hitboxes and multiple hitboxes per character:

We want to make the hitboxes match the sprites as much as possible. We also want to have multiple hitboxes so we can isolate specific parts of characters for you to hit. (IE: Breaking a boss's arm, if its attacks are giving you trouble.)

Support for a large number of custom stats per character:

This goes into the above, but there's also standard RPG stats, a number of defence and resistance stats and derived stats. They're also important to the combat system, and the main reason we aren't just making this as a mod. (Well, other than how much more difficult the art assets would be to create.)

Support for DoT and other status effects, but on a numeric basis:

This system has bleed, various poisons, diseases, fire and all sorts of of other status effects. However, they all have to be numeric. This is both to allow different strengths of these effects and to allow the resistances to them to, you know, work. If the engine can't do that for whatever reason, or makes that an especially huge pain in the ass to do, that's a problem.

We'll make do if something is a bit off, but whatever does these the best and easiest is what we're going to go with. Also, as a side note, I am just giving all the recommendations to the rest of the team. We're making the decision as a group.

There's two of us on this account. Jeremy contributes on design posts, Justin does everything else, including replying on those threads. Jeremy is not a people person, so it's Justin you'll be talking to at any given time.

Aelsif's Patreon.

Advertisement

New to creating games, mainly modders.

Solution: Use Unity.

New to creating games, mainly modders.

Solution: Use Unity.

Only if you have ignored literally every other word in the post.

There's two of us on this account. Jeremy contributes on design posts, Justin does everything else, including replying on those threads. Jeremy is not a people person, so it's Justin you'll be talking to at any given time.

Aelsif's Patreon.

New to creating games, mainly modders.

Solution: Use Unity.

Only if you have ignored literally every other word in the post.

What makes you say that?

Not everything you mentioned will have a solution built in, but everything you posted can be done in Unity.

There might be slightly better suited engines out there, although I can't personally think of any that fit your requirements better while not going against other requirements you have, but Unity is certainly a valid choice.

Hello to all my stalkers.

What makes you say that?


Going through the list:

1. Unity is a 3d engine, not 2d. You can fake 2d in it, if you're doing a sidescroller, but that's still faking it *and* this isn't a sidescroller.

2. Using sprites for *everything* in Unity is just not going to happen. And I do mean *everything*. I gave two links on what we're trying to make it look like, more or less. We'd lose Unity about the point we made a sprite and tried to tell it that's the floor.

3. Real-time combat, at least, it can do. In fact, I reckon it'd be a lot harder to do turn-based combat in Unity than real-time.

4. Now, I didn't spend much time in Unity last time I tried game development (I never got a team together, and moved to Unreal while I was waiting), but I couldn't find one person who could tell me how to give an object multiple hitboxes. And funny,I just got off Steam where I was trying an FPS made in Unity. Oddly, they didn't have headshots, a nearly universal FPS trope. Kinda makes me think multiple hitboxes is impossible in Unity, or at the very least is so hard to do that the devs of that game couldn't figure it out.

5. This might not be impossible, but the entire system would need to be completely built from the ground up in Unity. There isn't even a basic framework present for the existence of stats. In fact, there's no framework available for any RPG mechanics. Or the mechanics of any other genre, really. That isn't a problem if you're making a simplistic mobile "game" that barely has any mechanics, but for a REAL game, you'll want a more specialized engine.

6. See above.

Unity was the first thing I looked at, both for this project and for the one that went nowhere. If I wanted to give up that much, I would just make the game as a mod and save a lot of time. I'd reach a wider audience, too.

There's two of us on this account. Jeremy contributes on design posts, Justin does everything else, including replying on those threads. Jeremy is not a people person, so it's Justin you'll be talking to at any given time.

Aelsif's Patreon.

What makes you say that?


Going through the list:
1. Unity is a 3d engine, not 2d. You can fake 2d in it, if you're doing a sidescroller, but that's still faking it *and* this isn't a sidescroller.
2. Using sprites for *everything* in Unity is just not going to happen. And I do mean *everything*. I gave two links on what we're trying to make it look like, more or less. We'd lose Unity about the point we made a sprite and tried to tell it that's the floor.


I don't think you really understand the difference between 3D and 2D. Hint: in this day and age, they're the same. You're going to use the exact same techniques (drawing quads mapped with textures) to draw a sprite as you would to draw, say, a 3D clump of grass. It's just textures and geometry, the only difference being spatial placement. 2D usually places all of the geometry on a single plane, and uses draw order to sort. If there is a 3D engine out there that CAN'T support this kind of thing, I'd be surprised.

3. Real-time combat, at least, it can do. In fact, I reckon it'd be a lot harder to do turn-based combat in Unity than real-time.
4. Now, I didn't spend much time in Unity last time I tried game development (I never got a team together, and moved to Unreal while I was waiting), but I couldn't find one person who could tell me how to give an object multiple hitboxes. And funny,I just got off Steam where I was trying an FPS made in Unity. Oddly, they didn't have headshots, a nearly universal FPS trope. Kinda makes me think multiple hitboxes is impossible in Unity, or at the very least is so hard to do that the devs of that game couldn't figure it out.
5. This might not be impossible, but the entire system would need to be completely built from the ground up in Unity. There isn't even a basic framework present for the existence of stats. In fact, there's no framework available for any RPG mechanics. Or the mechanics of any other genre, really. That isn't a problem if you're making a simplistic mobile "game" that barely has any mechanics, but for a REAL game, you'll want a more specialized engine.


You do realize that you're going to have to do a lot of the work yourself, right? Engines are not intended to be specific solutions for any one person's particular needs. So, yes, you'll probably have to build your particular system from the ground up if you use Unity. Same if you use Unreal, or CryEngine, or any other out of the box engine. They're built for the general case, not the specific. I strongly suspect you're not going to have much luck finding a pre-made solution that ticks every checkbox on your list, and you'll end up having to build your own solution.

Didn't Unity also add 2D* support a few years ago? I remember that being a thing around the time they added smartphone support.

I'm just going to echo what others have said here -- you're going to need to implement some of this stuff yourself most likely. Just adding character stats and status effects is fairly trivial. I don't know how easy it is to add that kind of functionality in Unity, but I'd be surprised if it took more than a few hours for your programmer. And furthermore, I'd be shocked if it didn't support multiple hitboxes.

* 2D in this case referring to 2D-centric API functions, since you can obviously do 2D in any typical 3D rendering system.


1. Unity is a 3d engine, not 2d. You can fake 2d in it, if you're doing a sidescroller, but that's still faking it *and* this isn't a sidescroller.
2. Using sprites for *everything* in Unity is just not going to happen. And I do mean *everything*. I gave two links on what we're trying to make it look like, more or less. We'd lose Unity about the point we made a sprite and tried to tell it that's the floor.
3. Real-time combat, at least, it can do. In fact, I reckon it'd be a lot harder to do turn-based combat in Unity than real-time.
4. Now, I didn't spend much time in Unity last time I tried game development (I never got a team together, and moved to Unreal while I was waiting), but I couldn't find one person who could tell me how to give an object multiple hitboxes. And funny,I just got off Steam where I was trying an FPS made in Unity. Oddly, they didn't have headshots, a nearly universal FPS trope. Kinda makes me think multiple hitboxes is impossible in Unity, or at the very least is so hard to do that the devs of that game couldn't figure it out.
5. This might not be impossible, but the entire system would need to be completely built from the ground up in Unity. There isn't even a basic framework present for the existence of stats. In fact, there's no framework available for any RPG mechanics. Or the mechanics of any other genre, really. That isn't a problem if you're making a simplistic mobile "game" that barely has any mechanics, but for a REAL game, you'll want a more specialized engine.
6. See above.

1.) This is 2016. Anything I am familiar with, at the very least, is 3d faking 2d. Including my own 2d engine. Given that graphics cards are built upon 3d technologies.

2.) You can in fact use sprites for everything in unity. I've worked on fully 2d games, which used only sprites, in Unity. Telling a sprite it is the floor is usually done through a tile map, which you could either find on the unity asset store (likely for free), or build yourself easily enough.

Example: "Tiler" from the Asset Store https://www.assetstore.unity3d.com/en/#!/content/9702

3.) How you structure and design your game systems is what will determine the difficulty of implementing real time combat vs turn based.

4.) You cannot add multiple (built-in) collision boxes in Unity. At least to my knowledge. Which means you would need to break an object into a hierarchy of objects. Again a design problem, not an engine problem. Read the documentation on prefabs.

5.) You can find RPG systems on the unity store.

6.) See "RPG Maker" Not sure if that qualifies as an engine, but given the features you are expecting a "2d engine" (implying a generic 2d engine) to have, that is the best you're going to find, at least as far as I know. Perhaps someone knows something better.

edit:

Didn't Unity also add 2D* support a few years ago? I remember that being a thing around the time they added smartphone support.

I'm just going to echo what others have said here -- you're going to need to implement some of this stuff yourself most likely. Just adding character stats and status effects is fairly trivial. I don't know how easy it is to add that kind of functionality in Unity, but I'd be surprised if it took more than a few hours for your programmer. And furthermore, I'd be shocked if it didn't support multiple hitboxes.

* 2D in this case referring to 2D-centric API functions, since you can obviously do 2D in any typical 3D rendering system.

There are 2d API calls yes. There are many 2D features.
http://docs.unity3d.com/ScriptReference/Collider2D.html

Maybe RPG Maker, but you aren't going to find any solution that isn't going to require quite a bit of legwork on your end. You want a list of very specific things and most game engines are made to be as generic as possible.

As for Unity, I don't think your team has really looked in to what it can do. Everything on your list is very achievable with some coding.

I think JTippetts covered the 2D/sprite concerns.


3. Real-time combat, at least, it can do. In fact, I reckon it'd be a lot harder to do turn-based combat in Unity than real-time.

Both are completly doable.


4. Now, I didn't spend much time in Unity last time I tried game development (I never got a team together, and moved to Unreal while I was waiting), but I couldn't find one person who could tell me how to give an object multiple hitboxes. And funny,I just got off Steam where I was trying an FPS made in Unity. Oddly, they didn't have headshots, a nearly universal FPS trope. Kinda makes me think multiple hitboxes is impossible in Unity, or at the very least is so hard to do that the devs of that game couldn't figure it out.

There's no issue with having more than one hitbox. You might have to use game objects which are basically just a hitbox and make it a child of the main object or something like that (first solution I can think of, probably better ones exist), but there's definitely ways to this. Lack of headshots in the FPS you played was not due to it being impossible in Unity.


5. This might not be impossible, but the entire system would need to be completely built from the ground up in Unity. There isn't even a basic framework present for the existence of stats. In fact, there's no framework available for any RPG mechanics. Or the mechanics of any other genre, really. That isn't a problem if you're making a simplistic mobile "game" that barely has any mechanics, but for a REAL game, you'll want a more specialized engine.
6. See above.

JTippetts covered some of this as well.

Like I mentioned, you will have to do some work on your own. There might be other engines which have more built-in solutions for specifically these problems, but I think they are lacking in some of the other departments. I would also say there's a high chance of those engines not supporting what you need 100%.

Additionally, I object to the "for a REAL game" part.

If you look at what games have been made in Unity the last couple of years, I think you will find plenty "REAL games" in the list, both 2D games and stat heavy games: https://en.wikipedia.org/wiki/List_of_Unity_games

(2014 and onwards especially of relevance.)

While Unity might not end up being the best decision for you and your team, it feels like a lot of your arguments here are invalid or debatable.

Hello to all my stalkers.

This topic is closed to new replies.

Advertisement