C# App for Geographical Map Generation

Job ID: 38644708

Budget: $30 – $250 USD

I'm in need of a C# console application designed for the Windows platform. This program should be capable of generating geographical map data and creating a corresponding image in PNG format. Deliverables include:
- C# Source in a Visual Studio Project and Solution (2022 or earlier, with 2022 preferred)
- .NET (not .NET Core) 8.0 or earlier with 8.0 preferred
- I'll be using MySQL version 5.5.36 so any queries must work with that version.

The world generated will be made of "chunks" similar to a minecraft map and I'd like to be able to specify the square size in pixels on the map. For example, if set to 4, then chunks would be 16 pixels (4x4) in size on the map image. Map data is generated into a MySQL table and then used to create the image afterward.

So to be clear, the application generates a complete world's MySQL data and then a map image. We're not concerned with underground or underwater areas, we're just painting the broad strokes of the terrain.

Options I want to be able to configure either in the code (I am a developer) or in a config file include:
- Height and width of the world as measured in chunks
- Chunk size (how many pixels wide/high a chunk is once it's exported to the PNG map)
- List of biome names
- List of colors associated with each biome
- List of percentages for each biome so I can adjust the weight of biomes. This includes ocean.

To be considered a successful project, the following properties of any generated map data / image must be true:
- Every run of the application generates a random world.
- Every world obeys any configuration options as previously listed.
- Biomes are grouped in a reasonable way so that large forests or sprawling plains and so on can and often do exist, instead of merely random biomes scattered with no rhyme or reason.
- Biomes simulate warmer climates at the equator, colder biomes near the poles and polar caps.
- Map edges either perfectly match up as a real globe would, or map edges are avoided in a way that looks natural (that is, no sudden and abrupt cutoff of land just to avoid edges.)
Related categories: .NET C# Programming MySQL