Huge update time. Here's R25 Preview 1:
https://github.com/maxpetul/C3X/releases/tag/Release_25_Preview_1
Changelog:
- Increase city limit to 2048
- Setting named lift_city_limit, included in new "Limits Removed" section with other limit increases/removals
- Enable tile graphics to cycle over day and night, see "Day/Night Cycle" section of default config for details
- Allow Civilopedia descriptions for units, civilizations, and game concepts to span multiple pages
- Can adjust time to double building culture, setting named years_to_double_building_culture
- Option to prevent units from upgrading past an intermediate type that does not have the upgrade ability
- Setting named prevent_old_units_from_upgrading_past_ability_block
- Can adjust times to generate tourism gold, setting named tourism_time_scale_percent
- Option to put all human players in contact with each other at the start of a hotseat game
- Setting named introduce_all_human_players_at_start_of_hotseat_game
- Double size of minimap when running in high definition (>= 1920 horizontal pixels), setting named double_minimap_size
- Option to show some popup messages as online-multiplayer-style notifications
- Setting named convert_some_popups_into_online_mp_messages, off by default, see config for which popups are affected
- Option to switch debug mode on or off for games in progress
- Setting named enable_debug_mode_switch, off by default, see config for how to use in-game
- Fix AI players being able to sacrifice units that don't have the sacrifice special ability set on their type
- Option to tint coast and sea tiles on minimap based on cultural borders
- Setting named show_territory_colors_on_water_tiles_in_minimap, off by default
- Do not charge maintenance for buildings provided for free by shared wonder effects
- Option to draw small shadows underneath city dots on the minimap to make them more visible
- Setting named accentuate_cities_on_minimap, off by default because it doesn't quite work properly
At long last, the city limit is lifted. I'm quite happy with that, it was by far the most requested mod feature, and ended up being a fun little technical challenge. I'll write out all the details later when I have time.
Another big addition in R25P1 is the day/night cycle. This varies all the tile graphics through 24 stages from noon to midnight and back again. Here's what it looks like:
It can optionally be set to advance at the end of each turn, after a certain amount of time has passed, or based on real world time. This feature was developed mostly by
@instafluff . It's the first time someone other than me has contributed code to this project, so that's remarkable. Thanks very much to instafluff. The day/night cycle graphics have to be downloaded separately as including them in the main download would add hundreds of megabytes:
Civ 3 map art transitions to different hours of the day, like Civ 6
The last thing I want to show off is the updated minimap. Here's what it looks like:
(In case you're wondering how many cities that is, it's 1317.) You'll get the double size whenever the game is running at an HD resolution, defined as a horizontal resolution of at least 1920 pixels. But the larger minimap can be configured also to appear all the time or never. There's also the option to accentuate the city dots on the minimap with a subtle drop shadow. I like how that looks and it helps make the city dots more visible against light colored territories. Unforunately it doesn't work quite right so that option is left off by default. The issues it has are (1) that it sometimes doesn't fully appear until you refresh the minimap by switching from territory to geography mode and back, and (2) the shadows appear in geography mode. Rather than delay R25P1 to deal with those minor issues, I left it off by default.
Well I'm really liking the uniform system based on shield cost, I don't think I would use a Lua script to customize further even if it was available, even though I can't get exactly the maintenance costs I want. In case other people are interested, as a half measure one can use the formula "1 + [shields/11]" which approximates "[shields/10]" for multiples of 10 until you hit 120 shields.
One of my hopes for Lua is that it will let me handle small requests like this much faster, even if you aren't interested in writing a script yourself. Changing the formula for unit maintenance in such a small way should be possible with a script of 10 lines or less. With Lua, I could very quickly write that for you and post the script file to be dropped in your scenario's scripts directory. Then we wouldn't have to wait weeks or months for the next release and wouldn't have a new config option with its own name and description for something so minor.
Given that the game can render on both high and low resolutions and tracks the screen size internally, I wonder if this could be done by overwriting the internal screen size values and triggering a redraw. I suppose the tricky thing would to be ensure the rest of the UI elements would remain the same size.
I doubt the game would then scale the image to the actual screen size. You'd likely have to do that part manually, have the game draw the map to an off-screen canvas then scale and draw that in place of the map on the actual screen. Another problem is that you'd have to modify the logic for clicking on tiles, which was only written for the two zoom levels. There may be other things like that that would need to be modified, though I can't think of any right now.