Advertisement

Best free engine for a Grand Strategy Game?

Started by January 06, 2017 06:30 PM
13 comments, last by gsgeek 7 years, 10 months ago

I'm looking into making a little "grand strategy" game in the line of Europa Universalis or Crusader Kings by Paradox Development Studio, as a free time project for personal learning and amusement. It'd be focused on singleplayer (but I'd like to be able to implement multiplayer later on if I'm succesful).

For those who don't know these games, the main interface is a world map divided in provinces owned by entities (nations or characters depending of the game). Both characters/nations and provinces have a wide range of different stats and attributes. A player can select to control one nation/characters, and the AI controls all others.

As it'll be my first project, I want it to be wholly 2D. Also, since there is going to be a lot of calculations running constantly, I'd like to be able to get the most efficiency in the programming language as possible.

On the other hand, I want the game to be very moddable, with the end user being able to use a custom scripting language to manipulate the ui and the game mechanics.

Since I'm new to game development, I'd like to find a platform with a not too steep learning curve.

Lastly, as the title implies, I'd like it to be free.

I'm not sure if there any developing platform that fullfills this criteria, but if it isn't, which would fullfil most of them?

You can start using unity or unreal engine 4 for free. Both are quite popular and can work for all game types.
Advertisement

You can start using unity or unreal engine 4 for free. Both are quite popular and can work for all game types.

That is my default plan if I don't get better directions. I gather that Unreal's C++ is faster/more efficient than Unity's C#, is that correct?

Which one would be easier to learn? (so far my programming experience is restricted to small programs in high-level languages, mainly Python and Ruby).

C# is much closer to Python and Ruby, it's much easier to use that for you.

Your real problem is not speed, it's writing working code. Games are complicated programs. Do yourself a favor and don't add a new programming language onto your plate.

Take on C++ after you know how to write a game.

As for speed, you gain 90% of it by not writing stupid code. Somewhere in the last 20% or so, the programming language becomes really relevant.

I don't know any of the games you mention, but strategy games are often not much action at the screen, but lots of calculations behind the scenes. I would argue Python would work there too. Use pygame for the graphical front-end, and use normal Python for building prototype computations. Once you have them, chances are it's fast enough. If it isn't, you can rewrite parts in C or Cython to get the required performance.

C# is much closer to Python and Ruby, it's much easier to use that for you.

Your real problem is not speed, it's writing working code. Games are complicated programs. Do yourself a favor and don't add a new programming language onto your plate.

Take on C++ after you know how to write a game.

As for speed, you gain 90% of it by not writing stupid code. Somewhere in the last 20% or so, the programming language becomes really relevant.

I don't know any of the games you mention, but strategy games are often not much action at the screen, but lots of calculations behind the scenes. I would argue Python would work there too. Use pygame for the graphical front-end, and use normal Python for building prototype computations. Once you have them, chances are it's fast enough. If it isn't, you can rewrite parts in C or Cython to get the required performance.

That's very valuable advice, thank you!

As others have said, speed comes from picking the right approach to solving a problem.

I suggest you read up on general computer science, algorithms and data structures, and big-O notation to get you started while you learn an engine, this will help you understand what's fast and what isn't, regardless of if you code in C++, C#, Python, or any other languages...

Good luck!
Advertisement

As others have said, speed comes from picking the right approach to solving a problem.

I suggest you read up on general computer science, algorithms and data structures, and big-O notation to get you started while you learn an engine, this will help you understand what's fast and what isn't, regardless of if you code in C++, C#, Python, or any other languages...

Good luck!

Thanks!

Would you mind point me to any text book on those topics, or any post around here listing sources?

Also, do you know of any place where I can check a list of available free development platforms?

I think your best and most affordable option is to search Google for university lecture slides, and similar materials. You'll want materials relating to computer science and the various maths modules often taught alongside it. Operating systems design, and algorithms, are always useful to Google up.

There are many books on the subject that I remember owning as a student (i don't anymore, nor do I remember their names). For me, university was a long time ago.

There are likely a lot of people here where uni is fresher in their minds who might be able to provide you with a proper reading list :)

Have a a look at this one, https://html5gameengine.com which is a list of game engines. Pick that fits for you.

Game Graphics | Pixel Art | Game Backgrounds | Tools | Tutorials

Would you mind point me to any text book on those topics, or any post around here listing sources?

Youtube is a pretty good resource for lectures. If you wanted to look into good C++ code then the cpp con lectures are great and hosted by notible prefessionals. For example: Herb Sutter "Back to the Basics! Essentials of Modern C++ Style"

This topic is closed to new replies.

Advertisement