A utility to allow creating maps for GearCity based on real demographic data
Add the turn events emptier.
Create the Great Lakes branch.
Nerf cities that don't have any popdata (the pre-existing ones in central/eastern Europe).  This prevents them from dominating economically/pop-wise if they grow at high 1900 rates for several decades.

heads

tip
browse log

clone

read-only
https://hg.sr.ht/~adj/GearCityMapCreator
read/write
ssh://hg@hg.sr.ht/~adj/GearCityMapCreator

#What is this?

This is a Java-based utility (with a SQLite database dependency) that helps automate the creation of custom modded maps for the game Gear City. It aims to allow you to focus on adding the demographic data, while it handles creation of and updating of the XML files.

#How does it compare to...

#The XML Files

The main downside of editing the XML files directly is that you have to add city info to each of the city files. It's not too bad if you only use 1900 and 2020 files, but if you want dynamic growth in between, it quickly becomes tedious.

This utility will (soon) allow automatically creating all the intermediary files based on as accurate of demographic data as you have. If you only have two data points for some cities, that's okay, but if you have 13 data points (for each decade), it'll handle all of that, all you have to do is enter the raw data in a database.

#The Mod Tools

If you just want to add a city or two, you should use the official mod tools.

The downside of the mod tools is that you have to manually update the data for each city file. It's also all too easy to forget to click that "Save" button after each update.

The mod tools do offer dynamic calculatio of growth rates, which is nice. This utility is currently in the process of adding that.

#What does it offer that other options don't?

#Region-focused population calculations

One of my goals was to do a hybrid region/city setup, using cities on the map but regional demographic data, which is often easier to find, and allows entire populations to be represented.

Thus, the utility will automatically calculate the share of the regional population allocated to each city. If you've added 3 cities from a region, and they have 60%, 30%, and 10% of the total population, then the overall regional population will be distributed to those cities in those proportions. Thematically, everyone in the region will buy their cars in one of those three population centers.

#Better Automation of City Images and Longitude/Latitude Info

You can set an image for a city and lat/long info in the SQL database, and the utility will know how to hook those up into the XML files. With a few more updates, it'll do this for all the XML files, you won't have to add the info manually in each one.

#City Images?

City images can be added to customize the UI. Currently this is a somewhat manual process, in part by necessity, as choosing an image and scaling it to 256x64 resolution is inherently manual. They are then converted to DDS format by Paint.NET or Aorta, stuck in a .zip file, and added to mods.

For now the only part that this utility helps with is linking up the file in the XML file, but this will gradually be expanded.

#What doesn't it do yet?

It doesn't yet fully offer the type of interpolation capabilities that the mod tools do. This is a work-in-progress, although it is hoped that it will soon exceed the mod tool's offerings in this area.

It also has a couple sections, notably regional info, that's a bit hard-coded-tailored to my Europe scenario.

#What might it do in the future?

I expect to eventually add features around setting up only a subset of the city database. E.g. you can set a maximum number of cities (for performance reasons), or only add cities from a certain area, for a more focused map.

#Hey, didn't you say there's a database?

There is. It's being updated frequently. Send me an e-mail at gearcity (at) ajtjp.com to ask for the latest copy. It's binary and changes a lot so it's not a great fit for source control.

Longer term, the goal is you can simply add demographic info, configure a few knobs and dials, and have a scenario. It won't be quite that simple as there are a few non-data-related steps, but it should allow you to focus less on updating XML and more on collecting demographic info.