panik4 / RandomParadox

A C++ random scenario and worldmap generator for Paradox Interactive Games, also useable as a maptool for total conversions
GNU General Public License v3.0
30 stars 2 forks source link

RandomParadox

A project to generate random scenarios for multiple Paradox Games. This tool can be used as a map tool for total conversions, generating all relevant image and text files from given inputs, while being able to also randomize parts without inputs, or even generate fully random worlds. Building upon these files allows a far quicker start for total map conversion mods. For example, giving the map of a fantasy world as input, and tweaking parameters for latitude and longitude, the image, texture and text files required for the mod will be generated.

As of now, only Hearts of Iron IV is fully supported.

Victoria 3 and Europa Universalis 4 generation are creating loadable mods, but the map data isn't fully correct yet.

The Hearts of Iron IV module generates a full mod on a randomly generated worldmap, with random countries, flags, national focus trees, unit templates.

Note that the underlying world map generation is done in a separate project and repository "FastWorldGenerator", which is not yet open source.

It contains a simple GUI built using Dear Imgui (https://github.com/ocornut/imgui)

worldmap A generated fully random world map.

heightmap An example of a generated heightmap. The underlying world generation uses a system of using multiple configurable noise layers to create heightmaps. The noise layers themselves are generated by the FastNoiseLite library. (https://github.com/Auburn/FastNoiseLite).

provinces An visualisation of generated provinces. A province map contains unique colour combinations for every province.

regions An visualisation of generated regions. A province map contains unique colour combinations for every region.

climate The visualisation of generated climate zones.

treecoverage The visualisation of tree coverage overlayed over climate zones.

There are even more files and images being generated, which will not be displayed in the readme.

Inputs

A variety of steps of the generation can take inputs from the user. Examples of using this are: terrainComplexInput An input for land forms/elevation types, which the tool the uses to produce a realistic heightmap.

terrainComplexOutput The result of the input given above, with both the auto-detected elevation types and the generated heightmap.

worldmapFromInput A generated fully random world map.

climateInput Loading a climate map and labelling its colours to the tools climate zones

Hoi4 Module

ingamenc A map based off of a simple input in-game without generated countries ingame A map based off of a simple input in-game with generated countries terrain The terrain bitmap required by Hearts of Iron, with the correct colour codes. Note that the game interprets these colours to represent prettier colours in game. world_normal The world normal map, generated with a Sobel Filter from the heightmap. The game uses this image to display mountains in game. The river map, used by the game for placement of forest and jungles on continents.

Victoria 3 Module

The tool can also generate Victoria 3 mods. This is still experimental, as some map features are not yet generated. However, visual terrain and provinces, states, regions, countries and more can already be generated. ingamevic3nc A fully random map in-game

Advanced Features

TODO

General Note

Detailed documentation on its use, with visual guides, is in the RandomParadox_Documentation.pdf.