I added the Kings0 game map generator.
Of course, I have not fully optimized this whole thing, but I did not notice any lags. I know what algorithms can be fixed and optimized, and I do this as much as possible. I would like to talk generally about the development process and the results.
Although a regular map consists of 100x100 blocks, this is not just a symbols, but a whole matrix of objects.
About the map file. It weighs only 100 kilobytes and this is only because there are 5 cards right there.
the map in its initial form is a set of characters, which is converted by 4 generations and 4 more cards on top (in the file they are located below ;) ).
This type of recording and saving the map was not chosen by chance.
With it, it is possible to quickly change any part of the map and add new objects through the code itself (debug).
The generation process takes about 2 to 3 seconds (5 cards 100x100).
About 5 game cards. These are special overlays for the main map generation.
2 of them work directly with the map (map of forests and mountain landscapes).
The remaining 2 are maps of objects (cities, teams, city sizes), but in the future I will transfer them to a special database to expand functions (for example: characters, tasks for the player, and much more).
The generation itself turned out beautiful and works as it was intended.
The only thing that has not been completed is the last generation (smoothing the edges of the blocks).
Because of this, errors have appeared. I have already eliminated many of them in the engine code itself, but 2 still remain.
I'll give you an example if you are interested ...
Now everything is much better. In the very first versions, it looked something like this (October 2019)
like this (this is already about December 2019):
It looks very funny. ;)
As I wrote above, this is simply no longer there.
I also thought a lot about the graphic component and decided to add rivers, small lakes, islands.
And also in the future, new textures are planned (game seasons).
I think that at this moment I will interrupt my article.
At this point in time, I am working on the main window of the game engine.
It is necessary to implement more of its settings (the basic ones are already available), as well as I'm experimenting with screen resolutions.
Of course, I did not forget about the other aspects of the game and they will be implemented over time ...
Continuation will be in article #3 in a few days, but for now I will show the finished result of the game generation: