Sign in to follow this  

Looking for an engine for a 2d action RPG.

This topic is 660 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.

Edited by JustinS

Share this post


Link to post
Share on other sites

 

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Edited by coope

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Yeah, was going to echo the others, but there's no real need.  I'm doing 2d with multiple hit boxes in Unity right now.  One of the really nice points is just how easy it is to atlas everything up.  Yes you have to use child objects for multiple colliders, but you'd want a hierarchical system anyway for destroyable arms and legs.  DoT effects would be incredibly easy in Unity using Coroutines.

 

Stats are also some of the easiest things to add to a game, and usually very specific to the game, so I'm a bit confused why that seems to be a blocking point.  

Share this post


Link to post
Share on other sites

Fine. I'll add Unity to the list.

 

Listen, my experience with Unity amounts to three months in 2011. That was in a project that got one other member and went nowhere. We got stuck on multiple hitboxes and there was no information available ANYWHERE on the subject, at all, leading us to believe it just couldn't be done. And since that was almost five years ago, maybe it couldn't at the time. So we dropped it like a skirt and moved to UDK instead, which since we were making an FPS/RPG at the time already had most of the FPS framework in place and was very easy to start installing the RPG side of it. That project died because we never got a modeller, but during our time with Unity we got extremely frustrated with it, especially since both of us had 99% of our coding experience (which was already harshly limited) with Javascript and Monodevelop hates it. (Actually, monodevelop was just frustrating in general.)

 

Now, if I was to select Unity, here's a question. Since I can supposedly do multiple hitboxes, could I prioritize hitboxes, so if you hit one of them hitting others doesn't count? For example, prioritize the torso hitbox so if an attack passes through the leg hitbox before it reaches the torso it counts as hitting the torso, but if it hits only the leg hitbox it can still register a leg hit? (Actually, prioritizing body shots is the only thing I really need that for.) I want it to be easier to hit somebody in the torso than any other part of their body, and if I can't prioritize the hitboxes than literally any other part of their body would be easier to hit, because their hitboxes block all access to the torso.

Edited by JustinS

Share this post


Link to post
Share on other sites

Since I can supposedly do multiple hitboxes, could I prioritize hitboxes, so if you hit one of them hitting others doesn't count?

 

These two answers will provide the necessary behaviours for your combat collision boxes.

http://answers.unity3d.com/questions/474515/detect-multiple-collisions.html

http://answers.unity3d.com/questions/701663/detect-a-collision-but-allow-prefabs-to-pass-throu.html

 

In order for you to bring your combat design together however, you will need to make scripts for each body part. Each body part will acquire collision events from the engine, just remember it needs a collision box too. Your script will need to enable combat flags for every collision event. Your combat system will need to aggregate that event information somewhere and reset the flags/data so you can have another combat event take place. Presumably you'll want the aggregation to take place after the attack sequence is complete otherwise you will likely miss data.

 

I found another engine: rpgtoolkit.net

I still believe Unity would be your best bet. Unity has a large user base compared to niche engines. A person could be inclined to believe the engine with the best features is the best engine, but if you're new to development you want the engine with the best community support. I *believe* that will be Unity, hands down.

Share this post


Link to post
Share on other sites

Our programmer is not willing to make an entire engine from scratch. Our programmer also needed my assurance that they wouldn't have to code everything by themselves (which means another team member learning C) to join the project in the first place. (Makes enough sense. Every other role has at least two people who can do it.) So, no. That's not happening. Certainly not for this game, probably not ever.

Share this post


Link to post
Share on other sites

This topic is 660 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this