REX / M2EX - 13/06
The headline this time is a full I/O rework: much faster loading, a new v4 pack format that compresses way better, and the official pack tool (command-line tool plus a 7-zip plugin) replacing the old random community scripts.
Important: old REX/M2EX saves still load. As usual, new saves use a slightly upgraded format and are not backward-compatible in older versions.
I/O, Pack Format & Tools
- Implemented a major I/O rework. Game loading performs much better as a result (RTW/M2TW)
- Added a new v4 pack format with much improved compression. M2's localized.pack drops from the retail 2.19 MB to 0.86 MB (~3x smaller), and data_4.pack goes from 350.4 MB to 248.3 MB (29% smaller) (RTW/M2TW)
- The pack format now supports archives larger than 4 GB (64-bit) (RTW/M2TW)
- Pack archives can now be written, not just read (RTW/M2TW)
- Replaced the old CA packer/unpacker with a new pack tool, available both as a Vercingetorix-style command-line tool and as a 7-zip plugin. Both are bundled with the game (RTW/M2TW)
- The 7-zip plugin reads and writes RTW .pak, M2TW .pack and the new v4 .pack. To install it, copy it into your 7-zip install's Formats folder (you may need to create the folder first), or run the bundled PowerShell script if you can't find your Program Files (RTW/M2TW)
- Both REX and M2EX support all three formats (RTW/M2TW)
- This is the first release in the first-party tools department. No more janky corrupting community scripts, with more to come ;) (RTW/M2TW)
Battle: Combat & Sieges
- Reworked how elephants and chariots trample infantry. Lethality and knockback now scale with the mount's mass and charge speed, so they devastate troops on a fast charge but bleed speed and bog down as they plough through, instead of charging forever (RTW/M2TW)
- Braced infantry now slows a charging elephant or chariot roughly 4x faster than loose infantry (RTW/M2TW)
- Trampled men are now flung along the direction the mount was actually charging, instead of being randomly shoved sideways (RTW/M2TW)
- Fixed wall towers not firing in historical and scripted battles. The loader was ignoring the towers setting in descr_battle.txt and forcing every city's towers off (RTW)
- Boiling-oil gates and gate strength now respect the gate_defences and gates settings in scripted battles, instead of being silently turned off (RTW)
Campaign & AI
- The Campaign AI now concentrates its resources on its current wars, prioritising its offensive armies toward the front where it is at war instead of losing focus to nearby lucrative regions. For mods, invade_priority in descr_campaign_ai_db.xml and the invade type (invade_opportunistic, invade_immediate, invade_buildup) now have a stronger effect (RTW/M2TW)
- The Campaign AI now counts its nearby armies when deciding to siege or assault a city or castle, so heavily garrisoned settlements are no longer effectively siege-proof. For mods, siege_att_str_modifier in descr_campaign_db.xml still drives the decision point at which the AI sieges, now with the knowledge that it can do so with multiple armies (RTW/M2TW)
- The Campaign AI now considers the armies it has marching toward a war target during its objective calculations, instead of only counting an army once it reaches the destination. This stops a single settlement from soaking up many armies of one faction that previously couldn't account for each other en route, and stops AI armies from milling around a region for a couple of turns before they assault (RTW/M2TW)
- The Campaign AI can now far better operate factions with many full-stack armies (think Mongols and Timurids), including pursuing multiple sieges in the same turn and handling multiple war fronts at once (RTW/M2TW)
- The Campaign AI no longer orphans its armies after a successful crusade or jihad (RTW/M2TW)
- Fixed the AI's "can I get there by sea?" check, which was comparing a land mass against itself instead of against the destination, so cross-sea invasion and naval transport decisions now actually look at the right land (RTW/M2TW)
Graphics & Rendering
- Fixed battlemap water, roads and paths not being fogged along with the rest of the scene (M2TW)
- Fixed corpses vanishing near the left and right screen edges on ultra-wide monitors (RTW/M2TW)
- Fixed soldiers vanishing near the left and right screen edges on ultra-wide monitors (RTW)
- Soldiers no longer get near-plane clipped (i.e. disappear) when you zoom the camera right into their faces (RTW/M2TW)
- Fixed the "wall shadow bug": crumbling walls, gates and towers casting no shadow at all during their destruction animation (M2TW)
- Fixed the fog_of_war_shroud vanilla style making the sea toothpaste blue (RTW/M2TW)
- Added a third fog_of_war_shroud style, cloudy: a haze that hides the detail of unexplored terrain without going fully black. The options are now black (default), vanilla and cloudy (RTW/M2TW)
Camera & Controls
- Fixed single units no longer being alt-draggable (RTW/M2TW)
- Fixed ungrouped units deforming after an alt-drag while on the move. They now land exactly where the preview showed (RTW/M2TW)
- Ctrl-rotation during an alt-drag now works reliably on grouped units (RTW/M2TW)
- Fixed a stray selection box appearing after cancelling an alt-drag with the right mouse button. Cancelling now keeps your current selection instead (RTW/M2TW)
UI & Settings
- The family tree screen now shows every family a faction has, not just the first one. Factions with more than one family in descr_strat get a tab per dynasty to switch between them; single-family factions look exactly as before (RTW/M2TW)
- Made battle unit banners bigger and kept them readable when zoomed out, instead of shrinking to practically invisible (RTW/M2TW)
- Fixed existing buildings showing the wrong icon, and the whole chain vanishing from the building browser, in cities where you gated the chain with and not hidden_resource. Buildings you've already constructed now keep their card even when a condition later forbids building new ones (RTW/M2TW)
- Fixed undiscovered settlements, forts, ports and watchtowers showing up on the RTW campaign map as white blobs marking every city you shouldn't know about yet (RTW)
- The battle editor is now available from the menus by default. Mods can hide it again with features.editor = 0 in the cfg (M2TW)
- Wired up borderless windowed properly for RTW: DISPLAY_MODE: WINDOWED|BORDERLESS|FULLSCREEN in the preferences (RTW)
Multiplayer
- Fixed a bug that sometimes stopped players from joining multiplayer matches (RTW)
Modding: descr_strat
- Added a house_name token for characters in descr_strat, e.g. house_name "von Habsburg", placed on the heads of the houses. It accepts a literal string like house_name "House of Habsburg" or a localisation key like house_name habsburg resolved from expanded.txt (e.g. {habsburg} House of Habsburg) (RTW/M2TW)
- Added turns_per_year and seasons to descr_strat, so a campaign can run any number of turns per year instead of the hardcoded 2. Example: turns_per_year 12 with seasons winter winter spring spring summer summer summer summer autumn autumn winter winter (12 entries). Omit the seasons line and they divide evenly (RTW/M2TW)
- Characters now age once per game-year instead of on every summer turn, so character ages and natural deaths stay correct at any turns-per-year setting (RTW/M2TW)
Modding: Traits
- Added LethalAntiTraits to the EDCT, a drop-in alternative to AntiTraits. Gaining any points of a listed anti-trait removes this trait outright instead of draining it point-for-point, which is how anti-traits behaved in original RTW before the anti-trait fix (RTW/M2TW)
- A trait can carry both an AntiTraits and a LethalAntiTraits line, in any order (RTW/M2TW)
Modding: Projectiles & Area Effects
- Added airburst <area_effect> to descr_projectile, which aims above the target and detonates overhead for projectile area effects (M2TW)
- Added inherit_velocity true for projectile area effects in descr_area_effects, so spawned subprojectiles take their speed from the parent projectile's velocity range instead of their own (M2TW)
Modding: Data Loading & Error Handling
- Fixed logspam when a faction's religion in descr_sm_factions does not match any entry in descr_religions. The game now logs one clear line at load, naming the offending faction, instead of flooding the log on every settlement (M2TW)
Stability & Crash Fixes
- Fixed a battle-load crash when vegetation model textures were larger than 512x512 (e.g. resized to 1024). The texture atlas now sizes itself to the textures instead of overrunning a fixed one (M2TW)
- Fixed an end-of-turn crash where the AI could sabotage an enemy building that got destroyed earlier the same turn (settlement captured, razed or upgraded), leaving a stale subterfuge mission pointing at freed memory (RTW)