Sign in to follow this  
DanaS

For 2D strategy, what game engine to use?

Recommended Posts

Hey guys, I'm new here and new to game developing in general. I'm not explicitly trained in programming or coding per se, but I've learned to code on my own and built structural equation models and done population biology modeling with higher level programming languages. I've also done some relatively intensive modding for strategy games like Europa Universalis. So anyway, now I want to make the plunge. I'd like to use the principles of island biogeography to make a 2D tile based "sim fantasy" game vaguely in the tradition of the old school Master of Magic (and if you don't know what Master of Magic is, think Civ).

To start, however, I'm trying to determine whether I should use Unity or Unreal for this purpose. Can anyone clue me into the limitations and benefits of both engines if one is interested in building a game that has humble graphics but involves a lot of brute force calculations? Unity seems like an easy candidate, seeing as how the asset store could give you some helpful shortcuts to get started. On the other hand, I'm not sure if Unity is capable of doing what I need it to (similar tiles will need to connect with one another to form ecosystem "patches," withon which would contain wildlife information which would regularly be recalculated based on numerous intetnal and external variables).

Obviously, I'd be starting very small, playing around for a few months with maps of a few dozen tiles, but I would eventually want to scale it up to many thousands of tiles. I understand the extent of the undertaking and I don't have any dillusions as to the difficulty or the immense amount of time required (I'm actually a successful published novelist, so I KNOW how much time a major project takes). When you get down to it, I'm really interested in just playing around with an engine and creating population and migration models with graphical representations, and if some semblance of a game comes out of it, great, if not, than it's an enjoyable hobby. However, everyone must start somewhere, and I'm just not sure what criteria I should use to judge the available engines. Thanks in advance. Edited by DanaS

Share this post


Link to post
Share on other sites

There are definitely ways to have Unity create relations between tiles through scripting. You could definitely use Unity for this, and I'm sure you could use Unreal, but I don't know much about that one. Almost any engine will work for your purposes. A 2d tile based sim is not particularly demanding from a game engine perspective. Think about the exact requirements of your game.

 

Does it need complex graphics?

Will you require detailed input handling through multiple devices?

Complicated navigation or collision code?

Detailed management of assets? (textures, models, fonts, audio, animations)

Does your project need to work on multiple platforms?

 

I'm guessing that the answers are basically no to the above questions, and yet those are the things that big time game engines are really going to help you with. You don't always need an engine to build a game. You might be better off with skipping the engine and instead use libraries for specific functionality. A good multi-media library like SDL or SFML will handle input, assets, windowing, and other features, and there are always libraries available for specific functionality such as collisions.

 

As far as whether or not a specific engine would allow your calculations and such, the answer is yes, no matter the engine. The kind of calculations you'd be working through are not unique to your game, every game needs some kind of similar mechanism.

Edited by jdean300

Share this post


Link to post
Share on other sites

 


A 2d tile based sim is not particularly demanding from a game engine perspective.

I hope you mean graphics engine and not game engine.  Even 2d games can be rather CPU heavy.

 

I mean demanding as far as the features of the engine you will need or how much you will be pushing the engine to it's limits function wise, which I realize was a rather blanket statement to make to a genre of games, but I meant it more in reference to the style the OP seemed to be talking about. But yes, 2d games can be extremely CPU intensive, but so can text based games....

Edited by jdean300

Share this post


Link to post
Share on other sites

There are definitely ways to have Unity create relations between tiles through scripting. You could definitely use Unity for this, and I'm sure you could use Unreal, but I don't know much about that one. Almost any engine will work for your purposes. A 2d tile based sim is not particularly demanding from a game engine perspective. Think about the exact requirements of your game.

 

Does it need complex graphics?

Will you require detailed input handling through multiple devices?

Complicated navigation or collision code?

Detailed management of assets? (textures, models, fonts, audio, animations)

Does your project need to work on multiple platforms?

 

I'm guessing that the answers are basically no to the above questions, and yet those are the things that big time game engines are really going to help you with. You don't always need an engine to build a game. You might be better off with skipping the engine and instead use libraries for specific functionality. A good multi-media library like SDL or SFML will handle input, assets, windowing, and other features, and there are always libraries available for specific functionality such as collisions.

 

As far as whether or not a specific engine would allow your calculations and such, the answer is yes, no matter the engine. The kind of calculations you'd be working through are not unique to your game, every game needs some kind of similar mechanism.

 

Thanks, this way very helpful.  I was leaning toward Unity (and correct me if I'm wrong) because I didn't want to have to deal with art assets at this early stage, and it would be nice to be able to drop a few hundred dollars to get take care of that end while I'm just fitzing around.  If the game ever becomes more than a dedicated hobby, I can then go from there.  Really, part of the point here for me is to become a better coder, learn some new languages, etc. and I seem to learn best by working with a pre-existing foundation and working outward.

 

I'm wondering, though, how much flexibility I would have for my scripts as far as Unity was concerned?  When I was working with the EU4 engine I was very, very limited with what I could do and I had to come up with totally exotic and CPU heavy ways to get it to do what I wanted it to do.  Would I be able to work through the engine or would I have to work around it?  In my EU4 mod, even though EU4 it wasn't a CPU intensive game per se, I ended up slowing it down quite a bit because I had to work around the engine (the language involved was similar to C++, but with Downs Syndrome).

 

And I think I'd like to build my game from scratch in the long term, but right now, I feel like maybe I'm still too much of a novice to take that plunge.  Am I wrong?  Part of "sticking with it" is seeing milestones and results, and I feel like if I spend 6 months stuck at the foundation with no moving parts, I might lose my momentum.

Share this post


Link to post
Share on other sites

Thanks, this way very helpful.  I was leaning toward Unity (and correct me if I'm wrong) because I didn't want to have to deal with art assets at this early stage, and it would be nice to be able to drop a few hundred dollars to get take care of that end while I'm just fitzing around.

If the game ever becomes more than a dedicated hobby, I can then go from there.

Really, part of the point here for me is to become a better coder, learn some new languages, etc. and I seem to learn best by working with a pre-existing foundation and working outward.


I'm wondering, though, how much flexibility I would have for my scripts as far as Unity was concerned?
When I was working with the EU4 engine I was very, very limited with what I could do and I had to come up with totally exotic and CPU heavy ways to get it to do what I wanted it to do.

Would I be able to work through the engine or would I have to work around it?

In my EU4 mod, even though EU4 it wasn't a CPU intensive game per se, I ended up slowing it down quite a bit because I had to work around the engine (the language involved was similar to C++, but with Downs Syndrome).

And I think I'd like to build my game from scratch in the long term, but right now, I feel like maybe I'm still too much of a novice to take that plunge.  Am I wrong?

Part of "sticking with it" is seeing milestones and results, and I feel like if I spend 6 months stuck at the foundation with no moving parts, I might lose my momentum.



Unity is not a bad pick to start with... I got to like Unreal Engine 4 despite it being "more involved" in some areas where Unity gives you shortcuts, but I am not sure how good the 2D Aspect of UE4 is. Speaking of which, did you have a look at Game Maker or similar 2D engines?

Using a fully blown 3D engine for a 2D game is always a little bit overkill...


About the "work around the engine" part... yes, you will end up there eventually, when you try to something that the engine wasn't made for. I had to do many ugly hacks in my time with Unity.

That being said, this only happens when you get into the REALLY complex parts of your project (for me the worst was actually PhysX, which was/is a buggy mess that needs a ton of hacks to work for complex situations), and you will encounter that with any engine out there. The only thing that can help you in this cases is going with an engine you get the source for... which is something that Unreal Engine 4 would provide you, while Unity AFAIK still only does that in parts.
How much time you would spend amending the engine for your customization, and how screwed you would be when you had to re-apply your changes to every new version of the engine IDK though.

For MOST cases you will not be hindered in any way with your scripting though. I wouldn't worry about it until you are trying some cutting edge stuff that was only just published in a theoretical paper a month ago. You might run into other problems like I did when trying to use Unity/PhysX wheel colliders for offroad racing, but these cases are rather rare.

Unity's C# system (which is using Mono under its hood) is pretty good to work with. For me as a professional Java Engineer much easier to get into than Unreal Engines C++ Stuff.

Edited by Gian-Reto

Share this post


Link to post
Share on other sites

Thanks, this way very helpful.  I was leaning toward Unity (and correct me if I'm wrong) because I didn't want to have to deal with art assets at this early stage, and it would be nice to be able to drop a few hundred dollars to get take care of that end while I'm just fitzing around.
If the game ever becomes more than a dedicated hobby, I can then go from there.
Really, part of the point here for me is to become a better coder, learn some new languages, etc. and I seem to learn best by working with a pre-existing foundation and working outward.
I'm wondering, though, how much flexibility I would have for my scripts as far as Unity was concerned?
When I was working with the EU4 engine I was very, very limited with what I could do and I had to come up with totally exotic and CPU heavy ways to get it to do what I wanted it to do.
Would I be able to work through the engine or would I have to work around it?
In my EU4 mod, even though EU4 it wasn't a CPU intensive game per se, I ended up slowing it down quite a bit because I had to work around the engine (the language involved was similar to C++, but with Downs Syndrome).
And I think I'd like to build my game from scratch in the long term, but right now, I feel like maybe I'm still too much of a novice to take that plunge.  Am I wrong?
Part of "sticking with it" is seeing milestones and results, and I feel like if I spend 6 months stuck at the foundation with no moving parts, I might lose my momentum.

Unity is not a bad pick to start with... I got to like Unreal Engine 4 despite it being "more involved" in some areas where Unity gives you shortcuts, but I am not sure how good the 2D Aspect of UE4 is. Speaking of which, did you have a look at Game Maker or similar 2D engines?
Using a fully blown 3D engine for a 2D game is always a little bit overkill...
About the "work around the engine" part... yes, you will end up there eventually, when you try to something that the engine wasn't made for. I had to do many ugly hacks in my time with Unity.
That being said, this only happens when you get into the REALLY complex parts of your project (for me the worst was actually PhysX, which was/is a buggy mess that needs a ton of hacks to work for complex situations), and you will encounter that with any engine out there. The only thing that can help you in this cases is going with an engine you get the source for... which is something that Unreal Engine 4 would provide you, while Unity AFAIK still only does that in parts.
How much time you would spend amending the engine for your customization, and how screwed you would be when you had to re-apply your changes to every new version of the engine IDK though.
For MOST cases you will not be hindered in any way with your scripting though. I wouldn't worry about it until you are trying some cutting edge stuff that was only just published in a theoretical paper a month ago. You might run into other problems like I did when trying to use Unity/PhysX wheel colliders for offroad racing, but these cases are rather rare.

Unity's C# system (which is using Mono under its hood) is pretty good to work with. For me as a professional Java Engineer much easier to get into than Unreal Engines C++ Stuff.

Okay, interesting. It was my impression that Game Maker was rather--- how shall we say--- simplistic. Am I wrong? Aside from using the basic premise of tiles and bei g isometric, my game concept had little to no similarities to other turn based strategy games, so I want a lot of liberties to build from the ground up, but enough boundaries to hone my skill without being ovrwhelmed.

That, and I wasn't sure if there were any robust assets to use for my kinds of purposes (for my case, a good selection of fantasy tile sets to buy from the asset store).

Share this post


Link to post
Share on other sites

Although Gamemaker can do 3d games it seems to be used mostly for 2d games and might have an optimized asset workflow for it.  If you have steam you can try it out for free, I installed it on my machine but haven't really used it yet.  IIRC the Professional version of the software (99-150, don't remember) now includes their native code compiler so if CPU performance is a concern that should allay your fears somewhat.  I think they have an asset store now as well.

 

edit - tilesets in asset store https://marketplace.yoyogames.com/category/42/backgrounds

Edited by Infinisearch

Share this post


Link to post
Share on other sites

Although Gamemaker can do 3d games it seems to be used mostly for 2d games and might have an optimized asset workflow for it.  If you have steam you can try it out for free, I installed it on my machine but haven't really used it yet.  IIRC the Professional version of the software (99-150, don't remember) now includes their native code compiler so if CPU performance is a concern that should allay your fears somewhat.  I think they have an asset store now as well.

 

edit - tilesets in asset store https://marketplace.yoyogames.com/category/42/backgrounds

 

Thank you for your time.  My only concern was that most people seem to use Game Maker specifically so that they don't need to learn much code, where as I'm actually TRYING to improve my coding skills by making games.  The finished product itself is kind of just the engine of my learning experience, rather than the objective itself.  Since I'm still a relatively new coder, is GML a language that's actually worthwhile learning?  Is it a useful stepping stone?  I've learned some C++ and python and I'm in the process of learning some C#.  I'm finding it not too difficult and actually quite enjoyable, but I'm still sort of in the early-intermediate stage.

I'll totally give Game Maker a shot 

Edited by DanaS

Share this post


Link to post
Share on other sites


My only concern was that most people seem to use Game Maker specifically so that they don't need to learn much code,

Thats not necessarily true, it has a scripting language for a reason.


where as I'm actually TRYING to improve my coding skills by making games.  The finished product itself is kind of just the engine of my learning experience, rather than the objective itself.

Then why don't you go the C# SFML route?  If you're doing simple 2d graphics then that might be exactly what you're looking for.


 Since I'm still a relatively new coder, is GML a language that's actually worthwhile learning?  Is it a useful stepping stone?

GML is only used in gamemaker AFAIK, so unless you plan on making GM games its not much use.  I haven't looked at GML in a long time so I couldn't tell you if its similar to another language (like how the scripting language for Godot is supposedly similar to python).  As a stepping stone I'd say all programming experience is good in regards to logic and problem solving.


I'll totally give Game Maker a shot 

If you don't want to learn another language for whatever reason look into C# with SFML it might be what you're looking for.

Share this post


Link to post
Share on other sites

 


My only concern was that most people seem to use Game Maker specifically so that they don't need to learn much code,

Thats not necessarily true, it has a scripting language for a reason.

 


where as I'm actually TRYING to improve my coding skills by making games.  The finished product itself is kind of just the engine of my learning experience, rather than the objective itself.

Then why don't you go the C# SFML route?  If you're doing simple 2d graphics then that might be exactly what you're looking for.

 

 


 Since I'm still a relatively new coder, is GML a language that's actually worthwhile learning?  Is it a useful stepping stone?

GML is only used in gamemaker AFAIK, so unless you plan on making GM games its not much use.  I haven't looked at GML in a long time so I couldn't tell you if its similar to another language (like how the scripting language for Godot is supposedly similar to python).  As a stepping stone I'd say all programming experience is good in regards to logic and problem solving.

 

 


I'll totally give Game Maker a shot 

If you don't want to learn another language for whatever reason look into C# with SFML it might be what you're looking for.

 

 

I was learning C# for Unity, so I might just stick with that route.  I wasn't having a very difficult time with it.

Share this post


Link to post
Share on other sites


I was learning C# for Unity, so I might just stick with that route.  I wasn't having a very difficult time with it.

A fine choice, have you tried 2d with it yet?  I seem to recall it being more 3d oriented, so I was wondering if that's true or not.  If it is true then you might want to try gamemaker, godot or your own combination of C#, box2d, and SFML.

Share this post


Link to post
Share on other sites

 


I was learning C# for Unity, so I might just stick with that route.  I wasn't having a very difficult time with it.

A fine choice, have you tried 2d with it yet?  I seem to recall it being more 3d oriented, so I was wondering if that's true or not.  If it is true then you might want to try gamemaker, godot or your own combination of C#, box2d, and SFML.

 

 

Apparently you can put 3D tiles on a 2d plane, then lock the camera.  So "technically" I suppose its still 3D, but appears rendered as 2D.  At least, that seems to be what some other sources are saying. 

Share this post


Link to post
Share on other sites

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