Thanks for the feedback!
Huitsi {l Wrote}:Thank you for the instructions. I tried to build the project with my distro-provided Qt Creator and Qt (supposedly 5.13) but unfortunately ran into some errors.
First I got some erros like:
- {l Code}: {l Select All Code}
[--]Metternich/map/province.h:154: error: declaration of ‘Metternich::Religion* Metternich::Province::Religion’ changes meaning of ‘Religion’ [-fpermissive]
154 | Religion *Religion = nullptr;
| ^~~~~~~~
which I was able to turn into warnings by adding
- {l Code}: {l Select All Code}
QMAKE_CXXFLAGS += -fpermissive
to the .pro-file.
I am compiling the engine with MSVC, which doesn't issue an error for that. I changed those variable definitions now to use the type's namespace:
https://github.com/Andrettin/Metternich ... 3a2cbfbd9dDoes that fix the error for you?
Then I got a
- {l Code}: {l Select All Code}
[--]Metternich/database/gsml_data.h:55: error: ‘sort’ is not a member of ‘std’
55 | std::sort(this->Children.begin(), this->Children.end(), [](GSMLData &a, GSMLData &b) {
| ^~~~
which I solved by adding
- {l Code}: {l Select All Code}
#include <algorithm>
to that file.
It looks like <filesystem> (which is included in that file) includes <algorithm> as well with MSVC, hence why I didn't get that error. Thanks for the heads up, I've fixed the issue now!
Now I get a bunch of erros like:
- {l Code}: {l Select All Code}
/usr/include/c++/9/type_traits:672: error: invalid use of incomplete type ‘class QVariant’
672 | struct is_trivial
| ^~~~~~~~~~
and am stumped. How is there an error in a distro-provided include file?
<QVariant> wasn't included in the province.h header file, which is why you got the error. The file compiled alright for me because I am using precompiled headers. I had taken care to make the engine compile without PCH, but I missed that one, so thanks for letting me know! Apparently QMAKE doesn't use the define for precompiled headers under GCC by default, but they can be activated if so desired.
As an aside, I am using precompiled headers *only* for library headers, so that there isn't the risk of triggering a full recompilation just because a piece of code was changed in one of the application's headers. I added the missing include in this commit here (along with <algorithm> in the file noted above):
https://github.com/Andrettin/Metternich ... 4642208cb0About the lack of documentation, do you mean that there isn't an overview, or something else?
An overview would be a good start. I'm also thinking about information on how the game is supposed to work ("grand strategy" only tells so much) and how you add stuff to or "mod" the game.[/quote]
I have a data repository for the game itself as well,
Iron Barons.
The game is intended to be a character-driven grand strategy game set in the 19th century.
To run the game, just set its directory as the working directory when running the engine; you can set the working directory in the Qt Creator by going to Projects->Run. Note that the setting is not saved by the Qt Creator between debug and release configurations, so it has to be set for each of them if you want to use both.
Most of what the engine can do so far is used there.
In the /data/commons/ files, the following can be done:
* Defining cultures and culture groups, as well as personal name lists for them
* Defining dynasties for characters
* Defining holding types (e.g. settlements in a province)
* Defining landed titles/countries, which are ranked in a barony/county/duchy/kingdom/empire tier system, along with their map color, de jure liege and capital province
* Defining provinces, detailing what is their respective county landed title, and what is their color in the provincial map (/map/provinces.png)
* Defining religions
* Defining character traits
* In defines.txt, delineating the start date and player character (as there isn't a main menu yet; right now when the game starts it goes directly to the map)
And in /data/history/:
* Defining historical characters, with their dynasty, culture, religion, traits, and birth/death dates; note that character aspects can be changed in a given date (e.g. a trait added in a given date); the existing character definitions are the result of my own research, mostly in the Almanach de Gotha for 1815
* Defining landed title history, e.g. who is the title's holder in a given date
* Defining province history, detailing the province's culture and religion (and their changes in given dates), as well as which settlements exist in the province
The whole database is licensed under the CC0.
In /graphics/ there are a number of resource icons I commissioned from an artist (Jinn), and which are currently unused in the game (since I haven't gotten to deal with resources yet).
in /localization/ the translations for the localization tags are defined. Culture and culture group specific names for landed titles are supported, e.g.:
- {l Code}: {l Select All Code}
d_carinthia = "Carinthia"
d_carinthia_german = "Kärnten"
In /map/ there is a terrain map, as well as a province map. The province map only has a few provinces drawn so far, all in Austria as of yet; I am drawing more by hand as I go along.
https://www.lib.utexas.edu/maps/histori ... 58-159.jpgIn the root directory are some QML files, which define how the interface works.