github Pannoniae/rex 17/08

4 hours ago

REX / M2EX - 17/08

Two months since the last one, so this is a big one. <3 The most important part is the graphics overhaul... here's the quick summary.

  • Range indicators to see how far your units can fire. Adapts to the terrain in real time and it's a 360 degree circle, unlike the static cones in Rome Remastered :cheetah_sad_classic:
  • Unit silhouettes - kind of similar to the Men of War ones - to see units behind trees and whatnot. Forest battles enjoyable again.
  • The game has been updated to DX11, making extreme settings actually playable instead of having it be a stutterfest.
  • Added HDR / a linear pipeline so shadows look quite good.
  • Added cascaded shadow mapping (CSM) - your shadows are actually crisp now and a lot more things cast shadows where they just used to darken the terrain a bit in a blob.
  • Retuned the lighting completely for HDR so the lighting looks real moody and hugely varied instead of mostly the same stuff.
  • Increased visibility a lot by pushing fog back, and implemented proper height-based fog blending so it doesn't look like literal Oblivion.
  • Added a modern PBR texture and shading pipeline, your units have never looked better under reflections and light.
  • Added LOD fading to most things so LOD popping is minimised.
  • 360 degree-rotatable campaign camera, and rewritten the campaign renderer to support vastly bigger zoomouts + much smoother campaign controls.
  • Added (optional) unit cards and unit icons, like in Attila for example when you press space to see your units at a glance. This is off by default.
  • Dynamic lights - torches, fire arrows and flaming show now actually illuminate the terrain and the surrounding units.
  • Added blood pools.
  • Fixed the "spear bug", the "high-ground bug" and other annoying things.
  • Fixed the "retrain bug" where it voided your XP.
  • Battle speed can now go from 0.5x to 12x.
  • Clicking on empty ground now deselects units.
  • CAI overhaul, they now have personalities and their diplomacy massively improved.
  • Added shadows/AO to the campaign map, hugely boosting the visual quality.
  • Added a bunch of script commands.
  • Climate uncap.
  • Lots of crashfixes and optimisations.

Big thanks to TMAC (campaign AI), GIGAS ALEXANDROS/Justin (unit attributes, range rings, blood pools), Chris (battle controls, console commands, forts, UI) and Klargus. <3

Important: old REX/M2EX saves still load. As usual, new saves use a slightly upgraded format and are not backward-compatible in older versions.

Graphics: DX11, HDR & Lighting

  • Ported the whole renderer from Direct3D 9 to Direct3D 11. D3D9 is gone, everything below sits on top of this. (RTW/M2TW)
  • The whole pipeline is gamma-correct now (linear-light shading and texturing), rendered into an HDR scene buffer with a proper tonemapper. Fixes a pile of precision/contrast bugs and banding, and bright saturated colours no longer wash out toward white when the scene gets bright. (RTW/M2TW)
  • Added HDR monitor output. Autodetected on an HDR desktop, or force it with video.hdr in the M2 prefs / HDR in Rome's preferences.txt. Needs a restart, obviously. (RTW/M2TW)
  • Lights are fully dynamic now: torches, fire arrows, flaming shot, burning buildings etc. actually light up the ground and the men around them, per-pixel. There's a video setting for the light cap. (RTW/M2TW)
  • Unified battle lighting so terrain, grass and units share one lighting model which is 2.9x more poggers than the previous one. (And yes, I kinda remade the lighting/shading again after that, but yeee.) (RTW/M2TW)
  • Remade most of the battle lighting environments in both games to restore the lovely janky look of the originals, so you can enjoy your oversaturated Oblivion piss filter in an authentic remastered version. (RTW/M2TW)
  • Overhauled battle shadows with a modern cascaded shadow map system. Everything casts and receives shadows now: units, vegetation, buildings, siege engines, terrain. Quality tiers from Low to Extreme, draw distance up to ~2.6 km on Extreme, fading out instead of just disappearing. (RTW/M2TW)
  • Added PBR material support: diffuse, normal, roughness, metallic, ambient occlusion and emissive. See the modding section for the texture format. Old and new assets coexist, unlike Rome Remastered where everything has to be PBR. (RTW/M2TW)
  • Distant terrain is now real textured terrain with higher geometric detail, instead of the blurry vertex-coloured mess in the distance. (RTW/M2TW)
  • Everything is mipmapped and aniso-filtered now, battle and strat, and foliage uses alpha-to-coverage under MSAA. No more grainy stratmap or shimmer-hell trees. Also shipped higher-res stratmap textures. (RTW/M2TW)
  • New bloom pipeline, no more shimmer or undersampling, plus dithering so gradients don't band. (RTW/M2TW)
  • Implemented LOD fading for everything, meshes to sprites, units to vegetation to buildings. There should be staggeringly less pop-in :P (RTW/M2TW)
  • Battle lighting is moddable as plain text now: the globallighting .lighting binaries became .txt files. Rome gets the globallighting system too (it never had one). (RTW/M2TW)

New Features

  • Added range rings for ranged units. Select a ranged unit and its firing radius is drawn on the ground, following uneven terrain, and it disappears when the unit runs out of ammo. It's the TRUE firing radius from the actual projectile physics, not some approximate circle. To everyone who said accurate range indicators with physics-based arrows were impossible, the laugh's on you ;) (RTW/M2TW)
  • Added an HP display for single-entity units. (RTW/M2TW)
  • Added blood pools. Every kill leaves a pool with a random shape, direction and spread time, and blood flows further on slopes. Pools fade out as the oldest ones expire instead of vanishing the moment the limit is hit. Toggleable and purely visual. (RTW/M2TW)
  • Added unit silhouettes like in Men of War, those bloody trees no longer make your units invisible. Blue for your own units, red for the enemy. The outline traces the unit's exact shape (so no spazzing) and doesn't draw through its own banner, siege engine or pikes. (RTW/M2TW)
  • Added a "highlight all units" feature to Rome, like Medieval II's: hold Space or press the faction button to flash all your units. The faction button now highlights instead of zooming to the general; alternate_battle_ui_flash in descr_ex switches it back. (RTW)
  • Added optional unit cards or small unit-type icons floating above your units while highlighting (Space), showing the unit's status, ammo and health. Both are checkboxes in the esc-menu graphics options, off by default. Also works in battle replays. (RTW/M2TW)
  • Added formation attack (Ctrl+Shift+right-click): selected units each attack the best target directly in front of them, so they engage 1:1, and ranged units move into range and fire. Clicking empty ground makes them find a target or move there, similar to attack-move. (RTW/M2TW)
  • Unit grouping (G) now creates a free formation you can drag and reshape, instead of a locked group that needed unlocking before it did anything. Ctrl+G makes a locked group that holds its shape (orders_group_locked in descr_shortcuts.txt). (RTW/M2TW)
  • Added a hide-UI toggle: press Scroll Lock (or K for laptop users) to hide the interface on the campaign map. On in battle too, who cares. :P Controls still work while hidden. (RTW/M2TW)
  • Unlockable factions are now playable straight away, so you no longer have to win a campaign / defeat them (or cheat and hand-edit unlocked.txt or descr_strat). There's a descr_caps_ex option to restore the old behaviour if you prefer earning them. (RTW/M2TW)
  • Added mount and animal variation: descr_mount.txt and descr_animals.txt can now list several models instead of one, and every horse, camel, elephant, wardog and pig gets a random one from the list. #pinkhorses (RTW/M2TW)
  • Added permanent forts to Rome. Set the permanent switch via the console command or descr_strat, same as Medieval II (no variant since Rome has no fort models). (RTW)

Performance

  • Cut campaign map VRAM usage from like 1-2 GB down to 15 MB by finally not being a bellend. Optimisation, babyyy (RTW/M2TW)
  • Fixed campaign map scrolling hitching and city names glitching by preloading the area around the camera. Campaign ground textures are also all created up front instead of on first sight. (RTW/M2TW)
  • Optimised the Extreme video settings a bit more, so people who disregard our friendly advice and use them anyway get a slightly less insane framerate :P (RTW/M2TW)
  • Added a process priority boost (above normal) so the game wins CPU time over background apps. On by default; disable with process_priority_boost in the M2 prefs or PROCESS_PRIORITY_BOOST in Rome's preferences.txt. (RTW/M2TW)
  • Optimised blood pool rendering a lot. (RTW/M2TW)

Battle

  • Fixed the "spear bug", spearmen kinda just yeeting everything and not dying. (RTW/M2TW)
  • Fixed the high-ground bonus. Yea, did you know high ground didn't work in vanilla Med2? Uphill men whiffed their strikes before the combat rules even rolled, so you lost fighting downhill. (RTW/M2TW)
  • Fixed non-instaquit defensive sallies counting as a loss. Sallying out, fighting, then pulling everyone back behind the walls now ends in a draw and the siege continues, instead of auto-resolving your depleted garrison into a defeat. Note: if you quit before 30s have passed it's still an instaloss... (RTW/M2TW)
  • Fixed units not showing veterancy chevrons earned in a battle until you saved and reloaded. (vanilla bug lol) (RTW/M2TW)
  • Fixed the unit markers (the green circles under your soldiers) sinking into terrain and vanishing, especially zoomed out or at low camera angles. (RTW/M2TW)
  • Fixed units sometimes snapping back to their default width when multiple move commands were issued. (M2TW)
  • Fixed queueing a convert/upgrade multiple times on the same unit stacking the men multiple times, and crashing the battle later. (RTW/M2TW)
  • Fixed unit retraining never giving the XP in settlements where you can retrain for XP. I'm sure many of you know about this bug :P (M2TW)
  • Fixed retraining a unit being able to push it over the normal entity limit. (RTW/M2TW)
  • Removed the general bodyguard entity cap. (RTW/M2TW)
  • Battle speed levels are now paused, 0.5x, 1x, 2x, 4x, 6x, 8x, 10x and 12x. (M2TW)
  • Fixed unit banners staying on the battlefield forever after the unit was wiped out or routed off the map. Banners on manned towers and gatehouses now hide along with the unit manning them. (M2TW)
  • Fixed dead horses getting back up and galloping like an actually alive horse casually walking through the ground, and dead horses being spinny. Dead horses now lie onto the terrain instead of clipping through hillsides. Spinny honse fixed, for real this time. (M2TW)
  • Fixed abandoned siege ladders spinning in place because they were playing some rando unit's animation. (M2TW)
  • Fixed abandoned ladders snapping flat onto the ground the instant the carriers died. They fall over properly now, animated and stuff :P (RTW/M2TW)
  • Fixed a ladder lying on the ground keeping the collision it had while standing up. (RTW/M2TW)
  • Fixed soldiers stepping off siege towers and ladders onto walls moonwalking in mid-air or drifting sideways. (M2TW)
  • Fixed soldiers occasionally being placed onto a wall or platform at the wrong height. (M2TW)
  • Fixed soldiers pulled off a ladder mid-climb by a new order or by melee getting stuck endlessly climbing on the spot. (M2TW)
  • Fixed units pulling their torches out in broad daylight. Night now starts at 19:00 instead of 17:00, matching the actual lighting periods rather than a hardcoded 2004 hour. :P (M2TW)
  • Fixed unspotted enemy units still showing their torches through the fog of war, a hilarious infoleak. (RTW/M2TW)
  • Custom and editor battles set to Sunrise or Sunset no longer count as night battles, so no torches or flaming ammo. Pick Night if you want a night battle. (M2TW)
  • Adjusted the auto-resolve calculation to more often end in victory for an attacker (AI or player) with twice the defender's forces. (RTW/M2TW)

Battle: Sieges & Deployment

  • Fixed artillery deploying in the very front rank in siege and sally battles, parked exactly where the wall towers shoot it immediately. It now forms up behind the archers so the BAI doesn't suicide them in anymore :P (M2TW)
  • Fixed the besieging army's deploy distance always being measured from the best tower tier a wall level could ever have, instead of the tier actually built. Assaulting a wooden palisade no longer starts you as far out as a citadel. (M2TW)
  • Fixed some formation blocks being placed too far forward in deployment. (RTW/M2TW)
  • Shared deployment now works in siege battles and ambush battles. (RTW/M2TW)
  • Fixed river battle deployment zones being drawn over gaps in the land, like lakes, instead of cutting them out. (RTW/M2TW)
  • Fixed starting a battle while zoomed in on the campaign map fullsending the camera under the bloody map. The battle intro zoom is proportional now: the closer you were, the less it zooms. (RTW/M2TW)

Battle Controls & Camera

  • Left-clicking on empty ground now deselects all units. (M2TW)
  • Added Rome-style Ctrl+left-drag to add units to the current selection. Ctrl+drag adds without deselecting what you already had; Ctrl+Shift+drag deselects. (RTW/M2TW)
  • Reduced the minimum right-click drag length for drawing out a unit formation by 75%, so it doesn't need such a long drag to trigger. min_rightclick_drag in descr_ex adjusts it. (RTW/M2TW)
  • Skirmish and fire-at-will buttons now always show as long as at least one selected unit has that ability, instead of hiding when a melee unit or an out-of-ammo unit is in the selection. Right-clicking the guard, skirmish or fire-at-will buttons turns that state off for every selected unit that has it. (RTW/M2TW)
  • Double-tapping a control group hotkey now snaps the camera to the first unit in the group, keeping the current camera height and rotation. (RTW/M2TW)
  • Added snap_battle_camera to descr_ex: double-clicking a unit or unit card snaps the camera to it without changing height or rotation. Off by default. (RTW/M2TW)
  • Fixed battle camera smoothing being framerate-dependent. The strat camera was already good (cuz I made it later, duh) but now the battle camera has been retrofitted too :P Added camera.battle_smoothing_halflife / BATTLE_SMOOTHING_HALFLIFE to the preferences (default 0.0167); lower is snappier, 0 turns smoothing off. (RTW/M2TW)
  • Fixed the "highlight all units" button retriggering when pressed while already active; it now stops the highlight instead. (RTW/M2TW)
  • Lowered the default unit highlight alpha from 127 to 80 so the flashing isn't so bright. Added descr_ex options for own, allied and enemy highlight colours, plus an option to use faction colours instead. (RTW/M2TW)
  • Added unit_flash_duration, unit_flash_frequency and unit_flash_intensity to descr_ex to tune the flashing UI buttons. (M2TW)
  • Fixed selected units being washed out to near-white. The highlight brightens them now instead of good old bleach... (RTW)
  • Fixed the Range Indicator video option not applying to the current battle; it now takes effect immediately. (RTW/M2TW)

Campaign Map & Camera

  • Completely reworked the campaign camera into something like the battle camera. You can rotate it in any direction, tilt it up and down, and it no longer changes angle when you zoom. Max zoom-out is roughly tripled. (RTW/M2TW)
  • Camera rotation uses the same keys as battles (WASD/arrows, Q/E and R/F on the FPS layout). Middle-mouse drag freely rotates the camera like in battle; the old middle-mouse map pan moved to Ctrl+MMB. Right-click drag pans the map when nothing is selected. (RTW/M2TW)
  • Added a cam_reset shortcut (default End) that resets the campaign camera to north-up at the default zoom. (RTW/M2TW)
  • The camera rotation speed slider in options now applies on the campaign map too. Scroll and rotation speeds scale with zoom level, so panning at max zoom-out is no longer glacial and rotating at max zoom-out no longer causes brain prombles and epilepsy. (RTW/M2TW)
  • The "enter battle" camera animation now starts from wherever your camera actually is, instead of snapping to max height first and making you feel spazzy af. (RTW/M2TW)
  • The campaign camera angle is now saved with the campaign, so you don't have to re-tilt it every time you reload. (RTW)
  • Fixed the middle mouse button not rotating or panning the campaign camera while a scroll was open. (RTW/M2TW)
  • Ofc all the camera constants (angles, rotate/pan speed, min/max zoom, yk) are freely moddable in descr_ex. Added camera.campaign_yaw_default, camera.campaign_yaw_min and camera.campaign_yaw_max preferences (degrees from north) so mods whose strat models have no backs like a whore, sorry I mean those mfs who were too lazy to complete their models from behind, can limit or pin the rotation. The map editor ignores the limit (it's a fucking editor, duh). (RTW/M2TW)
  • Restored the character speed-up: pressing Space on the campaign map speeds up character movement again like it used to. Death animations on the campaign map are no longer skipped. Added game.campaign_map_game_speed / CAMPAIGN_MAP_GAME_SPEED for the speed-up rate, default 5x. (RTW/M2TW)
  • Moved the finances scroll hotkey from F to G so it no longer fights with the camera pitch control. (RTW/M2TW)
  • Fixed multi-turn movement orders being silently cut short after 4 turns. (RTW/M2TW)
  • Fixed disasters never going away. A flood would get stuck for the rest of the campaign: water on the map forever, doubled movement cost across the whole region, forts and watchtowers permanently unbuildable there. Floods now clear after a turn, and already fucked saves with a stuck flood heal themselves at the next end of turn. (RTW/M2TW)
  • Fixed weak floods (scale 1 or 2) doing nothing at all, and strong ones (scale 5 or 6) being savescummable by reloading. max_scale in descr_events.txt is now clamped to its intended 1 to 6 range. (RTW/M2TW)
  • Fixed slave resources (like the one in Timbuktu) vanishing from the campaign map after loading a save; the resource itself was still there, just not shown. Any already yeeted ones in existing saves get fixed up too. (M2TW)
  • Fixed a vanilla bug causing armies to quietly vanish when a region's contents were recalculated. (RTW/M2TW)
  • Fixed the settlement capture options (occupy/sack/exterminate) being closed by the start-of-turn report when you took a city. Capturing more than one settlement in a turn now prompts for each of them, the end turn button is disabled while a capture is still undecided (previously it just picked occupy), and the camera moves to the captured settlement so you can see which KINDRED SOULS you are about to exterminate. (RTW/M2TW)
  • Fixed scrolls pushed aside by an event message sometimes never coming back. (RTW/M2TW)
  • Fixed the victory conditions panel showing a nonsense negative goal like "capture -24 more regions" once you'd hit the territory target but the win screen hadn't fired yet. It now reads "Victory conditions complete" instead of telling you to go lose two dozen cities LOL (RTW/M2TW)
  • Fixed an infinite money exploit where queueing a building for demolition paid you immediately and cancelling let you keep the money. Repeat ad infinitum. The money now only arrives when the demolition actually finishes. (M2TW)
  • Fixed the "highlight bug" where hovering over one settlement, character or resource highlighted all of them. (RTW)
  • Fixed the campaign map going black (except the settlement labels) when coming back from a battle. (RTW/M2TW)
  • Fixed the campaign map shoreline waves glitching when you moved the camera. Vanilla bug, just nobody could see it through the 30fps godawful chunky scrolling :D (RTW/M2TW)
  • Fixed character ageing appearing to stop in mods running more than 2 turns per year, like EB2. Ageing, harvest and old-age death are back to the classic vanilla timing by default, so generals and family members age and die like they did before. (RTW/M2TW)
  • Fixed the College of Cardinals slowly emptying over a campaign. AI factions only recruited priests while they had regions left to convert, so cardinals died off without replacement and eventually a dead pope had nobody to succeed him. All Catholic AI now keeps recruiting priests while the college has empty seats. (M2TW)
  • Fixed the slaves-gained bonus not applying to population growth. (RTW)
  • Fixed two rare hangs/hard-freezes at end turn after a faction gets destroyed, both to do with destroying its characters. (RTW/M2TW)

Campaign AI: Diplomacy Personas

  • AI factions are now assigned a diplomacy persona: loyal, steadfast, neutral, opportunist, treacherous or random. Set it in descr_strat on the faction personality line, e.g. balanced smith steadfast; it defaults to neutral if omitted. Personas are save-compatible; existing saves get every AI faction defaulted to neutral. (RTW/M2TW)
  • Loyal never betrays an alliance, steadfast rarely does, neutral will if a great opportunity arises, opportunist will if it's beneficial, and treacherous betrays often. Breaking an alliance weighs faction power, settlement value, expansion opportunity and so on. (RTW/M2TW)
  • M2EX's descr_strat sets every AI faction to random (except the Pope, who is loyal). The random weights are adjustable in descr_strat (default 15/42/25/18 for steadfast/neutral/opportunist/treacherous) and rolled once per faction at campaign start, so every campaign feels different and factions other than Milan get to be menaces. (RTW/M2TW)
  • Fixed the player's own faction being assigned a persona when using random. Sorry to the guy who rolled treacherous and lost all his alliances. (RTW/M2TW)
  • Julii, Brutii, Scipii and the Senate won't betray each other regardless of persona until the civil war. Persona still affects their relations outside the coalition. (RTW)
  • Long-standing alliances (20+ turns) are worth more to the AI, making it less likely (not impossible) to break them. (RTW/M2TW)
  • An alliance formed by a princess marriage makes the AI less likely to betray it regardless of persona, so princesses can be the cornerstone of a game-long alliance. (M2TW)
  • AI factions now grow wary of a much stronger neighbour and seek alliances with other adjacent factions to strike at large empires. You can use this by asking allied AI factions to go to war with a big neighbour, and the AI will send you the same request. (RTW/M2TW)
  • Allied AI factions now coordinate wars: when an AI faction invades, it asks its allies (including you) to hit the same target. Strong coalitions can form depending on AI goals and relations. (RTW/M2TW)
  • The AI now seeks alliances with its neighbours while at war elsewhere, so it can focus on the front. (RTW/M2TW)
  • Fixed AI factions occasionally committing to invade a former ally without actually declaring war. (RTW/M2TW)
  • Fixed AI princesses acting like pick-me's for the nearest handsome foreign prince. They now follow a decision tree: with no heir, marry in-faction to secure the royal line; with an heir and a good royal-marriage alliance available, use the princess on a neighbour that makes a strong ally; otherwise marry in-faction to the youngest or most accomplished general. (M2TW)
  • When an ally declares war on another ally, the AI now picks sides based on alliance strength instead of always siding with the attacker. (RTW)
  • Added set_ai_personality <faction> <persona> as a console and script command. (RTW/M2TW)

Campaign AI: Military & Difficulty

  • Adjusted the difficulty scaling for easy/medium/hard/very hard. Removed the AI being forced to declare war on the player every X turns (on very hard that was every 2 turns), removed AI factions being forced into peace with each other to focus on the player, and removed the extra rebels and the player economy penalties (no more -15% on very hard). The AI still gets money/army/public order bonuses as difficulty rises and still finds your land increasingly attractive (easy 1.0x, medium 1.5x, hard 1.8x, very hard 2.0x), it just isn't railroaded into it anymore. (RTW/M2TW)
  • The campaign AI now builds siege equipment with every besieging army instead of only the main one when sieging with multiple armies. (RTW/M2TW)
  • Fixed the AI's auto-resolve stalling at certain settlements because it never built anything besides rams. (RTW/M2TW)
  • The AI no longer pulls away from sieges it was about to start, so attacking armies disappear from their assaults less often. (RTW/M2TW)
  • The AI better escorts its generals, heirs, kings and emperors, and better merges its land and naval armies when possible. (RTW/M2TW)
  • The AI holds larger garrisons in settlements struggling with public order. (RTW/M2TW)
  • Tuned AI naval invasions to stop spamming tons of one-unit navies. (RTW/M2TW)
  • Adjusted the Papacy's behaviour to be less likely to go on conquering sprees against excommunicated factions. Catholic AI factions are more wary of conquering Rome, or invading the Pope at all, unless they are a dominant power. (M2TW)
  • Added an automatic custom radius for campaign map settlements larger than one tile. Enemy generals besiege at the outermost layer of your model (wall, house, whatever) and friendly generals and agents pathfind around the same radius. The .tga still uses one tile per settlement, but campaign gameplay works around however large your settlement's model is, up to 8 tiles of radius. (M2TW)

Graphics & Rendering

  • Fixed shadow acne (units flipping between light and dark), and fixed flickery/striped shadows. (RTW/M2TW)
  • Clamped the shadow sun elevation to 10 degrees, so no more huge Rome-Remastered-style elongated shadows covering half the map. (RTW)
  • Fixed trees near the camera casting no shadow at all. (RTW)
  • Grass now receives shadows, so it no longer glows at full daylight under trees, and casts real shadows of its own. (RTW/M2TW)
  • Fixed a bunch of grass flicker on Extreme settings. (RTW/M2TW)
  • Fixed grass density visibly snapping when zooming, and rebalanced grass brightness against the surrounding terrain. (RTW)
  • Rome scenery (farm fields, trees, placed models, cottages) no longer fades out into thin air at distance. (RTW)
  • Fixed 3D trees drawing through each other instead of respecting depth. (RTW/M2TW)
  • Fixed trees vanishing in square chunks and popping in and out as the camera moved, most visible on Extreme vegetation detail. (M2TW)
  • Fixed distant unit LODs changing brightness when zooming in and out. (M2TW)
  • Fixed one random soldier or horse sinking into the ground because it was rendered with somebody else's pose. (M2TW)
  • Fixed unit torchlights pulsing VIOLENTLY in night battles, and soldier torches lighting the world white instead of orange. (M2TW)
  • Fixed torch models and their glow sprites ignoring the daylight fade, staying at full strength while the flame and light were invisible. (Technical note: projectile-type effects now honour effect scale like particles and lights do.) (RTW/M2TW)
  • Fixed banners being too bright under HDR rendering. (RTW/M2TW)
  • Fixed the "green trebuchets" and any other effects blowing out their colours, and fixed the saturated blue/green circles under siege engines and fire arrows in daylight. (RTW/M2TW)
  • Fixed the "square particles" bug, no more blocky trebuchets ;)) (M2TW)
  • Fixed water reflections being washed out. (RTW/M2TW)
  • Fixed placed models (farms, orchards) and roads sampling ground lighting differently from the surrounding terrain, leaving a visible line around them. (RTW/M2TW)
  • Fixed random patches of battle terrain failing to draw on slightly esoteric schizoid maps. (RTW)
  • Fixed a missing secondary texture making corpses white, and burnt corpses rendering with garbage textures. (RTW/M2TW)
  • Fixed the battle minimap rendering much darker than the actual battlefield. (RTW)
  • Fixed city view citizens rendering in random colours / invisible / other garbage / rainbow depending on where you looked at them from. (RTW)
  • Flame arrows got the arrow visibility improvements too. Not like they needed them, but regular arrows were sometimes more prominent than flame arrows and that's kinda cringe. Also crossported the arrow visibility improvements to BI. (RTW/M2TW)
  • Fixed a whole bunch of small misc graphics bugs (torches in the wrong place, soldiers rotated slightly wrong, etc.). So many things to list out, let's not spam this changelog too much. (RTW/M2TW)

Graphics: Campaign Map

  • Reworked strategy map shadows to cast from the REAL geometry like REAL men. Previously shadows were guessed from tile types, which led to shadows in the middle of the Sahara. 0/10 never cook again Pan. Mountains and hills now cast real shadows, with baked ambient occlusion, instead of just being darkened. Edges are sharp near the caster and soften with distance, and the default strength is dialled way down from "someone spraypainted the floor black". (RTW/M2TW)
  • Strategy map terrain shading is now per-pixel instead of per-vertex, so much higher resolution. (RTW/M2TW)
  • Ground textures now show at their full resolution when zoomed in instead of the fixed 64px/tile cap. (RTW/M2TW)
  • Fixed roads, region borders and ground stamps flickering against the terrain at certain zoom levels. (RTW/M2TW)
  • Fixed per-climate campaign tile textures never loading, restoring the snowy mountains in the desert. (RTW/M2TW)
  • Darkened the movement extents overlay so it's no longer neon green, rounded it instead of looking like a BUNCH OF SQUARES, and made the zone-of-control circles crisp instead of fuzzy blobs (with a more poggers colour). (RTW/M2TW)
  • Removed the 200-triangle limit on aerial map tile models (the .cas hills, mountains, river crossings and fords). (RTW/M2TW)

Sound

  • Fixed event and voice sounds (event notifications, unit voices, etc.) going silent while UI clicks still worked, caused by a stale or corrupted compiled sound pack (events.idx/dat). If loading the pack fails, the game now always retries from the text files. Also FYI modders, most of your descr_music_whatever.txt and descr_sound_whatever.txt have errors in them, so the regen might not work until you fix the files. (RTW/M2TW)
  • Fixed some event sounds (e.g. the war-declared sound) not playing sometimes. (RTW/M2TW)
  • Fixed voice lines getting cut off when loading into or out of a battle. They now finish fading over the loading screen, like in Rome. (M2TW)

UI & Settings

  • Added indicators in the settlement scroll next to income, public order, population and growth showing the change next turn, e.g. queueing a building that adds 200 income shows (+200), instead of digging through the details scroll. (RTW/M2TW)
  • Made the expensive graphics settings red in both the esc-menu and main-menu options, so you know what's not recommended. Renamed anti-aliasing to MSAA. (RTW/M2TW)
  • Fixed terrain detail Insane and Cinematic being silently reset to Medium every time the game wrote your preferences, and vegetation detail dropping to Low when you hit Apply in the main menu. (M2TW)
  • Fixed the terrain and vegetation sliders in the in-battle options showing "not specified" on a fresh install instead of the actual level. Renamed the top main-menu terrain setting from "Highest" to "Extreme" to match the in-battle options. (RTW/M2TW)
  • Fixed adding a unit to the recruitment or construction queue scrolling the list back to the top. (M2TW)
  • Fixed being able to scroll one row past the end of the construction and recruitment lists into nothing. (RTW/M2TW)
  • Fixed buildings that fail their settlement-level requirements (e.g. a hidden resource) still showing up in the UI when a higher level was already built. (RTW/M2TW)
  • Fixed the building downgrade and sidegrade button textures, and the two buttons are now hidden individually when either feature is disabled in descr_caps_ex. (RTW/M2TW)
  • Fixed the UI not correctly displaying or sorting free-upkeep units in settlements. (RTW)
  • Fixed character age still showing in some scrolls when hide_age was enabled. (RTW/M2TW)
  • Added an {SMT_SIEGE_IMMUNE} string shown on scrolls when a settlement has the siege_immune capability. (RTW/M2TW)
  • Fixed the faction intro video playing over the faction selection screen, back and start buttons included, instead of a black background. Intro and victory videos now fit your actual screen instead of guessing from the widescreen setting, so no more random stretching or letterboxing. (M2TW)
  • Custom cursors are now read from the mod's data/cursors folder instead of always using the main game's. (M2TW)
  • Fixed modded custom battle maps showing {{UI_LOCATION_...}} gibberish in the map list when the mod doesn't name them. Mods that do provide names are unaffected. Also screw you random mods for being broken lol (RTW/M2TW)
  • A missing localisation entry now renders as visible placeholder text plus a log warning instead of taking the whole game down. (RTW/M2TW)
  • Fixed a crash report appearing in the logs every time you quit the game. (RTW/M2TW)

Multiplayer

  • Fixed multiplayer rejecting you with "Game data differs from the host's" even when you and the host were on the exact same mod and files. The map cache (map.rwm) was built slightly differently depending on your CPU, so two PCs would sometimes never match. (RTW/M2TW)
  • Data-mismatch errors now name the file that actually differs (e.g. export_descr_unit.txt or map.rwm), with a checksum for each side, instead of an identical-looking ID on both ends. (RTW/M2TW)
  • Fixed being unable to type spaces in the multiplayer lobby chat. Blame me, 6am schizocoding. (M2TW)

Scripting & Console

  • Added reveal_region, reveal_area and reveal_radius script commands, e.g. reveal_region Latium, reveal_area 20, 35, 40, 55, reveal_radius 25, 43, 8. All are undone by hide_all_revealed_tiles. Add the optional live keyword (reveal_region Latium live) to also keep permanent vision of anything standing there, like a scripted spy; without it you get explored terrain, like map information. You can stop spawning spies all the time lol (RTW/M2TW)
  • HasResource and HasHiddenResource now also work in character triggers, checking the region the character is standing in. (RTW/M2TW)
  • Fixed the BuildingDestroyed monitor event, and added a BuildingName condition for the events that export it. (RTW)
  • Added replen_soldiers and replen_all_forts console commands for replenishment. (RTW/M2TW)
  • Added create_resource and remove_resource console commands to add or remove trade resources on the map. (RTW/M2TW)
  • Fixed the create_fort console command, and added a permanent switch. Both the command and descr_strat now take a name too; leave it out and you get the default " fort". Added rename_fort <x> <y> <name>. (RTW/M2TW)
  • Fixed the control faction console command so it disables automanaged settlements, updates the UI and moves the new faction to the front of the turn order. (RTW/M2TW)
  • process_cq and process_rq now work the same in both games and take an optional faction and amount: process_cq <opt:faction> <settlement|all> <opt:amount>, e.g. process_cq London 10. Faction defaults to the current player, amount to 1. (RTW/M2TW)
  • Fixed add_money not accepting negative values. (RTW/M2TW)

Modding: Units (EDU)

  • Added hp_damage_X as a weapon attribute, letting the weapon deal X damage per successful hit. (RTW/M2TW)
  • Added stun_immune and unstoppable unit attributes: the former makes units immune to knockback, the latter also to being launched by cavalry. (RTW/M2TW)
  • spear_bonus now accepts any value instead of only the vanilla 4, 6, 8, 10 and 12. (RTW/M2TW)
  • Reverted the area weapon attribute to its vanilla projectile-only behaviour, and added melee_area / melee_area_X (X being the radius, decimal or whole, default 1.75 m) for area effect on melee weapons. If you were using area on melee weapons, switch to melee_area. (RTW/M2TW)
  • Made random general bodyguards opt-in. Any faction with more than one general_unit in the EDU used to get random bodyguards, and ppl rlyyyy didn't like this. The default is back to vanilla (first matching unit). Flag two or more of a faction's general_unit / general_unit_upgrade units with the new bodyguard_pool attribute and each new general's bodyguard is picked at random from those. (RTW/M2TW)
  • Added weapon_upgrade_points and armour_upgrade_points to descr_caps_ex, setting how much attack/armour each upgrade level grants. Defaults stay vanilla (3/2 in M2TW, 2/2 in RTW), so you can actually customise the upgrades and stop making the med2 upgrades so fucking broken. (RTW/M2TW)

Modding: Buildings (EDB)

  • Building demolish, downgrade, sidegrade and convert-town are now individually toggleable in descr_caps_ex. Default on for everything vanilla (RTW, BI, M2, Kingdoms), off for mods. (RTW/M2TW)
  • Added a building_dismantle switch in descr_caps_ex: instant (begone fucking building THIS turn, vanilla style), timed (takes a turn or more) or disabled. (RTW/M2TW)
  • Added per-building price overrides in the EDB: convert_cost, downgrade_cost, sidegrade_cost and dismantle_cost set an exact amount for that building. (RTW/M2TW)
  • Fixed building downgrades landing on the wrong building variant. They now pick a tier that can actually exist in that settlement, and the button is disabled if there's none. Same logic for downgrade-on-conquest. (RTW/M2TW)
  • no_downgrade now takes an optional requires factions { scotland, france, } block to block downgrading only for those owners. (RTW/M2TW)
  • Added a no_culture_convert requires factions { ... } flag which blocks both single-building sidegrades and whole-settlement culture conversion. (RTW/M2TW)
  • Added governor_attribute and governor_trait conditions, like governor_attribute Chivalry >= 1. Same as the faction_leader_* versions but for the resident governor; no governor in town means false. (RTW/M2TW)
  • Added a governor_ancillary <name> condition, e.g. recruit_pool "Consular Guard" 1 0.5 1 0 requires factions { roman, } and governor_ancillary consul. True when the resident governor has that ancillary. (RTW/M2TW)
  • Added an is_capital condition, true only in the faction's capital. (RTW/M2TW)
  • Added a population >= N condition (any comparison operator works), so buildings can require actual population instead of proxying through settlement level as a cheap hack. (RTW/M2TW)
  • Added a building_is_own_culture condition, true when a building's creator culture matches the current owner's. Use not building_is_own_culture to make captured foreign buildings cause unrest until converted. (RTW/M2TW)
  • Fixed num_building_exist never being true. It now takes an optional operator, like num_building_exist hinterland_mines >= 2; without one it defaults to >=, pdx-style. (RTW/M2TW)
  • Fixed the EDB tags { } block hanging the parser when there was no newline after the tags keyword, and made the parsing more robust in general. (RTW/M2TW)
  • Fixed religion_level_bonus and unit_limit showing nothing in the building browser. (M2TW)
  • Fixed the recruitment tooltip's "turns until next unit" ignoring inc_recruit_pool_bonus and jumping around between turns. (M2TW)
  • population_growth_bonus_fine and order_bonus_fine now show an icon row in Settlement Details instead of working invisibly. (RTW/M2TW)
  • Fixed population_squalor_bonus only doing anything in 5% steps, so fractional and small values now actually affect public order. (RTW/M2TW)

Modding: Graphics & Materials

  • PBR textures: put a <texture name>_pbr (.tga, .dds, whatever) next to any diffuse texture, channels R = metallic, G = ambient occlusion, B = emissive, A = roughness, and it renders with the new material model. Add <texture name>_pbrn for normal maps (RGB = normals, A = reserved). No modeldb changes needed (imagine editing that for custom settlements), and old and new units and models coexist. (RTW/M2TW)
  • Fixed black square artifacts and corrupted unit rendering when a _pbr mask had zero roughness (a black alpha channel). (RTW/M2TW)
  • Units without a _pbr mask now derive roughness from the normal map's alpha (normal.a = 1 - roughness) instead of one flat value. (RTW/M2TW)
  • Added shadow_strength and ao_strength (0 to 1) to descr_strategy_lighting_ex.txt to tune the campaign map shadows and AO for your mod. (RTW/M2TW)
  • Added blood_pool_limit to descr_ex, the maximum number of blood pools on the battlefield at once (default 192, max 2048, 0 turns them off). Purely visual, MP-safe at any value. (RTW/M2TW)
  • Added corpse_limit to descr_ex, the maximum corpses before the oldest is removed (default 1600). Corpses block pathing and are real objects, so in MP every player must run the same value or the battle desyncs. (RTW/M2TW)
  • Raised the usable ground material count per battle map from 32 to 128. (RTW/M2TW)
  • Unit textures on models with attachment sets no longer have to be square, they only need to match each other, so e.g. 2048x1024 is fine. This fixes many broken mods, actually... (M2TW)

Modding: Misc

  • Added extra climates, 32 in total. Slots 12 through 32 are custom_1 to custom_20 and free to use in the game data files. (RTW/M2TW)
  • Added free upkeep to Rome's forts, set via free_upkeep_forts <num> and free_upkeep_forts_permanent <num> in descr_strat, same as Medieval II. Defaults to none. (RTW)
  • M2TW now writes corrected_regions.tga into the game folder like Rome always did, showing how the game auto-corrected land/sea mismatches in map_regions.tga. That's it, that's the whole feature, goodbyeee. (M2TW)
  • SPACE is now a valid modifier in descr_shortcuts.txt alongside CTRL, SHIFT and ALT. Also fixed shortcut modifiers being read one slot "shifted", so CTRL, SHIFT and ALT on a shortcut line quietly did nothing. (RTW)
  • Added a space_unit_highlight toggle to descr_ex for the Space highlight, on by default. (M2TW)
  • Added a load-time log listing buildings with missing models, so you can see what's actually messed up in your descr_items. (RTW/M2TW)
  • The engine now logs any effect_set it was asked to play but couldn't find. Previously a missing or misspelt set failed completely silently, which is like the meme. (RTW/M2TW)
  • Fixed effects listed after a flaming_skeleton inside an effect_set silently losing their parameters, so things like the burning halo never showed up. A flaming_skeleton with no max_bone_emitters line now emits from zero bones instead of whatever memory corruption the place had. (RTW/M2TW)
  • Broken .texture files now give meaningful error messages in the log instead of randomly crashing with a huge allocation or an access violation. Quite a few mods ship zero-byte .textures which just completely fucked the game. They still do (not much to do there, really...) but at least you know it's a mod problem and that M2EX isn't complete slop. (RTW/M2TW)
  • If the geography database fails to load you now hear about it at startup, instead of as a battle load crash much later. (RTW/M2TW)
  • An unknown climate in weather_db.xml is now skipped with a warning instead of messing up every other season. (M2TW)
  • Graphics driver crashes now report themselves properly instead of surfacing as a random access violation on the loading screen. (RTW/M2TW)

Stability & Crash Fixes

  • Fixed a crash during the AI's turn when an army it was evaluating got destroyed or merged away mid-calculation. (RTW/M2TW)
  • Fixed a crash when a savegame fails to load, and a rare follow-up crash when quitting to menu or starting a new game afterwards. (RTW/M2TW)
  • Fixed saves made before the permanent forts update reading a garbage value for free_upkeep_forts_permanent. (M2TW)
  • Fixed a crash on campaign load when a region's rebel faction had no localised name. The game now logs which rebel faction is missing its description text and carries on. (RTW/M2TW)
  • Fixed a crash when loading a battle or settlement if a building referenced a model missing from the mod's descr_items. The game now logs the fucked item and skips the building instead of crashing during minimap rendering. Fixed several similar missing-item crashes too. Regenerating items will get easier in the future, but for now, if it's missing the game is guarded properly so it doesn't crash out. (RTW/M2TW)
  • Fixed a crash on the campaign map when a settlement had no strat model for its culture/level; it renders without a building model now. Same fix for garrison army banners. (RTW/M2TW)
  • Fixed a crash when ending a turn if a character had moved to an invalid off-map tile. (RTW/M2TW)
  • Fixed a "random" crash when starting siege battles. (RTW/M2TW)
  • Fixed a crash when opening settlements in BI, and a crash when opening a settlement in the settlement viewer. (RTW/M2TW)
  • Fixed a crash during sieges when an AI unit rushing a broken gate had been worn down to just its officer or standard bearer while still moving. (M2TW)
  • Fixed a crash on end turn when the AI tried to move a passenger by sea through a region with no naval controller. (might be a mod issue?) (RTW/M2TW)
  • Fixed Rome crashing on startup while reading descr_shortcuts.txt. (RTW)
  • Fixed a crash on battle load caused by effect textures that aren't 128x128. The FX atlas is 128x128, bigger textures overflowed it, and you can see where this is going.... (RTW/M2TW)
  • Fixed battles failing to load on maps using more than 32 distinct ground textures, easy to hit with several climates in view. The "20 GB log" issue. (RTW)
  • Fixed a battle on a tile whose climate has no geography record spamming asserts instead of falling back properly. (RTW/M2TW)
  • Fixed a crash when loading a battle in mods whose descr_climates.txt doesn't define every climate that weather_db.xml refers to. (M2TW)
  • Fixed memory corruption caused by Senate blockade-port missions. Also fixed blockade-port missions not expiring when the target faction was destroyed, and "give cash" missions never completing when you paid up. (RTW)
  • Fixed a crash on event messages whose title string is missing from event_titles.txt. (M2TW)
  • Fixed a crash on battle load when a unit's battle_models.modeldb entry points at a .mesh file that isn't there. The unit is skipped and the log names both the model and the missing file, so you can go bloody find it and stop yelling at me. (M2TW)
  • Fixed the game hanging forever on the loading screen when starting a battle at a settlement with a lot of water around it, e.g. Venice. (M2TW)
  • Fixed a crash when a princess successfully proposed marriage while standing in a settlement, fort or castle with no garrison. (M2TW)
  • Fixed a crash on the loading screen when starting a battle on maps whose settlements had corrupted files built with IWTE, e.g. Pelennor Fields in Third Age: Divide and Conquer. (M2TW)
  • Fixed a rare battle crash triggered by fire effects from burning soldiers and corpses, flaming siege engines or burning buildings. (RTW/M2TW)
  • Fixed a crash on load when a descr effect file names an unknown effect type; the game logs the offending effect and skips the record. (RTW/M2TW)
  • Fixed a crash to desktop at end of turn when a general died after a battle and the game had lost track of his character record. (RTW/M2TW)
  • Fixed a hang when an army joined a battle alliance that already had reinforcements queued but none arrived yet. (RTW/M2TW)
  • Fixed a crash when clicking a character whose trait level has no name entry in export_VnVs.txt (looking at you, DarthMod), the same crash for ancillaries missing a name, description or effects text in export_ancillaries.txt, and a crash when a character gains or loses a trait level whose effects description is missing. (RTW)
  • Fixed a crash on the turn after a battle where an allied army was completely wiped out, if any trait or ancillary trigger used Ally_Routs, NumFriendsInBattle or NumEnemiesInBattle. (RTW/M2TW)
  • Fixed a crash on starting a battle when a unit model was missing vertex data its shader expects, usually tangents on a Medieval II mesh. (RTW/M2TW)
  • Fixed a rare battle crash when the wind stopped, most likely on mods whose climates have no wind sound defined. (RTW/M2TW)
  • Fixed a crash when opening a general's scroll on the campaign map, including via the mercenary recruitment button. (RTW/M2TW)
  • Fixed a crash at the start of a turn when the Senate had no mission available to offer you. (RTW)
  • Fixed a crash when opening the battle editor from the options menu. (M2TW)

Don't miss a new rex release

NewReleases is sending notifications on new releases.