CBP Alpha 10 Patch Notes

After slightly too much work and slightly too many whiplash-inducing pivots about what the patch’s contents would be, what formally started in 2023 as a small bugfix patch but which slowly evolved into a gargantuan patch has now been split up slightly so that a cut-down implementation of Alpha 10 can be released and players can consolidate on one version instead of splitting across Alpha 9 and Pre-Release versions. The changes that were pulled for the sake of timeliness have been pushed to later versions which will release as time and inclination allow.

Even this “lite” version — with many of its planned changes pulled — is substantial, probably the largest single update CBP has ever had, and is the result of a lot of unpaid modding / balancing / software development / testing / etc work which I hope a few people will still appreciate.

Early versions of CBP were more nerf-focused,1 sanding down a lot of elevated nation powers and unit stats and requiring nations and units to sort of “re-justify” why they might need the higher values in a modern meta that has evolved since the last official (intentional) balance changes from over 20 years ago. Now, finally, we’re getting more buff-focused changes, with a variety of targeted changes to help bring up some of the weakest rares / nations / units etc.

This update also includes important technical changes to how CBP works, including moving to a new mod format which better supports utilizing new “hardcoded” changes in the game’s code.

Patch contents

  • Balance changes: high (very high quantity, but mostly modest changes)
  • Bugfixes: high (very high quantity, but mostly small fixes)
  • Enhancements: very high
A roughly-to-scale chronological view of CBP’s versions since its first public release with Pre-Alpha 1. Alpha 10 was delayed by roughly another 3 months because I got COVID-19 just after Christmas 2025 and couldn’t reschedule the time needed to finish the work on it afterwards.

As a reminder, if you just want a list of the changes themselves with no commentary/explanations you can check the patch notes in CBP Launcher or on Steam.

PATCH HIGHLIGHTS

Since this is a big patch, here are the most important changes if you’re short on time:

Non-gameplay highlights

  • MHLoppy taking more active role in balance decisions.
  • CBP now using separate game exe with own set of modified data files.
    • Reduces interference with the base game.
    • Hardcoded changes now utilized as needed.
  • CBP replay compatibility now limited to same-version playback only.2
    • New replays now include CBP version in filename.
    • CBP Launcher now supports loading of older versions of CBP.
  • CBP Launcher plugins system disabled; lost functionality may be re-implemented in future.

Gameplay highlights

  • RoN’s built-in RNG updated. E.g., random nations more random – all non-mirror matchups now possible in 1v1s.
  • All five CtW campaigns now “mirrored” to have separate CBP versions. CtW changes applied to CBP versions only. Old versions remain accessible.
  • Many rares buffed/nerfed. Most notably:
    • Rares (including Fish) give 20% less Wealth/Knowledge than before (+10 is now +8).
    • Marble now provides a partial discount on other non-military buildings.
  • Wonders now require Sci1.
  • Light Infantry in II/III tankier and upgrades cheaper.
  • Age I Heavy Infantry UUs less damage vs buildings, matching Hoplites’ penalty in official balance.
  • Several nations buffed/nerfed (mostly buffs). Most notably:
    • Chinese now get 20% discount on LI (and GI/MI), but UUs lose built-in discount.
    • Dutch Com discount now 25% and again start with Com1, but only 1 Armed Merchant and no Market.
    • Maya slightly higher build speed bonus, Timber discount applies to Wonders, new 25% Metal discount on military buildings + Wonders, and get Construction upgrades for free.
    • Romans no longer ignore Mil when building Towers, or Age when building Fort.

 


 

..And here are all of the changes and their explanations if you’re not short on time.

PHILOSOPHICAL CHANGE TO CBP

Although a once-off addition to the patch notes, this is to me the most significant change between Alpha 1-9 and Alpha 10+.

The CBP I originally envisioned looked something like this, being just”RoN+”, relatively easy to use, staying true to the original gameplay intent (which keeps it familiar-feeling for people picking up the patch), and importantly with consensus-based decision-making where good evidence and agreed-upon balance positions from high-level players would sway the direction we chose to go in:

In this paradigm, the only one of the five metrics that isn’t particularly important was whether I was personally convinced (e.g., dave says a change is bad, it gets pulled unless I could convince him).

With much of the high skill playerbase outside of the OG Jatin+dave combo being more, hm, challenging to work with than expected, Jatin and Dave stepping back from RoN, and me hoovering up all the information I could find and discover about how RoN worked, what we actually ended up with post-launch was me making a few more of the judgement calls than I wanted to, but simultaneously feeling like my hands were tied behind my back due to lack of player consensus to draw from:

Community consensus was still important, but because very few people provided input (and almost none of them provided sustained input) on balance decisions, it was very hard to clear the bar necessary to justify changes.

I thought about this problem a lot, and in the interim wasted a lot of time doing modding tests to find out how to implement gameplay changes that rocked the boat as little as possible with each change. A consequence of watered-down changes is, of course, that a milquetoast version of a change often ended up being inconsequential in the grand scheme of things, even in cases where it really needed to not be. Well, after much thought and continued reinforcement over the years that most high-level RoN players are — overwhelmingly, though not exclusively — overconfident in their understanding of how the game works, I was inspired by a comment from Tim Baldrige (aka halgari) discussing some work going over at Nexus Mods a couple of years ago (before it was sold to slightly dubious new ownership):

Project design and management is a complicated topic, but I would like to address something here since it’s been brought up. Open source works best when there are open contribution processes, and codebases, but firm leadership. Projects that are ruled by public opinion, majority votes, or the like tend to suffer from lack of cohesive vision. There needs to be someone who says, (as the old saying goes) “the buck stops here”. That means when there are several valid approaches to a problem, someone needs to be the one who makes the final decision. In this case, that person is me. I was hired to make those decisions, and to bear the consequences of them.

These are not decisions that I take lightly. As mentioned in the article, many of the decisions on this project took me weeks or months to come to a concensous [sic] on, and I only did so after talking with many people, getting advice from leaders in the community and pulling from my existing experience in modding, software engineering, and project management. So to say I don’t value feedback simply because I don’t agree with you on this specific topic, is a bit reductive. Any given design question has many facets to it, pros, cons, etc. All of those facets have to be weighted by complexity and risk. And when that information has been gathered a decision has to be made. […]

It used to be that the Advisory Group, small enough to not suffer too much from the “made by committee” effect, would make final calls about changes. Unfortunately with that group effectively defunct for several years now, those calls have fallen to me. In this case, I wish I was getting paid, and the exact nature of the changes in question are quite different from what Tim describes (here it’s less about picking between valid approaches, and more about figuring out which approaches are valid), but I still found what he said to be helpful. So I’ve decided to try untying one of my hands and we’ll see how that goes:

CBP still won’t be an exclusive reflection of personal gameplay views or preferences; it’s still not going to be just “the MHLoppy patch” as I try to stick to changing things which I have a reasonably good grasp of (and there’s a lot left of the game of which I still don’t). Balancing decisions will continue to be evidence-based and I’ll continue to discuss the game with other players, particularly picking the brains of the “old timers” for certain balance insights (particular thanks to Dragonneo for his help on this point over the past year or so). I just won’t necessarily hold back on a good, evidence-supported change that I think fits well into the game’s existing design just because I can’t find enough people to sign off on it. And, of course, if people make some good arguments as to why my idea is misguided, I’ll give it a listen.

But I will be taking on a more personal3 role in the mostly-balance-centric decisions now, and will also be willing to deviate incrementally more from original gameplay implementation and from maximal ease-of-use if I believe with conviction that the overall result sufficiently justifies doing so. The hardcoded changes in this patch are a good example of what I mean by that.

One of the notable design deviations I’m moving towards is the idea that unit upgrades which increase the cost of the unit should reflect a meaningful — rather than incremental — upgrade to the unit in some way (the way that Arquebusiers and Light Tanks already work). You’ll see it a little bit in this patch, and a bit more in some of the pushed-back changes coming to future patches once I eventually get around to finishing them.

Perhaps paradoxically after finally doing all of this work on hardcoded stuff,4 I don’t intend to go much further on CBP development (or RoN modding in general) than any of the work that’s already in the pipeline, mostly for reasons I’ve previously discussed elsewhere – namely that the experience I personally hoped to be able to enjoy by fostering the development of CBP is one that appears to not be achievable. For a little while there it looked promising again so I put in some more work, but things ultimately fizzled out again. I expect to (again?) more or less retire from RoN modding after a few hundred more hours of work. After that I’ll be happy to do a minimal amount of work to add in other people’s fixes / changes that have community backing and/or convincing evidence, but CBP updates will probably stall out again after another couple more patches unless there’s some kind of interesting future development that spurs it on again.

A look at the files in Alpha 10 (excluding those in the root folder) by how much space they take up. Adding the CtW map art files has increased the patch by over 100MB.

TECHNICAL CHANGES

Mod format change

This update changes CBP’s mod format to something relatively self-contained and separated from the base game’s core files, with a separate patched game exe and a separate copy of many of the important balance-related data files (while using the normal shared copy of files for almost everything else like art assets so as to not duplicate the entire RoN install with each update). This revised format has been tested by players “in the wild” quite extensively over the past year, and personally by myself for a year or two prior to that again. It’s actually an evolution of my previous work on RoN mod formats.

There are several key benefits to this new approach:

  • Virtually zero interference with RoN’s existing files.
    • Problems with a CBP installation should now never cause problems with the core game files needed to run the game without CBP.
    • Most unsupported mods no longer fight with CBP for control of files (which could previously cause gameplay results that the player didn’t expect).
    • Any future out-of-the-blue RoN:EE updates like the June 2024 patch will cause less headaches (though may not be headache-free).
  • Faster CBP load/unload times in the launcher.
  • Easier launcher-less usage after initial installation of specific versions for those who prefer to not use the launcher on a day-to-day basis.
    • This also improves Linux support (see note).5
  • The ability to change a lot of hardcoded functionality in the game exe without risking potential conflicts with non-CBP usage.

Although the main cost of this format change is borne by the developer (i.e., me), there are also some downsides to users:

  • Most gameplay mods will no longer work on top of CBP unless the mod explicitly includes CBP compatibility (an incompatible mod may “load” but probably won’t affect gameplay).6
  • CBP Replays can now only reliably be played back on the CBP version which they were recorded with.
  • In order to actually use hardcoded changes, I have to choose a specific version of the game exe to support (EE 1.20 with June 2024 update) rather than unofficially supporting multiple versions (like EE 1.10) unless I want to add an enormous amount of extra work.

Although I view the mod-on-top-of-CBP point as more “pro” than “con”, I’m vaguely aware that a few players aggressively enjoy the idea of using CBP alongside mods which completely undermine game balance. While players are of course free to play the game however they’d like, most mods like this will now need extra work by either the mod maker or the player to achieve their intended result.7 I should note also that it’s extremely likely that if you were previously trying to use mods on top of CBP you were probably not getting the result you expected due to file conflicts, but may not have realized it, and that’s part of the reason I’m okay with doing this.

One related consequence of this is that if you want to do a swap of your language files (which CBP generally unofficially supports) you’ll need to use slightly different file names than before. For example instead of swapping in “help.xml”, you’ll be swapping in something like “CBPa10_help.xml”. It’s not a big deal once you know that you need to do it, but it might trip up someone who hasn’t checked / translated these patch notes. I know this is a usability downside but the upsides are worth it and CBP translations are still yet to exist anyway. Please check with your CBP-using friends about this if they’re using custom language files for their game install.

As for replay compatibility, I discovered in January 2024 that, to my surprise, there are already certain XML data values which are not fully supported for replay compatibility. Most notably, certain nation powers added in T&P don’t have the associated game code which normally dynamically adjusts the replay playback depending on how that nation power is configured in XML. This means that if keeping the old mod format, not only would we not be able to adjust some values without causing replay compatibility issues , but there were actually a small number of CBP replays that are already not compatible, and just by chance it affected none of the replays previously used for testing this (and evidently nobody who experienced the issue first-hand forwarded it on until it happened to Reco in Jan 2024).

I’m mitigating the replay compatibility downside in several ways:

  • Replays generated with CBP now include the version number in the file name.8
    • For example: Playback – 2025.12.27 17’23’07 (Sat) (CBPa10)
    • Note that this currently does NOT apply to saved games which will continue to use just the default naming scheme (with no version stated in their file name).
  • Old versions of CBP can be installed (and very quickly swapped between thanks to the new mod format) in CBP Launcher. These separate installs don’t include CtW files and instead hook into the CtW files distributed with the main (latest) CBP release.
    • At Alpha 10’s release this will include Alpha 9d (a port of Alpha 9c to the new mod format) as well as Pre-Releases 1, 2, and 3. If you want support added for one of the older versions which you have an archive of (in /Rise of Nations/mods/Unloaded Mods/CBP Archive/), please contact me with a copy of your archived installation.9 Once I have 2-3 independent archive copies of a given version I can trim out the user-specific configuration and add support for this version in the launcher.
    • Note that the current interface implementation in CBP Launcher for swapping versions is pretty bare-bones, once again prioritizing speed and basic usability over necessarily looking nice. I’ll clean it up later if/when I can.
  • You can check the version of an existing replay using this online replay decoder which has been built using duct tape.10
    • A more robust / complete variant of the replay decoder is currently active in both the replays-n-gameplays and botspam channels on the RoN Discord if you’d prefer that.
    • I’ll try to port some of this work into either CBP Launcher or a standalone program at some point in the future.
Fluxer seems to have put quite a bit of effort into making a Discord-like API too, so if we end up migrating there I can probably port the bot’s functionality to that platform too q:^).

Right now with CBP Alpha 9, CBP Launcher shuffles files around in order to “load” and “unload” CBP, either replacing the existing game files with CBP versions if loading CBP, or returning the original games files and removing the CBP versions if unloading CBP. It then makes some small changes to various files after this file shuffle. In this system, there’s always (for example) a rules.xml file being used by the game exe, it’s just a matter of whether the file in question is the CBP version or not. CBP and non-CBP are both “fighting” over the same file, with CBP Launcher mediating this so that it’s usually not an issue.

With the new mod format, each version of CBP uses its own separate game exe, which in turn relies on its own separate copy of key game files. Instead of wrestling over the same rules.xml file for example, the base game (and most mods etc) will use rules.xml, but CBP will instead use CBPa10_rules.xml for Alpha 10, CBPa11_rules.xml for Alpha 11, and so on.

The modified game exe is created by making a copy of the original game exe and then using a bsdiff patch file to apply all of the hardcoded changes for that version of CBP. Whereas normally RoN 1.20 uses riseofnations.exe, the latest version of CBP will use riseofnations_CBP.exe,11 and then individual versions also have their own game exe, allowing you to boot up older versions to e.g., watch old replays even as new versions of CBP come out.

This format also means that if you prefer to avoid using a launcher, then you have the option to use CBP Launcher just to update when a new version comes out (though you’ll have to keep up with that yourself), and then run the patched exe directly without a launcher. CBP Launcher was optimized somewhat for low resource usage for the sake of low spec machines but not for raw performance, so bypassing the launcher can cut a couple seconds or so from your total launch times if you’re the kind of person who hates waiting for stuff like that. In an ideal world I’d be able to sit down and rewrite the whole thing,12 but the work:reward tradeoff is generally really bad unless I’m trying to upskill in app development; I could instead spend those several hundred hours working on “CBP itself” and the benefits to CBP as a whole would be much higher.

In any case, there are now two categories of the CBP version of files.

  • Most files will now be individually versioned to a specific CBP version and a new copy of these files will get distributed with each patch (whether or not the file’s contents were updated). For example, rules.xml will have a CBPa10_rules.xml version for Alpha 10, and CBPa11_rules.xml version for Alpha 11.13 When updating from Alpha 10 to Alpha 11, the Alpha 10 version of these files is not changed and instead a new version of the same file is “installed” and used for Alpha 11.
  • A few files (e.g., CtW files) won’t have a separate version, and will instead be updated in-place. For example, CTW_Napoleon_Map_01.xml (for the Napoleon CtW) will have its own CBP_CTW_Napoleon_Map_01.xml which may be updated in future patches, but this update will occur in-place and the old CBP_CTW_Napoleon_Map_01.xml file will be overwritten.

As previously mentioned, the patched exe is special-cased to be both of these categories; riseofnations_CBP.exe will always be the latest version of CBP that CBP Launcher has installed from Steam, but each installed version of CBP will also have its own separate exe and copy of non-CtW files that will allow you to play back old replays etc.

CBP Launcher / CBP Setup GUI updates

Most of the small launcher changes have already been out for a while ahead of Alpha 10 in what I eventually decided to call a “tech update”, but I’ll list them here as well because they’re basically still part of Alpha 10.

  • Launcher: Added announcements.
  • Launcher: Automated the fix for the June 2024 fix.
  • Launcher: Updated the load/unload UI.
  • Launcher: Improved the launcher’s ability to update CBP Setup GUI.
  • Launcher: Updated the CBP logo.
  • Launcher: Improved some logging.
  • Launcher: Recompressed some images to optimize size.
  • Launcher: Auto-default to using CBP Launcher as RoN’s launcher when CBP is installed (can still be changed by the user, but I figure most people installing CBP want to use CBP).
  • Launcher + Setup GUI: Increased some font sizes slightly to improve readability.
  • Launcher + Setup GUI: Fixed misc bugs.
  • Setup GUI: Added necessary support for some of CBP Launcher’s new changes.
  • Setup GUI: Dropped support for being run from the local mods folder.
  • Setup GUI: Dropped support for running pre-release versions of CBP Launcher via Workshop subscription.
  • Setup GUI: Increased default window size.
  • Setup GUI: Defaulted to auto-allowing several of the previously-manual user consent-checks to streamline installation.14

As for what’s genuinely new, it’s mostly changes that support the new format discussed above, including some UI changes. One of the biggest differences is the new “Other..” button, which brings up a basic list of alternate versions you can install and load in order to play back old replays. Because of the new mod format, all versions installed with this format don’t interfere with each other or the default RoN install (though CtW changes are not part of these distributions). The layout on this new panel is pretty spartan; making it work with acceptable usability was a higher priority than making it pretty.

Some parts of the launcher have been disabled, including the Optional Changes configuration and a few launcher settings.15 The existing plugins system has also been deprecated – not only did nobody (other than me) use it, but it would need further work to be integrated into the new mod format. For most of the stuff that’s been removed, I’ll try to reintegrate it in later as time and energy allow.

I’ve fixed a couple of bugs from a couple of previous best-effort-but-not-thoroughly-validated changes like the reinstall check (incorrectly) triggering even for first-time CBP users (who would have no settings to reset).

If you’re using a RoN game exe with the Large Address Aware (LAA) flag set (aka “4GB patch”) then CBP Launcher’s patching process should transparently copy this setting across to the new, patched CBP exe(s).

Something I’ve wanted to add for several years has finally made it in, that being “passing through” Steam invites. Back when CBP Launcher was first released, I think I assumed that Steamworks integration meant that invites were handled by the game itself, but it turns out that when you accept a RoN game invite on Steam, it actually just starts the launcher with some startup parameters, which are then passed on to the game in order to connect you. Unfortunately installing CBP Launcher interrupted that and game invites no longer worked properly when using CBP – now they should!

Given the relatively low frequency of CBP updates (especially compared to how 1. it used to be back in the early 2020s and 2. how I imagined it would be when I was choosing level-of-detail for patch notes), the patch notes in CBP Launcher will now include all changes instead of skipping over anything too minor and telling you to look at the full patch notes.

Lastly, I’ve dropped support for migrating from CBP Alpha 6c, which I expect to affect zero users but which gives me one less thing I have to set my free time on fire to maintain.

CBP Launcher is still very much scuffed – originally a full rewrite was in the cards for Alpha 10, but when doing 20 different jobs I have to triage, and for better or worse “making the launcher start up a second or two faster” at the cost of >100 hours of work is quite low in the priority list. I might still take it up later specifically as a personal software engineering project, but no promises.

Right now the available alternate versions aren’t hooked up to the patch notes tab, but it’s something I’d like to do eventually.16 As new pre-releases etc come out, they’ll appear as available install/load options. This is also where temporary test versions will be able to be loaded – with no interference to your existing RoN install thanks once more to the new mod format.

GAMEPLAY CHANGES

Some of the balance changes here are semi-experimental, and as has always been the case with CBP, changes which don’t work / turn out to be garbage / don’t achieve what we wanted can be adjusted in the future.

Alpha 10 is also when we’re finally implementing hardcoded changes, allowing for more flexibility in what gets changed. I’ve seen a lot of people assuming that CBP already did this despite me previously noting in a few places (including some of the prior patch notes) that that wasn’t the case yet, as the benefits at the time did not warrant breaking replay compatibility in my view. In any case, changes that rely on partially or fully hardcoded implementations are marked with an [H].

Alpha 10’s balance changes are presented together in logical groupings rather than being listed separately like in previous patch notes. Bug fixes affecting balance have also been moved up and grouped alongside the regular balance changes.

Updated random number generator

  • [H] RoN’s main random number generator is absolutely awful -> plausibly tolerable.

Different random number generators can have differing degrees of randomness, with the highest-quality generators being suitable for cryptographic applications. Games normally don’t need that level of randomness quality, and so can implement lower quality, but more computationally-efficient (i.e., faster) generators.

Examples of fast generators with a good quality of randomness include some of those from the permuted congruential generator (PCG) family and Xorshift families. Generators from these families have been adopted in places like Python’s NumPy library (PCG64 / PCG64DXSM), Java (xoroshiro128++ / xoshiro256++), and .NET (xoshiro128** / xoshiro256**). Good implementations of generators like these are fast enough to be used as general-purpose random number generators, but with a good enough quality of randomness to be usable for many scientific computing applications. They’re generally fantastic.

Stepping down from there in quality you have generators like Mersenne Twister which was (and to a degree still is) very popular and are still used in many places like R, MatLab, and some games / game engines. Generators of this quality have some problems, but if used properly they’ll usually do what you need them to do – there’s just arguably not much reason to choose them over alternatives like PCG and xoshiro if you’re not already locked into using it for legacy reasons.

Below that we have lower quality engines like linear congruential generators (LCGs) from the 1950s, on which PCGs are based. This was a very popular type of engine in the pre-2000s and early 2000s, and you’ll often find it present in old software from the time.17 LCGs run fast and are simply enough to implement, but are normally not considered suitable for general-purpose usage anymore because they have several flaws and their overall quality of randomness is quite low compared to better engines.

We then have RoN’s random number generator, where as it’s implemented, it’s the random number generator with the worst output quality I’ve ever personally seen in commercial software that doesn’t intentionally create bad outputs. Why it’s been implemented the way it is I’m not sure. RNG is a very difficult subject which often requires domain expertise to do right (you basically just shut up and listen to what the experts tell you to do), so maybe it was just a programming mistake that it was implemented as it is.

Whatever the reason for its current state, it’s relatively easy to substantially improve the randomness quality of its outputs from atrocious to merely bad (which is close to good-enough for our needs).

Skipping over some context about how it all works, the original implementation involves converting a 32-bit value to a 16-bit value by ignoring the input’s higher-order 16 bits and just copying the lower-order 16 bits. The Experts™ say that this is bad and reduces output quality significantly because the lower bits will have low randomness quality (but we’re using them), and the upper bits will have comparatively better randomness quality (but we’re discarding them).18 Understanding specifically why this is the case is beyond my current knowledge, so I’ll just shut up, do what the experts say, and show you the results of making this and one other minor change.19

After simulating the original engine 4,294,967,295 times, we can have a pretty good idea of what “bad” randomness means in-game through the lens of random nation picks, and observe that in 1v1 random-vs-random, each nation ends up with only has 6 possible matchups. If you limit that to how many matchups Player 1 can have it’s even worse, as it seems that some matchups are only possible for one of the two players. It’s… bad.

Similarly simulating the updated RNG engine (and spot-checking its results in-game) you’ll be happy to know that all non-mirror matchups20 should now be possible in 1v1s when both players select random nation.

Now look pretty picture.

Talk word hard. Hurt Grug head.

We can visualize the results of RNG engines by taking each unique pair of nations in a 1v1 and plotting them in the two dimensions of a chart. Each nation is mapped to a number 0-23 (the same way that the game does it internally), with Player 1’s nation being on the X axis and Player 2’s nation being on the Y axis. In the chart above, when both players picked Random Nation, Player 1 got nation 0 (Aztecs) and Player 2 got nation 19 (Lakota).21

That’s the result of one set of random nations in a 1v1. Let’s do it 100 times for the original RNG engine. Since we have the results of 4 billion rolls to draw from, I’ve arbitrarily chosen to take the 100 sequential results that start at result 123,456. Darker spots indicate multiple rolls of the same pair of nations.

Notice how this doesn’t look like an especially random distribution: there are distinct widely-spaced diagonal lines of dots forming in the visualization, and results appear to be following some sort of pattern instead of being randomly distributed. This suggests poor quality randomness – the visualization of a random output should exhibit no sustained pattern, but this clearly does. We can see for example that P1: 0 (Aztecs) and P2: 3 (Bantu) has happened multiple times, but Aztecs (nation 0) have only been paired up with a handful of other nations. Now hey, maybe it’s a sampling issue – after all, it’s possible for random results to be “lucky” or “unlucky”. So let’s 10x the sample size up to 1000 from the same starting point.

As you can see the pattern is still there. Very few of the possible nation pairings are present in this sample of 1000 rolls. Compare this to 1000 samples from the updated RNG engine:

Now this is a much better distribution. A few of the matchups still aren’t present in this sample of 1000 rolls from the updated engine, but with 24*(24-1)/2 = 276 unique pairs, it’s not unreasonable for a few to be missing in a sample of 1000, and it’s way better than the results from the original engine.

This is the RNG engine that RoN uses to do most (but not all) calculations involving randomness. Beyond picking random nations, it also relies on this for picking random teams, AI decision making, map generation, the random movement of animal rares (like Bison), what music track to play, and a lot more.

I haven’t tested the updated RNG engine extensively (for example I’ve only briefly looked at 4v4 random nation rolls with old vs new RNG, without doing anything more than shallow analysis) but so far all testing done on it suggests it to be significant improvement over the original in terms of randomness quality.

To be clear, this has not elevated the game’s random number generator to “good” quality. Subjectively I’d say it’s something like going from 0.5/10 quality to 1.5/10 quality or thereabouts. Improving it further is certainly possible, but I lack the skillset to do it in a reasonable timeframe, so I doubt it would be worth the effort unless someone with the right expertise helped out. Since we’re talking about something relatively trivial (video game randomness), we only have relatively modest needs when it comes to randomness quality, and this update gets us pretty close to meeting those needs. There are higher-priority areas of improvement.

As a little bonus, here’s PCG64DXSM (one of the “good” general-purpose RNG engines) being used to generate individual pixels in a 300×300 black and white image (enlarged 2x to make it easier to see). Notice how it just looks like random noise — because it basically is — there’s no clear pattern being repeated anywhere.

And now here’s RoN’s original RNG engine being tasked with the same thing – not very “random” looking, with a very clear repeating pattern across the whole image. This implies that the output of the supposedly “random” number generator is closer to a fixed sequence of outputs.

What I find especially interesting is that this second image is only ~4KB vs ~113KB for the previous image generated using PCG64DXSM.

Lastly, here’s the updated RNG engine being used in Alpha 10 doing the same task.

Broadly speaking, it looks a lot like the first output made using a “good” RNG engine. If you’re curious, this one is almost exactly the same size as the PCG-generated one at also ~113KB (but 30 bytes less).

Rares: Wealth and Knowledge

  • Wealth income from rares reduced by 20% (e.g., +10 -> +8).
  • Knowledge income from rares reduced by 20% (e.g., +10 -> +8).

Generally speaking, wealth and knowledge are more valuable resources for a rare to have than other resource types. The difference is significant enough that a rare with +20 Wealth or +20 Knowledge and no other bonuses would still be desirable in many circumstances, making it extremely difficult to solve the problem of resource imbalance by just e.g., buffing the unique bonus effects of non-Wealth, non-Knowledge rares.

Naturally this is a change more relevant to Nomad (very expensive and slow tech settings) than Standard, since income from rares is more relevant in the former than the latter. The change is slightly inelegant, but seems to be necessary to compress the range of possible outcomes from rares down slightly and reduce the “auto-win-ness” of getting a couple more Wealth / Knowledge rares than an opponent.

This does have an effect of mildly deflating players’ economies (due to less total resources gathered). I looked at adjusting the gather rates of the resources to compensate (shifting the lost 20% gather rate to a rare’s non-Wealth, non-Knowledge resource) but this didn’t seem to make the situation better on the whole, just more complicated. Focusing further changes to rares on mostly on buffing the weaker rares going forward should go a ways toward offsetting this economic deflation.

Note that this change doesn’t affect the CtW rares.

Some rares might feel a bit underwhelming now (mostly in Standard), though it might just take players a while to adjust to tell a well-formed opinion apart from a gut reaction. We can always double back in the future to take a look at anything that ends up feeling too weak after these changes.

Rares: Misc

  • Coal base gather rate is +15/+15 -> +20/+16 (affected by Knowledge nerf).
  • Coal reduces Timber costs by 20% -> 15%.

Coal‘s stats are being cleaned up a little, with its Age IV-esque +15/+15 income being brought up to the Age VI norm of +20/+20, but its discount being lowered.

  • Partial revert: Horses reduces cost of Stable/Autoplant units by 10% -> 12%.
  • [H] Salt reduces cost of Barracks units by 10% -> 12%.

Horses has previously been held hostage by Salt due to the latter’s (bizarrely) hardcoded bonus, combined with a desire to match the discount level between the two rares. Some players also seem to overestimate the discount which these two rares provide.

Let’s say you’re in Age I and over the course of several minutes build FA->HI->FA->LI->FA->HI->FA – seven Barracks units. This costs you 730 resources without Salt, or 669 with Salt at 10%, a saving of 61. Now hey, maybe 61 resources doesn’t sound so bad. Now realize that a rare resource that gives +10/+10 generates 40 resources per minute, meaning that over the course of several minutes, the base gather rate has generated significantly more resources than the unit discount.

Hence, Salt and Horses are being buffed up a little. They’re still potentially quite strong rares for rushes and meat-grinder games (ones with very high unit turnover). At small army sizes, base unit costs (which is what Salt and Horses discount) make up the majority of a unit’s total cost. However, as army sizes increases, the effect of base costs on total unit costs becomes matched or exceeded by ramping costs, which Salt and Horses don’t affect.

  • [H] Marble reduces cost of Wonders by 15% -> Wonders by 12%, other non-military buildings by 6%.

Marble has struggled to find much relevance as a rare you want to keep a Merchant at, though it does have an interesting niche as sometimes being worth temporarily deploying a Merchant to. Some players requested changing it to be a 10% discount on all non-military buildings, which I decided was crazy (too powerful for something so broad), so I switched it to be a hybrid bonus that provides a larger discount to Wonders but a smaller discount to other non-military buildings. I would have personally preferred not diluting the discount across so many buildings as it means that the discount itself has to be lowered to be balanced (and small bonuses are hard for players to make interesting decisions around), but I hope we can at least agree that this is better than keeping Marble in its previous state.

  • [H] Aluminum’s discount applies to planes/helicopters/missiles -> planes/helicopters.
  • Aluminum increases aircraft movement speed by 15% -> 0%.
  • [H] Uranium increases production speed and reduces cost of nuclear missiles -> nuclear and conventional missiles.
  • Uranium decreases cost of affected missiles by 5% -> 10%.

Uranium is nearly completely outclassed by Aluminum, because the latter incidentally also affects missiles (including nuclear missiles). So if you wanted to build nukes more cheaply, you actually want to get Aluminum for its 15% bonus, not Uranium with its paltry 5% which doesn’t even apply to conventional missiles or other aircraft (unlike Aluminum).

To make the two more distinct, missiles are being removed from Aluminum’s discount while Uranium’s discount is being expanded to affect conventional (non-nuclear) missiles, with the discount being increased as well.

Lastly, the movement speed bonus on Aluminum is being removed. Less so because it’s too strong, and more because it leads to some unexpected results in air combat. For example, normally bombers are slower than fighters, meaning that a fighter that chases a bomber gets to do an attack run but then has to break off and loop around again. If the bomber’s movement speed is buffed by Aluminum, fighters can trail them for much longer before needing to break off, which actually makes thing a lot worse for the bomber.

I experimented with causing Aluminum to buff fuel levels instead of movement speeds, but this came with the downside of longer refueling times (which was hard to compensate for in the game code due to how refueling is implemented). This made it feel like something not worth getting particularly excited over, so I decided to just drop it. Given the importance of aircraft in late game combat, Aluminum is probably still strong enough with just its discount effect, though certainly the rare has become a bit more boring now.

CategoryAluminum discount
(old)
Aluminum discount
(Alpha 10)
Uranium discount
(old)
Uranium discount
(Alpha 10)
Airbase unit:
base cost
15%15%
Airbase unit:
ramping cost
Airbase unit:
upgrade cost
15% (base only)15% (base only)
Conventional missile:
base cost
15%10%
Conventional missile:
ramping cost
Conventional missile:
upgrade cost
15% (base only)10% (base only)
Nuclear missile:
base cost
15%5%10%
Nuclear missile:
ramping cost
Nuclear missile:
upgrade cost
15% (base only)5% (base only)10% (base only)
Fighter-Bomber:
base cost
15%15%
Fighter-Bomber:
ramping cost
Fighter-Bomber:
upgrade cost
(controlled by Fighter upgrades)(controlled by Fighter upgrades)(controlled by Fighter upgrades)(controlled by Fighter upgrades)
  • Wine reduces cost of unit upgrades by 20% -> 25%.

Wine is a bit of a tricky one, because its value increases based on the number of upgrade types being cycled through and the speed at which those upgrades get cycled through. For example, on a African Watering Hole in Age VII->VIII, it affects 4 Barracks units, 2 Auto Plant units, 3 Airbase units (plus the linked Fighter-Bomber upgrade), 2 Missile Silo units, 3 Shipyard units, and the Partisan upgrade if it wasn’t already researched. But then if you’re playing Standard in Age II, you’ll sometimes not upgrade any of your units, wildly changing how desirable Wine’s discount is. Most of the time you’ll of course land somewhere in between, but it’s still a wide range being covered. As such I think the rare can only sustain a mild buff due to its best case scenario and typical case scenario being wildly disparate.

  • Wool reduces cost of Citizens by 15% -> 20%.

Wool has been called a pretty strong booming rare by some players, but these players are wrong. Like the majority of unit cost discounts in RoN, it only affects the base cost of the unit (Citizens), leading to a flat -3 Food discount, or -4 Food after this buff. Although it does also have the benefit of faster production speed, this doesn’t make up for its limited scope affecting just a single unit.

However, for the same reason that it doesn’t scale well for booming, heavily buffing Wool’s existing discount would make it troublesome as a rushing rare, pumping out cheap Citizens early on to get early eco going quickly and then throwing them at an enemy as Militia. I think a better solution would be to modify its bonus in some way in the future, a bit like what’s been done with Marble.

Another issue with Wool is that you have no idea when you’ll find it. If you spawn next to it, great, you can probably get a discount after less than 20 Citizens. But if you find it on the opposite corner of the map later on in a high player-count game, your benefit from its unique bonus would be relatively negligible, even if you used it for the entire rest of the game.

So Sugar is going to discount many of your library techs, several non-Library techs, several types of buildings (including some Wonders), several types of units, several types of unit upgrades, and then also Citizens (with scaling), vs just the Citizens for Wool (with no scaling). The only reason there’s even much difference in their early Citizen discounts is due to a CBP nerf on Sugar and this new buff on Wool.

Governments / Patriots

  • The Senator increases the armor of nearby buildings by 5 -> 4.

The Senator‘s getting a very small nerf to reduce the completeness with which their armor boost shuts down non-siege attacks on Cities. Armor scales non-linearly against damage; at low damage values (like with non-siege units attacking a City) a small amount of extra armor can enormously reduce damage taken. However at high damage values (siege units attacking a City), the effect of extra armor is small. In an ideal world the armor effect might be changed to instead do something like lowering post-armor damage taken by 25% or so, but that’s hard to implement and just decrementing the armor value is easy.

This also positively affects building-vs-building combat that happens, where armor-boosted Towers have proved to be a little bit too powerful due to their higher base armor than Small Cities.

  • [H] New: Democracy now gives Generals (but not Patriots) +1 radius and +50% (i.e., +500) craft.
  • Revert: The President’s craft regen is 200% -> 100%.

I’m trying to set Democracy on a path to being more viable on land maps using new hardcoded bonuses, meaning we can revert the shoehorned-in random buff which The President previously got. With some more work here in the future, hopefully both Monarchy and Democracy can be attractive upgrades in a higher percentage of games.

Wonders

  • Technology prerequisite for Wonders is same Age tech -> same Age tech + Science 1.

Let’s start with the experimental change for Nomad players: all Wonders now requiring Science 1. This is among the best solutions I could think of to asymmetrically reduce the strength of Wonders in Nomad — particularly Wonder rushes — without affecting Standard or needing to significantly nerf the Wonders themselves. This was a change slipped into recent CBP pre-release versions because it’s hard to simulate the effects of the changes myself and the feedback on the change has been positive, so I’m promoting it into the main release and we’ll see what an even broader set of players think about it.

  • Pyramids City discount 33% -> 40%.

Pyramids is a viable wonder, but it’s still being crowded out by Colossus and Hanging Gardens in Age II despite modest nerfs to both of those, so it’s getting a small buff. While it’s okay if some Wonders are weaker or stronger than others, ideally the gap shouldn’t be too wide between them, and Pyramids is in an awkward position where it ends up competing with Forbidden City in some respects so it would definitely benefit from a small nudge upwards.

  • Forbidden City base gather rate +50/+50 -> +30/+30.

Forbidden City does too many things too well in too many situations. At +100 income and a further boost to all resource gathering at the city (including Caravans’ route income and Scholars’ knowledge income!) it’s pretty desirable from a purely economic perspective, perhaps equivalent to more than double the power of the +20% Food income from Pyramids (which would give you +50 income once you have +200 Food income already). Then factor in that it is essentially also giving you the +1 City limit of Pyramids, extra border push like Colosseum from being a Major City, and the negation of capital timers / sudden death elimination, and hopefully you can see that it’s a little overtuned. I think the least interesting part of the Wonder is its huge base gather rate, so I’m targeting that in the hope that it can keep the parts that are more interesting.

Listed healing rates in this Spongebob meme are pre-change.
  • Partial revert: Red Fort attack strength 29 -> 28.
  • T&P “bugfix”: Red Fort’s bonus healing rate for garrisoned units +500% (600% total) -> +400% (500% total).

Red Fort received an exploit removal in Alpha 8 which reduced its DPS as a side effect, and so it got a compensation buff to its raw attack strength in return. It seems that on average, the compensation buff actually increased its performance, so it’s being lowered to keep its typical effective DPS similar to what it originally was.

Red Fort’s also affected by what I believe is an implementation error, where in my opinion, it was intended to have its garrisoned heal rate set to 500% (a 400% increase), but what it actually got was an increase to its garrison heal rate of 500%.22 Due to in-game rounding, the effects of this otherwise small difference are substantial.23 For example, with Medicine researched the garrisoned bonus healing rate is 1000%, not 500% – double what you’d expect it to be. When the 500% stat is changed to be the total rate (i.e., the bonus is reduced to 400%), these rounding errors are largely removed and the healing rate increase works as you’d expect it to.

  • RoN bugfix: Taj Mahal increases a player’s maximum number of Caravans by -1 -> 0.

Taj Mahal was afflicted by an amusing bug due to a string mismatch between the game exe and the game’s XML files, causing the relevant code to return a value of -1 when checking for maximum number of caravans allowed (due to the game not finding the expected string). I know many of the large overhaul-style RoN mods are using the normally-unused TAJ_CARAVAN / TAJ_CARAVAN_LIMIT parameter, and this is me judging you for not actually testing and understanding its effects before publicly releasing your mod. Not only does the parameter not do what you wanted it to do, it actually does the opposite. While there’s a lot of guesswork in modding undocumented stuff, checking this is a pretty basic test.

Late-game ship quirks

  • RoN bugfix: Destroyer (VI) damage vs Bomb Ketch 90% -> 100%.
  • RoN bugfix: Destroyer (VI) says it gets jammed, but doesn’t -> and does.

Destroyers have a couple of their own small bugs. Due to presumably human error, their damage multiplier vs late-game heavy ships (Dreadnought / Battleship / Advanced Battleship) was also applied against the adjacent Bomb Ketch.24 Due to a missing flag they would also report as being jammed by Special Forces / Elite Special Forces in the UI, but in reality would be unaffected.

  • RoN “bugfix”: Sloop (V) bonus damage vs late-game heavy ships 130% -> 125%.
  • RoN “bugfix”: Destroyer (VI) bonus damage vs late-game heavy ships 117% -> 120%.
  • RoN “bugfix”: Cruiser (VII) bonus damage vs Battleship (VII) 143% -> 140%.

Due to slightly mistuned damage multipliers, the damage progression of Sloop -> Destroyer -> Cruiser -> Missile Cruiser vs late-game heavy ships sometimes doesn’t match the expectation of upgraded unit = more damage, with results such as the Sloop out-damaging the Destroyer. The relevant damage multipliers have been slightly tweaked to resolve this whilst minimizing the effect on each of the units and their matchups.

  • RoN / CBP Bugfix: Missile Cruiser anti-air no longer over-performs vs naval aircraft (CBP) due to implementation mistake when resolving under-performance vs land-based aircraft (RoN).
    • Revert: Chance to hit high-flying (e.g., planes out of combat) aircraft 33% -> 25%.
    • Revert: Chance to hit low-flying (e.g., planes in combat) aircraft 100% -> 66%.
    • Revert: Missile Cruisers additional bonus damage vs aircraft 8% -> 0%.
    • RoN “bugfix”: Missile Cruisers specific damage modifier vs land-based fighters 70% -> 100% (i.e., no specific extra damage multiplier).

Missile Cruisers were buffed in an earlier version of CBP to improve their anti-air performance due to a relative under-performance against land-based aircraft that I struggled to explain and speculated might’ve been due to their missile-based attacks. As it turns out, the problem was an isolated damage modifier applied by BHG whose existence I’m unable to easily explain, and compensating for it was causing Missile Cruisers to over-perform vs naval aircraft in order to perform at par against land-based aircraft.

It’s possible that 20 years ago someone tested specifically Age VIII naval combat vs land-based aircraft and put this in after deciding that the ships were doing too well, but then forgot to extend their testing to earlier ships. Maybe Missile Cruisers used to have very strong anti-air properties which were counterbalanced by this damage nerf but then the former was removed while the latter forgotten – I’m really not sure. What I do know is that with these changes, Missile Cruisers can now reliably outperform their predecessor when attacking aircraft without relying on hugely inflated hit chance.

The “Jammed” status readout is no longer lying for Destroyers. Still haven’t figured out how to fix certain visual effects (like the jamming effects) blowing out to white in EE though.

Elephants (esp. Modern Infantry vs Elephants)

I wanted to write an entire article about the problems which Elephants have, but the last time I did something like that it took ~30 hours so I’m going to go with a summary instead and you’ll just have to trust that I’ve taken the time to test it.

In short, elephants have a few key problems:

  1. They have an identity crisis, with matchups that change with age and a combat role that changes with age, making them hard to fit into an army because you might build them for one reason, upgrade them, and then find they can’t do that anymore.
  2. Their stat scaling is awful (+5 HP and +1 attack per upgrade is the worst for any line of units in the game by a good margin, and that’s further accentuated by their high upgrade costs) – they instead scale via the incredibly weird way of their opponent’s masks. They become stronger in IV and V not because they themselves become particularly more powerful, but because their counter-units lose relevance or are phased out entirely.
  3. Their high armor brings the issue of non-linear armor vs damage scaling as a problem into the game much more prominently than other pre-Industrial units, causing unusually large swings in their damage received based on the attacker’s attack strength and the amount of +armor being given to the Elephant.

In my opinion, these issues are bad enough to warrant a partial rework of the units, and if this were my own game in development, I’d do that. But it’s not my game, it’s not still in development, and one might argue that after 20 years, having an identity crisis may have actually become part of the units’ identity. These are also not easy problems to solve elegantly. So, instead, I’m just going to continue to make incremental changes to them now and then and hopefully at some point they’ll eventually be in a “good enough” state even if they’re still absolute freaks design-wise.

To that end: ranged Elephants’ strongest combat counters in most situations are Foot Archers and Light Cavalry. This is a problem in later ages because Foot Archers cease to exist (and their Gunpowder Infantry upgrade is conspicuously missing the +70% damage against Elephants which Foot Archers have) while Light Cavalry gets outpaced by the higher stat growth of other unit types (including the steadily increasing movement speed of Heavy Cavalry as it’s upgraded, a stat growth which Light Cavalry don’t have), causing Light Cavalry to be largely replaced in most combat roles.

This is compounded again by Elephants being strong against Heavy Infantry specifically, a unit type that for most nations has a uniquely powerful upgrade in Age V. And then again by the availability of Monarchy making them faster and cheaper to produce, and The Monarch making them even more powerful, via stats that take maximum advantage of the non-linear scaling of armor vs damage (via boosting precisely those two things).

So, we end up in a situation where Culverin Mahouts in V have no combat counters, will be absolutely blasting Heavy Infantry, will be utilizing the unfortunate gameplay interaction between non-linear armor scaling and the focus fire penalty to receive minimal damage from enemy units, all while more easily able to abuse the interaction between non-linear armor scaling and flanking damage to triple their DPS against Gunpowder Infantry because they’re able to fire while moving in a complete circle around themselves, and they’ll probably be created faster and more cheaply due to Monarchy while being further boosted by The Monarch. Fantastic.

  • War Elephant (II) damage vs Citizens 33% -> 36%.

On the early-game side with War Elephants, I want to nudge their melee implementation incrementally towards the identity of its ranged upgrades by making it slightly more effective at actually killing things as a raider. Although this change is small (3% absolute, or roughly 9% relative), it reduces the hits to kill a Citizen by 1 during the early game (from 6 hits to 5 hits before Militia upgrades are researched). Because of their slow speed, actually killing Citizens may be somewhat challenging if the defender is paying attention, but I think that this is a step towards a vaguely more cohesive identity.

  • Gunpowder Infantry damage vs Elephants +10%.

Next up, if the Elephant line doesn’t have a combat counter in V, let’s at least make one of their previous counters (Foot Archers) have a small echo into the successor units of the time. Because some players don’t seem to realize that 10% and 70% are very different and that +10% damage is not enough to make this a unit counter, let me say very explicitly that 10% and 70% are very different and that +10% damage is not enough to make this a unit counter. I hope that’s clear enough now.

  • Formation spacing of all Elephants in X/Y 45/45 -> 40/40

One of the other odd quirks of all Elephants (beyond their damage dealt / received) is how widely they space: 45 units apart (the same as Main Battle Tanks). With just a group of Elephants by themselves it’s not so bad, but if you try to use them in formation with other things (especially in Age II when they’re still melee), it really messes up the spacing of other, smaller units more than it seems to need to. I want to try nudging this down to 40 (the same as Tanks (VII)) to see if it’s nicer to use.

  • T&P “bugfix”: Ranged Elephants damage vs Modern Infantry no specific modifier -> -25% (manually excluding late-game Scout units which also have the Modern Infantry mask).
  • T&P “bugfix”: Modern Infantry damage vs Elephants no specific modifier -> +30%/+25%/+20% for MI in VI/VII/VIII respectively.

Lastly, there’s quirks in both the damage that all Elephants deal against Modern Infantry compared to the prior Gunpowder Infantry (more!) and the damage which they receive from Modern Infantry compared to Gunpowder Infantry (less!), leading to some perhaps-unexpected unit interactions if an opponent makes the mistake against an Elephant-heavy army of assuming that upgrading their infantry units would actually make those units stronger combatants.

These numbers may seem unexpectedly large for what this is supposed to be doing, but they’re basically the lowest possible (round) values that resolve the problems in these matchups.

It’s won’t blow your socks off, but you can see the difference in an Elephant spacing of 40 (left) vs 45 (right).

Tanks, Modern Infantry, and late-game Heavy Infantry

Related article: A couple more reasons why RoN’s late-game combat sucks

Continuing on the “hang on, why does the unit get worse in this matchup when it’s upgraded?” thing we’ve got going, Gunpowder Infantry currently significantly outperform early Modern Infantry in terms of DPS against tanks. Due to the focus fire penalty this is Very Bad™, as it means that if Modern Infantry shoot Tanks before higher-damage units are able to, the damage received by the enemy Tanks will sometimes be lower than if the Modern Infantry never shot at all.

Again trying to use the lowest possible (round) values when resolving the issue, I want to tackle the problem from both ends, nudging down Gunpowder Infantry‘s damage while nudging up Modern Infantry‘s damage.

At the same time I don’t want V-vs-VI combat to get even worse for the Age V player, so am giving a compensation buff to Gun Heavy Infantry like Fusiliers to roughly even it out.

I also don’t want Modern Infantry to be overly dominant now that one of the worst problems is being reduced (though certainly not eliminated), so their attack recharge is going up slightly in return (in more simplistic terms, their attack speed is going down slightly). In army-vs-army combat which involves Tanks, this higher recharge may not even be clearly worse than before, as the less often that Modern Infantry are firing, the better the odds that one of the higher-damage units can get a shot in whilst unaffected by the focus-fire penalty. To keep a more sensible DPS progression,25 units in VIII get to keep a recharge of 32.

(and just to be clear, here when I’m saying “Tanks” I mean the unit category as a whole, not just the specific Age VII unit)

  • RoN “bugfix”: Gunpowder Infantry damage vs Tanks no softcoded modifier -> -15%.
  • Gun Heavy Infantry (e.g., Fusiliers (V)) damage vs Tanks no softcoded modifier -> +25%.
  • RoN “bugfix”: Modern Infantry damage vs Tanks no softcoded modifier -> +20%/+15%/+10% for attackers in VI/VII/VIII respectively.
  • Modern Infantry attack recharge 32/32/32 -> 36/35/32 (in VI/VII/VIII).

While we’re at it, let’s take the chance to slightly buff late-game Heavy Infantry. Bazookas (VII) randomly get a +1 armor upgrade at no extra cost, so we can backport that to Anti-Tank Rifles (VI) to make them a little more resilient and align with the cost increase that happens in VI. To help in the last two ages, let’s try increasing the range-increase-per-upgrade for Armor Piercing Gunpowder Heavy Infantry (i.e., late-game Heavy Infantry) by 1. They’ll still be out-ranged by everything else, but hopefully the extra range makes them a little bit more useful in fights. I’m hopeful that this will be enough for a player that understands the game’s mechanics to do a small amount of extra micro in late-game fights and actually make HI a useful part of late-game armies again – without making them overbearing.

Finally let’s revert the (inconsequential) Light Tank HP nerf from earlier versions of CBP because all the other units got buffed, meaning it doesn’t really need to be made incrementally weaker. One of the big reasons tanks could be oppressive is because of problems with other units, some of which are being reduced now.

  • Anti-Tank Rifle (VI) armor 4 -> 5.
  • Armor Piercing Gunpowder Heavy Infantry (e.g., Anti-Tank Rifle VI)) range growth 1 -> 2.
    • Bazooka (VII) range 9 -> 10.
    • Anti-Tank Missile (VIII) range 10 -> 12.
  • Revert: Light Tank (VI) HP 185 -> 187.

Taken together, these changes also slightly increase the viability of Machine Guns, which is a nice plus. Just remember to manually select their targets to get their full DPS. 🫠

The damage that Gunpowder Infantry / Modern Infantry deal against Tanks in official balance is.. perhaps not intuitive.

Light Infantry

Ah, Light Infantry. One of RoN’s most conspicuous unit balance problems, with seasoned players often telling less experienced players to, for example, never build Javelineers, Elite Javelineers, or their equivalent UUs.

RoN’s other early game units can be pretty cleanly boxed into roles. Foot Archers counter Heavy Infantry while dealing chip damage to other units from afar. Melee cavalry kill Foot Archers quickly; Light Cavalry are extremely fast and maneuverable and are especially good against Horse Archers while Heavy Cavalry are slower but more powerful, and can also effectively screen enemy Light Cavalry. Heavy Infantry efficiently neutralize melee cavalry while being a pretty good melee generalist due to their high stats. Horse Archers kill Civilians (namely Citizens) quickly.

By damage modifiers, Light Infantry are supposed to be another way of killing Foot Archers (which is already a pretty crowded role to compete for once horses are available), but they tend to be much worse than it at Light Cavalry (which cost the same resources), putting them out of a job once you hit Age II.

A few people have suggested just buffing the shit out of Light Infantry’s attack strength so that it becomes a viable generalist unit, but that feels like just a far more extreme version of what we’ve already been doing with LI buffs in the past; shooting blindly in the dark and hoping we hit the target we want. While it’s not always feasible, I’d much prefer to actually target where we’re going rather than doing it blindly and hoping for the best. I think we can make Light Infantry viable to field in small quantities (because you don’t want too many of a unit that’s not a good generalist) as a strong supplement in backline-vs-backline fights.

First, let’s revert the experimental +1 range in Age III to get back to a more consistent stat profile. Adding a smidgen of extra range is a pretty reasonable way to increase their viability, but there are others and I think we can do better. Higher range also comes with its own (negative) tradeoffs, such as making the unit do a worse job of screening for archers and (if given too much range) risking a situation where they overly displace riskier units that fulfill a similar role (melee cavalry) because risk is a liability when choosing between units.

  • Revert experimental: Elite Javelineers (III) range 7 -> 6.

One of Light Infantry’s problems in II and III is that it’s competing for a similar role as Light Cavalry, but to be effective in those ages, you’re saddled with spending extra resources on the Age II/III upgrades. In contrast Light Cavalry — especially the Light Horse in Age II — essentially have an Age II upgrade baked in if you’re willing to pay the cost of the Stable (which you need to build sooner or later anyway, whereas you don’t need the Age II/III LI upgrades).

To make the upgrade more attractive (while minimally increasing its effectiveness as a generalist unit), we can reduce the upgrade cost, just like BHG previously did to make the Trebuchet upgrade a bit more attractive without actually buffing the unit’s combat effectiveness directly. Then, instead of dicking around with inconsistent +1 or +2 HP changes as was previously done, we can cleanly realign the HP-per-upgrade to be 15, which is a bump up in Age II and thus translates automatically into the unit being stronger in Age III as well (even though its HP growth from II to III was already 15+). This gives you more bang for your buck: the upgrade itself is cheaper (being particularly relevant if fielding only small numbers of the units) and the upgraded unit is more generically durable. Durability is another way of differentiating it against Light Cav, which rely on speed to make up for how flimsy they are.

  • Light Infantry upgrade premium 2 -> 1.5 (the upgrade cost is 150% of the unit’s base cost instead of 200%).26
  • Light Infantry’s HP growth 10~16 HP -> 15 HP.
    • Javelineers (II) HP 96 -> 100.
    • Elite Javelineers (III) HP 112 -> 115.
    • Light Infantry UUs that normally had extra HP have been re-based to have +10 HP more than whatever the same-age Light Infantry unit normally has (which to be clear is very close to the HP delta which these units previously had in both CBP and non-CBP alike).
    • Fire Lances (III) match the HP upgrade but don’t get the cheaper upgrade cost (since they’re Gunpowder Infantry, not Light Infantry).

There’s one other problem with the unit which I don’t feel is that obvious: Light Cavalry have a higher-than-expected modifier against them,27 causing Light Infantry to be very vulnerable to that much faster unit if they leave the safety of any nearby Heavy Infantry in order to get close enough to attack enemy Foot Archers. Modestly reducing this increases their durability in the matchup meaningfully because it increases hits-to-kill on each Light Infantry sub-unit in most situations.

  • Light Cavalry’s damage vs Light Infantry no softcoded modifier -> -15%.

Finally, I don’t want Light Infantry (especially since they’ve now been cumulatively given modest-but-meaningful buffs to damage, durability, and total deployment cost) to too heavily displace Light Cavalry, or worse yet become some kind of pseudo Heavy Infantry replacement that can screen Light Cavalry adequately without being vulnerable to enemy archer fire. I doubt this will be strictly needed right now, but if they receive further followup buffs in future then I want it to be with this tweak in place already.

  • Light Infantry damage vs Light Cavalry 95% -> 90%.28

It’s hard to say without trying it in real games for a while, but I think these changes may be sufficient to make Light Infantry viable within their specific niche in Nomad games. For Standard – well, given what I know of the current meta I doubt it’ll be enough (with both how common it is to skip unit upgrades in II, and how dominant early Stable seems to be over early Barracks), but it’s still a definite improvement. We can always revisit this in future as needed – something like a further cut to the upgrade cost would be an easy way to buff them further if they’re on the right track but still need a bit of extra help.

The way the game’s unit costs and game mechanics come together is not kind to Light Infantry, and there’s only so much that can be done to overcome it that doesn’t simply overtune the unit. I’ll be satisfied if it’s worthwhile to build for its niche; it’s okay if it’s not a regular feature of every single army like many of the other units are.

Because they have very few good matchups, Light Infantry are often a victim of RoN’s focus fire penalty mechanic.

Age I rushes / Age I Heavy Infantry

The impetuous for these three sets of changes is actually not directly related, but because their gameplay effects are related (and subsequently the changes were made with consideration of each other’s effects), I’ve grouped them here together.

  • Revert: Age I Heavy Infantry (e.g., Hoplites) softcoded damage vs Cities -4% -> None.
  • Age I Heavy Infantry UUs softcoded damage vs buildings None -> -12% (same as Hoplites).

To reduce the power of early HI rushing, BHG slapped a -12% damage modifier onto Hoplites when attacking buildings. This penalty is removed when upgrading the unit in Age II (which is normal enough as far as BHG balance goes), but the penalty wasn’t applied to any of the Age I UUs (which raises and eyebrow). During early — I think maybe even pre-Alpha? — CBP development, there was some discussion about whether the latter was a bug or intentional. Applying the label “bug” to something in a game you weren’t personally part of the dev team for is a subjective judgement call, not an objective process, and the aforementioned discussions did not result in a consensus, so the maybe-bug was not treated as a bug to be fixed. As a compromise, -4% damage was applied to all Age I HI when attacking Cities – a small but universal nerf applied to both Hoplites and UUs.29

In the time since there still hasn’t been a consensus (although the majority of players who were part of the discussion (e.g., Jatin and dave) no longer play, so reaching one from the same group would be quite a hurdle). However, the thing is this isn’t just the Community Bugfix Patch and there’s a reasonable argument to be made on the balance front that sidesteps the “is it a bug” hurdle. In short, the units best at rushing — even ignoring the -12% modifier — are the UUs already since they have various stat boosts30 and so these units end up “double dipping” bonuses and can end up being significantly better than Hoplites in rushes because of it. To that end, CBP’s broadly-applied -4% damage is being removed, and instead BHG’s original -12% damage modifier is being placed on the Age I HI UUs.

  • Age II Foot Archers softcoded damage vs Heavy Infantry 90% -> 93%.31

As part of (presumably) their rush-nerfing balance changes, BHG boosted the damage that Foot Archers deal against HI just in Age I. However this lead to a weird situation where upgrading FA in Age II caused them to actually deal slightly less damage against HI because their higher attack strength gets offset by simultaneously gaining (effectively) a -15% damage modifier.32 Going along with the early CBP philosophy of changing as little as possible when addressing a given issue, their 85% modifier was boosted up to 90% in Age II to smooth this out just enough to make it no longer be a net loss of damage.33 With HI being not just usable in CBP compared to EE, but perhaps even slightly on the strong side, we can further smooth out the damage curve of FA in Ages I-III to be more linear without fear of this pushing HI out of viability.

  • Small City HP 1200 -> 1250.

Lastly is a small change with two purposes. Firstly, rushing does seem a smidge too strong in a lot of Nomad games. If the defender doesn’t already have troops not just nearby, but actually parked directly at the capital (or failing that, they have a tower), there’s often not enough time to rebuff enemy HI. At the same time, it’s still important to be able to punish overly greedy players who don’t invest enough in scouting or defenses, so nerfs to rushes should not be so strong as to make the strategy unviable.

Another issue is that in late-II in Nomad games it can be slightly too easy to knock out a city with a full-on assault, and slightly too easy to knock out non-eco Small Cities in later Ages (regardless of tech settings) before enough buildings are up to convert them to Large Cities.

At less than a 5% difference it’s only going to buy a couple of extra seconds in most situations it affects (if that), but attacks on Small Cities — particularly rushes — are often quite time sensitive, meaning that small changes are enough to nudge the risk-reward balance in the desired direction and a large change is not necessarily needed or desirable.

Generally speaking, early attacks on Cities seem to be working slightly too often for strategies that don’t involve trying to end the game in Age II-III to be as viable as I’d like.

Misc default units

These are a mishmash of completely unrelated changes that didn’t fit into any of the other groups.

  • RoN bugfix: Scout upgrade to Elite Special Forces is blocked by the Special Forces upgrade -> not.

First a small bugfix to Special Forces (VII) that might be a holdover from the scrapped Paradrop ability or something along those lines?[/note]If the Paradrop ability was tied to Special Forces at the time this was implemented it would make sense. I could be completely wrong about this line speculation, but it’s the most plausible explanation I’ve been able to come up with.[/note] Without this change you can’t upgrade from (e.g.,) Commando to Elite Special Forces (VIII) even if you have all library techs – you’re forced to also get Special Forces along the way.

  • RoN “bugfix”: Carrack (III) softcoded damage vs Caravel (III) +15% -> +10%.

As far as I know, a lot of unit balancing in RoN was done based on a unit balance testing tool built into the game.34 From what I can surmise, it pitted units against each other in an automated way so that BHG could tune unit stats and damage to achieve desired outcomes in combat. Presumably as a result of this testing, the Carrack (III) has a +15% damage modifier against the Caraval (III) despite other Heavy Ships not having similar modifiers against their own respective same-Age Light Ships. However, part of the reason the Carrack (presumably) needed this bonus in the first place is because it normally has an exceptionally long delay between when it decides to attack and when it deals any damage, a delay which is reduced in CBP to still remain — I think — the longest in the game, but a bit less crazy. Subsequently its combat performance is slightly better (especially in small-scale fights like what I think the unit balance tool did), and its compensatory damage boost can be reduced.

  • Helicopter lineup’s ramping cost 0/1 -> 2/2.

Lastly helicopters are just too cheap to spam out in later Ages, having lower ramping costs than even regular planes do. Moving them to be more or less in line with the ramping costs that other aircraft have (2/2) seems to make more sense, particularly when factoring in that the ramping cost of Helicopters works independently from Fighters and Bombers. Even at 2/2 they’re still plenty cheap to pump out if you need to do some mass scouting or assassinate a fleet of Main Battle Tanks.

Bantu

  • City discount 75% -> 70%.

This tiny nerf is intended to slow Bantu’s early game expansion down by just a few seconds: a 3/3 cost increase for their second City and a 5/5 (with rounding) cost increase for their third City. I think they’re a nation that needs some more meaningful balance work in the long term, but a small change here in the short term may help to make them marginally less oppressive in matchups against nations with weak early games who can’t contest rapid expansion by an enterprising Bantu player, and who are particularly prone to being strangled in the early game by fast-moving Bantu raiders.

British

  • Longbowmen (II) and their UU upgrades projectile speed 100/110 -> 115.

The British UUs have +2 range over the Foot Archers which they replace, but were not given any extra projectile speed to go with it. This makes their projectiles relatively easy to dodge when firing within their extended near-maximum range, particularly for Light Cavalry units. The issue is also more significant in smaller-scale fights where stray projectiles are less likely to hit other nearby units.

King’s Lowbowmen (III) and King’s Yeomanry (IV) inherited the same +10 projectile speed that was previously given to Heavy Archers (III) in CBP, but now the whole lineup is getting a small, even increase in projectile speed to help improve their performance slightly in the situations described above. This will also marginally improve their general performance outside of these situations too, but the difference is small.

Chinese

  • [H] New: Light Infantry (and Gunpowder Infantry / Modern Infantry) are now 20% cheaper to create.35
  • With the new discount supplanting the need for cost discounts on the individual units themselves, the base cost of Chinese UUs is being adjusted, removing built-in discounts.36
    • Fire Lances (III) base cost 40f/40t -> 50f/50t.
    • Heavy Fire Lances (IV) base cost 60f/50t -> 70f/60t (same as default unit)
    • Manchu Musketeers (V) base cost 70f/50t -> 70f/60t (same as default unit)
    • Manchu Riflemen (VI) base cost 80f/60t -> 80f/70t (same as default unit)
    • Manchu Infantry (VII) base cost 80f/60t -> 80f/70t (same as default unit)

These changes are a modest overall-buff to Chinese that attempts to address (albeit sometimes only weakly) several issues.

First they’re just a bit weak in general, so a buff of any kind is a step in the right direction all else being equal – however they’re generally considered particularly weak in the two Ages before they have access to their UUs. Next is partially a CBP-specific problem that’s also mostly a Nomad-specific problem: if they do manage to reach Age III-IV without a major deficit, their significantly cheaper Gunpowder Infantry can reach a critical mass that’s very difficult to deal with because cheap base costs translate into lower ramping costs, causing the size of extra units in large armies to be meaningfully cheaper than everyone else.37 Lastly, Chinese end up having not much going for them in later Ages with their UUs petering out and instant Citizens/etc generally not being as valuable once economies are already well-established.

Blue circles in the chart show the default Light Infantry / Gunpowder Infantry / Modern Infantry costs. The lower grouping shows the base cost of these units, while the upper grouping shows the fully-ramped max cost of these units. As you can see, the cost of these default units normally increases just in Ages IV and VI.

Yellow squares show Chinese LI / GI / MI costs (UUs or otherwise, depending on the Age) as of CBP Alpha 9. Because of UU discounts, unit costs here also increase in V (with Manchu Musketeers being 10 Food more expensive than Heavy Fire Lances) and VIII (where Chinese have no UU).

Red triangles show Chinese costs in Alpha 10. The new “global” discount removes the previous cost bumps in V and VIII. The change doesn’t affect the initial cost of Fire Lances in III, but does push up their fully-ramped max cost slightly.

As you can see in the slightly-difficult-to-read chart, this change results in a small buff in I and II with the hope that in tandem with slightly buffed Light Infantry, Chinese players may be able to exert slightly more control in the the early game (mostly in Nomad) by being to field a Slinger or two at a discount and then neatly upgrade them in III.

Costs are also slightly lower in Ages V, VI, and VII because the 20% discount saves more resources than the old unit-level discounts, and then in VIII it’s lower again when their (cheaper) UUs run out (which would be causing unit costs to spike up slightly).

In III the cost of Fire Lances is the same until an army reaches a large size (which is pretty much exactly what we want, since it only affects players that are already relatively successful and thus able to field large armies) and things are similar in IV with a very small discount in unit costs for small-medium armies and a small increase in max unit costs that affects large armies. When factoring in the cheaper units in the prior ages being used to feed into Fire Lances / Heavy Fire Lances, I expect this to be overall a small buff in III and roughly neutral in IV.

These changes are modest and are unlikely to move the needle significantly in nation tier rankings, but it’s a decent start and doesn’t involve delving into the mess that occurs if trying to buff them in a way that encourages them to hoard Science. It also keeps them as a more defensive nation since Light Infantry are a more defensively-oriented unit.

Dutch

  • T&P bugfix: Carrack (III) softcoded damage vs Brig (III) 0% -> 10% (matching softcoded damage vs Caravel (III)).
  • T&P bugfix: Aircraft damage modifiers vs Dutch ship UUs 100% -> 90%.38

First a couple of bugfixes related to their ever-bug-riddled Dutch ship UUs, where some damage modifiers had never been properly applied.

  • Armed Caravans receive bonus damage from Citizens and Scholars 0% -> 100%.

Then a quick intermission to better align Armed Caravans with BHG’s intention of them being “no good in offense“, but targeting their durability rather than their damage so that a player willing to do some micro can still use the degenerate but perhaps-interesting strategy of attacking (raiding) someone with a unit specifically intended to not be good for offensive use.

This aligns with the same approach (and numbers) which BHG used for Light Infantry and Horse Archers, which also receive bonus damage from Citizens and Scholars.

  • Revert: Start without free Com1 -> with free Com1.
  • [H] Start with a free Market -> without a free Market.
  • [H] Start with 2 Armed Merchants -> 1 Armed Merchant.
  • Commerce is cheaper by 15% -> 25%.

Lastly we get into the main attraction, a slightly awkward nation powers nerf in Standard and a buff in Nomad. Losing the Market but keeping the Com1 was actually what we wanted to do back in Alpha 1, but that combination requires hardcoded changes so we previously compromised instead. Now that I can edit XML document39 edit the game code itself (so long as the changes aren’t too complex), we can implement the originally desired change.

Other than not knowing exactly how this leaves them in Standard (obviously their start isn’t nearly as fast as it was before), my biggest concern personally is that this slightly heavy-handed approach to their bonuses just makes them boring. Like wow, cheaper Commerce research, very exciting gameplay. I did explore whether it was feasible to keep the two Armed Merchants but delay it until completion of their first Market, but it’s just too complex to implement (at least right now).

Long-term I’d like to explore augmenting their existing nation powers with something more thematically-appropriate with more interesting gameplay effects that can help reduce the Standard/Nomad power disparity and keep them fun to play. It’s a lot of work to both figure out and implement how exactly to do that though, so for now: boring mediocrity, the sequel to “too strong in one mode, too weak in the other”.

Now being down to half of their starting freebies is certainly going to slow Dutch down a little in Standard.

Egyptians

  • RoN bugfix: Egyptian Light Cavalry UUs deal bonus damage to only Light Horse (II), Light Cavalry (III), and Elite Light Cavalry (IV) -> all Light Cavalry units.
    • +20% damage vs all pre-V Light Cavalry.
    • +10% damage vs Hussars (V) and Don Cossacks (V).

Despite Light Camels (and their UU upgrades) having a tooltip that says “Slightly better against enemy Light Cavalry”, the implementation of this bonus is actually against only the default Light Cavalry units in Ages II, III, and IV, ignoring both LC UUs and Age V Hussars. Its damage bonus will now apply to all Light Cavalry units, though to prevent a situation where upgrading the unit makes it worse, the bonus is being applied at half-value against Hussars.

Although it’s possible to interpret the tooltip’s phrasing as meaning “it shouldn’t work against other Light Camels”, some other UUs like Mayan Light Infantry (which deal bonus damage against Light Infantry) also use the same phrasing and their bonus applies universally, including against enemy Mayan LI UUs.

Maya

  • Faster build speed 25% -> 33%.40
  • [H] Timber discount excludes Wonders -> includes Wonders.
  • [H] New: 25% Metal discount on military buildings and Wonders.
  • [H] New: Construction techs at the Lumber Mill are now given automatically and for free, once technology prerequisites are met.

Maya is an interesting case. Back in vanilla (pre-T&P’s release) they were widely considered to be a top-2 nation alongside Spanish. BHG then absolutely gutted Maya and — alongside games becoming more aggressive and players getting better over time — they ended up as one of the weakest nations the modern RoN landscape.

A big problem with buffing their existing powers is that a large Timber discount’s biggest perk is making Farms cheaper, which just encourages the Maya player to use their early advantage to rush (since their ability to boom is relatively weak).

On the other hand, their purely defensive bonuses like building HP and extra garrison power are only situationally useful, and sometimes don’t achieve much other than slowing down an impending loss.

So instead of focusing on these I decided to give back some of their nerfed build speed instead, as this is something that helps later buildings more (as buildings like Granaries take longer to build, build time reductions provide a much larger benefit in total time saved). To assist slightly with their booming, they’re also getting free Construction techs at the Lumber Mill.

Lastly is a bonus I have mixed feelings about that came from discussions with KoB, mirroring their existing non-military + Wonders Timber bonus onto military + Wonders. The Wonders part is a bit clunky but I’m fine with; the cheaper military buildings I’m a bit suspicious of, as it encourages what can be quite frustrating gameplay like spamming Towers to defend an already-tougher City. In future I might just swap this Metal discount to be on non-military buildings instead, but we’ll see how this version of their updated nation powers lands first.

I think before getting too uppity about what the perfect tuning of their bonuses is from a game design perspective, we should first try to get them up to being competitive against mid-tier nations. KoB thinks this is already enough to get them there, though I’m not personally nearly as optimistic, and my faith in Kobracle’s predictions has waned since I first implemented this change. In the end, the best way to find out how strong they now is for players to ignore both of our opinions here and to just go out and play the New and Improved™ version of Maya.

Mongols

  • Horde (IV) and Golden Horde (V) maximum attack angle 150° -> 160°.

In my rundown of Mongol UUs I mentioned that some changes were coming in Alpha 10, reverting some previous changes in CBP. I’ve currently held off on those as they also relate to two other things I want to take a look at first: Horse Archers more broadly and Mongols more broadly. It’s much easier to work on linked game systems at the same time rather than trying to do each in isolation and then having to constantly go back and make adjustments to one based on a change made in another.

For now only the more standalone change is being implemented, which mildly encourages their use of raiders (or at least as flankers in fights) whilst improving stat consistency within their UU lineup. As a random tidbit of trivia, this change is not replay compatible despite being implemented in ordinary XML and not in the game code itself.

Horse Archer maximum attack angles from before Alpha 10.

Nubians

  • Revert experimental: Foot Archer UUs softcoded damage vs Light Infantry 6% -> 0%.
  • Foot Archer UUs softcoded damage vs Foot Archers 31%/11%/6% -> 31%/30%/30%.41
  • Foot Archer UUs softcoded damage vs Horse Archers 6% -> 15%.

As was something of a trend with early CBP changes, we42 were overly deferent to BHG and tried too hard to not change things too much with the Nubian UUs.

The history of these units (in release versions of RoN) involves being evidently too strong and then receiving a pretty heavy nerf in T&P Patch 2 (“0800”) which resulted in some pretty weird numbers in the end. In official balance Kushite Archers (II) have a 142% damage modifier against Foot Archers, but only a 106% damage modifier against Horse Archers. The upgraded Royal Kushite Archers (III) and Apedemak Archers (IV) then have the 106% bonus against both unit types. +6% damage is generally trivial in most matchups and will often be indistinguishable from having no bonus at all.

Early versions of CBP, again trying to stick too closely to official balance, tuned this odd curve slightly to be 131%/111%/106% against Foot Archers and mirrored the original 6% damage bonus when attacking Light Infantry as well. I think this approach, though well-intentioned, was a mistake.

The three units are now getting their bonus against Foot Archers evened out to roughly 30%, with half this value against Horse Archers. With the “main” bonus there, there’s no need for the trivial side-bonus in the Light Infantry damage (which per above was too small to do much anyway), so that’s being reverted.

Something frustrating about balancing the Nubian UUs is that their higher damage causes an elevated risk of overkilling a target. When that happens, arrows originally intended for the target will look for immediately adjacent targets which they can damage instead (hitboxes for projectiles are generally quite generous in RoN compared to e.g., a FPS game). This means that when attacking bunched-up units, the Nubian UUs will seem to overperform (because their overkill damage isn’t wasted), but when attacking sparsely distributed units, they might seem to underperform (because a lot of their arrows just go into the ground when the intended target dies). This effect also scales somewhat with how many (sub-)units are involved in a fight; at low (sub-)unit counts any given sub-unit can at most have relatively few adjacent sub-units. At high (sub-)unit counts — especially if units are kept in a thick formation — each sub-unit may have many adjacent sub-units. This may mean that these bonuses are more effective during later Ages just by virtue of army sizes being higher the later into the game you go.

This overkill effect causes quite a bit of variance in how these UUs perform in both “lab tests” and the real world, and little can be done to mitigate it, particularly given how hard it is to meaningfully influence unit clustering mid-fight. The chosen value of ~30% has tried to keep this variance in mind but performance of these units will still vary in your games. Note that this value should be high enough for them to normally beat Crossbowmen in a head to head fight.

Three example 5v5 Age II fights between Kushite Archers (left) and Archers (right) with varying degrees of sub-unit adjacency (not tested is a very sparse formation which is difficult to create intentionally). While it’s certainly a factor in fights, random factors (such as which units get targeted by how many attackers) also play a significant role and can outweigh unit adjacency in terms of influence over the outcome of a fight. The results shown are not intended to be representative of how each style of fight typically ends (I couldn’t be bothered running three tests repeatedly to average down results for this largely-flavor screenshot).

Persians

  • Heavy Infantry UUs LoS 9/9/9/9 -> 7/8/9/10 (in Age I/II/III/IV respectively).

Most ranged units in Rise of Nations follow the same “rule” when it comes to their range vs their line of sight: LoS = range + 1. The Persian UUs are one of relatively few units to do this differently, originally having a flat 10 LoS.

Normal Heavy Infantry units, by comparison, start with 6 LoS in Age I and gain +1 with their upgrade in each Age, tapping out at 9 LoS in Age IV.

It’s plausible that the LoS for the entire unit line was copied from the correct-in-IV value of 10 for Arquebus Immortals but then not updated in the earlier units after copy-pasting stats. It’s also plausible that they really were intended to have massively improved LoS, though this has the effect of making them much stronger early game raiders since they can scout more effectively and then either kill or easily run away from basically any defending unit.

CBP previously adjusted their LoS down to a flat 9, but now that I’m being less scared of deviating from original values where it makes sense, their LoS is being adjusted to be a hybrid between the “rule” for ranged units and the normal scaling LoS seen in melee Heavy Infantry.4344

Romans

  • [H] Towers’ Military prerequisites are ignored -> aren’t ignored.45
  • [H] Forts’ Age prerequisites are ignored -> aren’t ignored.

This is a small and largely insignificant nerf. Having access to early Towers currently has no effect in Standard (since Romans start with Mil1 for free anyway), and it seems to basically exist just to ruin a subset of Nomad games, particularly 1v1 or 2v2 games where there are less chances to solve a Tower-induced wood problem by borrowing an ally’s spare trees.

The Fort adjustment is being done for neatness (a BHG-approved game design choice)46 rather than strictly for gameplay reasons since it’s weird to be able to build Forts but not Towers, though it should have virtually no effect anyway as it’s exceptionally rare to want to seriously build a Fort in Age I in any game mode.

Note that Romans’ ability to ignore the Mil2 prerequisite on Forts has been left intact.

All paths lead to needing Classical Age to build a Fort.

Russians

  • RoN bugfix: Katyusha Rocket (VII) damage vs Foot units (“F” mask) 115% -> 100%.
  • Partial revert: Katyusha Rocket (VII) splash strength 40% -> 50%.
  • Revert: Katyusha Rocket (VII) damage vs Mounted units (“M” mask) 105% -> 100%.
  • Revert: Katyusha Rocket (VII) damage vs Vehicle units (“V” mask) 105% -> 100%.

The Howitzer nerf in vanilla’s Patch 4 was incorrectly not applied to the Russian UU equivalent, so we have a small bugfix there. This missing official nerf also helps to explain why it seemed strong enough to need a decent nerf in CBP to make it not outperform its upgrade (Rocket Artillery). With the bugfix in place, the previous CBP nerf can be partially reverted and the previous small CBP compensation buffs should be unnecessary.

Spanish

  • Resources from Ruins 30+20 (10+5 bonus) -> 30+15 (10+0 bonus).

Spanish don’t compete with high-tier nations so this isn’t strictly a power level issue, but tying too much bonus to Ruins bonuses causes a lot of variability in their early game performance (which in turns influences their whole-game performance). The problem is worse in Standard where — combined with their extra Scout — enough early Ruins can lead to stacking early Science, in turn finding even more Ruins (+LoS on Scouts) that give even more resources. Curbing this positive feedback loop a little will make them a bit more consistent, and we can look at finding better ways to buff them up in future patches.47

At time of original implementation it was of course known that this was a risk, but without hardcoded changes there weren’t many alternatives. Now that we’re changing nation powers directly in game code, the risk is an unnecessary one.

CTW CHANGES

As mentioned in the technical changes section, CBP is moving CtW fixes to their own copy of each of the CtW campaigns, while keeping the unmodified versions accessible if you want them. This gives players the choice to prioritize gameplay stability (playing the old versions which won’t be updated, but with known bugs unfixed) or bugfixes (the new mirrors will have bugfixes applied, but there’s a chance something about your campaign may change mid-campaign, and I don’t know what possible edge-case effects changing the CtW files for a campaign-in-progress could potentially generate).

Because the campaigns have been cloned, and to reduce CBP’s distribution size, some map texture files will be generated by the game the first time the CBP version of a CtW campaign is loaded instead of being shipped pre-generated. This will increase the load time the first time each of these campaigns are started. These files only need to be generated once per campaign and load times will go back to normal for all subsequent launches of that campaign, including subsequent playthroughs of the same campaign.

The non-CBP versions of the campaigns can be accessed via the drop-down on the CtW menu. If you have an existing CtW save which you would’ve accessed from the “Continue” button, that save is still available and will still work, you just need to load it instead of using said button.

The label of “Custom Map” is a bit misleading, as what the drop-down actually shows are all the CtW campaigns that the game has found in your RoN install.

While I’ve pushed most of the CtW changes to a later version in order to speed up the release of Alpha 10, a few fixes are still included here. Do note that as part of these changes I’ve had to “CBP-ify” several linked CtW files which I only have a passing understanding of, such as localization files. I’ve done my best within time constraints to try to identify and fix issues while testing before releasing Alpha 10, but if you run into an issue with the CtW campaigns while using CBP (that you don’t normally have with RoN:EE), please let me know so I can look into it.

Alexander the Great

  • T&P bugfix: Making peace with the Spartans causes them to attack you forever -> once.

The Alexander campaign has a scripting typo of particular significance: when playing the Unite the City States scenario in Greece, you’re given the option to either wipe out the Spartans or leave them alone. Your choice is then checked using a variable called sparta_peace. If you leave them alone this is set to a value of 1, which causes the Spartans to contribute 22 (!) Anusiyas in fights against you at a random time during future procedurally-generated Conquest battles (not in the scripted bespoke scenarios). This is supposed to happen once and then turn off, but the trigger disabling it incorrectly uses the variable name sparat_peace, so you have to deal with 22 Anusiyas showing up to attack you in every single procedurally-generated Conquest battle for the rest of the campaign!

  • T&P “bugfix”: Pillage scenario: hint is now less ambiguous about what “Mercenaries” means.
  • T&P “bugfix”: Pillage scenario: hint now provides info about City capture / razing.
  • CBP “bugfix”: Pillage scenario: start with Science 3 -> Science 5.

Because you’re offered the individual unit Greek Mercenaries (II) during the Alexander campaign, using the term “Mercenaries” in the Pillage scenario48 can be confusing. I’ve tried to clarify in the hint text that “mercenaries” essentially just means “troops” to avoid confusion.

The same Pillage scenario has a unique mechanic where capturing Cities automatically (and immediately) razes that City and all of its associated economic buildings and gives a fat plunder bonus in return, which is very helpful to know when trying to successfully complete the objective in the allotted time, so I’ve mentioned this in the hint.

This scenario somewhat relies on Ruins for resources, meaning that it’s harder to complete in CBP due to Ruins giving less resources. While I did check to make sure that it’s still doable on Toughest despite this, it’s probably still better to offset the lost resources and keep it closer to its intended difficulty.

  • EE bugfix: Map art for existing link between Macdeon and Lydia is missing -> not missing.
  • EE bugfix: Map art for existing link between Greece and Lydia is missing -> not missing.

For some reason several errors were made in the links between territories when CtW map art was updated for EE. In this case, two links were removed from the art even though they’re still there in the game files and functional within the game. These links are now shown on the map, aligning with the actual gameplay (and also what T&P’s map shows).49

Um, yeah, so it turns out these 22 guys in the Alexander campaign are only supposed to appear once…

Cold War

  • EE bugfix: A link between British Isles and Scandinavia deceptively exists on the map art -> doesn’t exist on the map art.50

This link isn’t shown in the T&P version of the map, and isn’t a functional link in any official release of the game, including EE. I guess it was just an art error when they were remaking the CtW maps for EE.

  • CBP bugfix: Nuclear Missile Submarine (VIII) ramping cost 2o -> 2o/1g.

Nuclear Missile Submarines were incorrectly not included in the ramping cost nerf to Submarines / Attack Submarines in CBP, so are now being fixed to correctly be affected.

Napoleon

  • EE bugfix: Map art for existing link between Corsica and Sardinia is missing -> not missing.51

Just like with the Alexander map art fix, there’s an already-functional link here with map art in T&P that’s missing map art in EE.

  • QoL: Map has no zoom -> an optional small camera zoom out (default zoom is unchanged).

This is a five-year old QoL feature ported over from the venerable Misc Fixes that was going to eventually be added as a user-configuration addition through the “Optional Changes” configuration tool in CBP Launcher, but I’ve decided to just integrate it directly instead. The reason I originally made the change is because I felt that the camera can feel a bit claustrophobic in the Napoleon campaign – the camera zoom and scaling of cities/armies on the map vary by campaign and Napoleon’s felt a bit off to me. You can find a screenshot of the difference on the Misc Fixes page (it’s the third image in the gallery thing), or you can just zoom out yourself while on the CBP version of the Napoleon map.

If this change causes you any issues, give me a yell – I can always switch it back to being off-by-default if it’s causing issues.

New World

  • CBP “bugfix”: Andes scenario: start with +200 Food / Timber / Metal / Wealth to compensate for lower Ruins bonuses.52

An even more Ruins-reliant setup than the Pillage scenario in the Alexander campaign, the Andes scenario here relies very heavily on Ruins for resources, meaning it’s harder to complete in CBP due to Ruins giving less resources. Once again I did check to make sure it’s still doable on Toughest as-is, and once again think it’s better to make adjustments to keep it closer to its intended difficulty.

Because resources at game start is stronger than resources from Ruins (you can build a stronger army earlier in the game), the value chosen represents roughly half of the lost res if you picked up most available Ruins with 25+25 Ruins vs 20+15 Ruins. The higher-Science route couldn’t be as easily used here because you’re already given a high Science level, and the final two Science levels give map visibility as bonus perks (which would make the scenario much easier).

Misc CtW

Warpath is a bonus card that’s just Military Eureka but better, so it should reasonably have a slightly higher tribute value instead of the same tribute value as that card.

  • T&P “bugfix”: Warpath tribute value 50 -> 60.
As a p.s., the Alexander campaign (top row) in EE uses a different, darker dotted line – I’ve copied the EE-style line for each map which is why the CBP one (top-right) may look out of place here without the context of the other lines from that map. An aside that I wanted to make sure I mention *somewhere* for poserity is that I’ve run the updated CtW PNGs through Oxipng (with conservative settings for space-saving transformations i.e., off), something of an offshoot of the better-known OptiPNG. This makes the distributed PNGs files smaller (losslessly) and shouldn’t cause any issues, but might be useful for someone to know if they ever pick up work on CBP in future and wonder why their PNGs seem to be bigger.

COSMETIC CHANGES

  • RoN bugfix: Colosseum (III), Temple of Tikal (IV), and Statue of Liberty (VI) are no longer missing proper Wonder announcements on being started and completed.53
  • RoN bugfix: The “mini library” at the top of the in-game UI no longer loses the top of research progress bars for some nations.54
  • RoN bugfix: Chinese Fire Lances (III) no longer incorrectly use the Light Infantry selection sound despite being Gunpowder Infantry.
  • RoN bugfix: Spanish Tercios (IV) no longer incorrectly use the Heavy Infantry selection sound despite being Gun Heavy Infantry.
  • [H] T&P bugfix: Other players moving capitals now issues a capital_moved notice (icon is of a capital moving) instead of a capital_notice notice (icon is a skull and crossbones).
  • T&P bugfix: The American Armored Car (VI)’s graphics are supposed to be used for the Armored Scout Car (VII), just like is already in place for Lakota and Iroquois.
  • T&P bugfix: The American Temple no longer switches to the wrong building style from the Industrial Age onwards.
  • T&P bugfix: Commander Paoli (Napoleon CtW) no longer incorrectly uses Commander Schwarzenberg’s icon.
  • T&P bugfix: Indian and Persian Merchants no longer use the wrong unit style in early ages.
  • T&P bugfix: One crew member of The CEO and The Comrade no longer periodically T-poses during its idle animation.
  • T&P “bugfix”: The second crew member of The CEO and The Comrade no longer reuses one of its idle animations from the second crew member, instead using only its own (existing) animations.55
  • T&P bugfix: Hanging Gardens (II), Forbidden City (III), and Red Fort (IV) are no longer missing proper Wonder announcements on being started and complete.56
By fixing the notification, we’ve lowered the skill ceiling of the game. Trash change, trash patch, unsubscribe.
  • T&P bugfix: Persians Arquebus Immortals (IV) no longer incorrectly use the Heavy Infantry selection sound despite being Gun Heavy Infantry.
  • T&P bugfix: Bandeirantes and Elite Bandeirantes (New World CtW) no longer incorrectly use the Heavy Infantry selection sound despite being Gun Heavy Infantry.
  • The late-game Spy used by “Asian” nations that was previously a user-configurable Optional Change in CBP Launcher has been set as the default, just like Jatin wanted.57
  • The CBP version of the RoN game exe now uses its own “CBP-ified” icon.58
  • A CBP intro video has been merged into the Skybox intro video.59
  • A purple CBP icon and red XBP icon have been added on #ICON171 and #ICON172 respectively. I’m not 100% if these will be used but want the option to do so.
    • The purple CBP icon is intended for a CBP “test branch” with temporary changes that (unlike the Pre-Releases) are not specifically intended to be in the main release. This can help players to e.g., test out changes that are hard to simulate or even changes that are specifically not going to be in the main release, just to better understand something about the game.
    • The Red XBP icon facilitates a CBP spin-off (eXperimental) so that seemingly-good but overly-divergent experimental gameplay changes which aren’t a good fit for the main release can have somewhere to live if I can ever be bothered implementing them. I probably won’t, but you never know.
I’m MHLoppy, and this is my favorite change on the Citadel in Alpha 10.

TOOLTIP / TEXT CHANGES

I’ve pushed back a lot of tooltip changes for the sake of speeding up the release of Alpha 10, but have done fixes to some of the more “standalone” tooltips, as well as making sure a previously undocumented aspect of the Russians’ nation powers is explicitly communicated. As usual, tooltip changes only affect English tooltips because we don’t have a full localization team to draw from.

  • RoN bugfix: Early British UUs no longer incorrectly describe their range as “medium” in their tooltips.60
  • RoN bugfix: Koreans’ Flaming Arrow (II)’s tooltip is no longer missing the word “normal” in its tooltip.
  • RoN bugfix: Versailles (V)’s tooltip no longer provides misleading list of affected units, instead correctly stating that all Factory / Siege Factory units are affected.
  • RoN bugfix: Porcelain Tower (V)’s tooltip no longer incorrectly lists the wrong value for its bonus Market income.
  • RoN bugfix: Koreans’ Elite Royal Hwarang (IV) no longer incorrectly claims to be “long” ranged despite having the same “medium” range stat as most other Foot Archers.
  • RoN bugfix: Tactics techs’ tooltips now clarify that they upgrade ability ranges, not unit ranges (other units using the same abilities, e.g., The Senator, are thus also affected).
  • RoN bugfix: Tactics techs’ tooltips now clarify that they also upgrade the range of Counterintelligence.
  • RoN bugfix: Anti-Tank Rifle (VI), Bazooka (VII), and Anti-Tank Missile (VIII) tooltips now all describe their range as “medium” instead of “short”, “short” and “long” respectively.61
  • RoN bugfix: Anti-Tank Missile (VIII) tooltip no longer refers to its not-special “high” accuracy.
  • RoN “bugfix”: Mayan Recoilless Rifle (VII) and Dragon AT Missile (VIII) tooltip now follows a more standard tooltip template, describing their own role and then comparing themselves to the units they replace.
  • RoN “bugfix”: Chinese Manchu Musketeers (V), Manchu Riflemen (VI), and Manchu Infantry (VII) tooltip now states their higher range and LoS.
  • RoN bugfix: Elite Javelineers tooltip no longer has an unnecessary extra space in it.
  • RoN bugfix: Medium-detail-level Science research tooltip no longer has unnecessary extra space.
  • RoN bugfix: “Early Info Age” game setting tooltip no longer has unnecessary extra space.
  • RoN bugfix: “Explored” game setting tooltip no longer has unnecessary extra space.
  • RoN bugfix: Incan Siege Mortar (VI) tooltip no longer has unnecessary extra space.
  • RoN bugfix: Korean Flaming Arrow (II) tooltip no longer has unnecessary extra space.
  • RoN bugfix: Auto All Clear setting tooltip no longer has unnecessary extra space.62
  • RoN bugfix: Fast Forward control tooltip for Observers no longer has unnecessary extra space.63
  • RoN bugfix: Chat text field tooltip on Diplomacy screen no longer has unnecessary extra spaces.
  • RoN bugfix: CtW help tip for territory strength no longer has unnecessary extra space.
  • RoN bugfix: CtW help tip for supporting armies no longer has unnecessary extra space.
  • RoN bugfix: CtW help tip for allies no longer has unnecessary extra space.
  • RoN bugfix: CtW help tip for enemy armies no longer has unnecessary extra space.
  • RoN bugfix: CtW tooltip for bonus cards no longer has unnecessary extra space.64
  • RoN bugfix: CtW tooltip for rare resource for territories that don’t have one no longer has an unnecessary extra space.65
  • RoN bugfix: CtW tooltip for bonus card for territories that don’t have one no longer has an unnecessary extra space.66
  • RoN bugfix: CtW tooltip for quitting campaign when being invaded no longer has unnecessary extra space.
  • RoN bugfix: Generic CtW text for winning a CtW campaign no longer has unnecessary extra space.
  • RoN bugfix: CtW text for losing a CtW campaign due to armageddon no longer has unnecessary extra spaces.
  • RoN bugfix: CtW text for winning with allies no longer has unnecessary extra spaces.
  • RoN bugfix: CtW text for messages from invading nations no longer have unnecessary extra spaces.
  • RoN bugfix: CtW text for taking an entire continent no longer has unnecessary extra space.
  • RoN bugfix: CtW text for eliminating another nation no longer has unnecessary extra spaces.
  • RoN bugfix: Tooltips for adding friends no longer have unnecessary extra spaces.67
  • RoN bugfix: Tooltip for deleting a player from your ignore list no longer has unnecessary extra space.
  • RoN bugfix: Tooltip for list of ignored players no longer has unnecessary extra space.
  • RoN bugfix: Help text for /channel chat command no longer has unnecessary extra space.
  • RoN bugfix: Help text for /emote chat command no longer has unnecessary extra space.
  • RoN bugfix: Help text for /squelch chat command no longer has unnecessary extra space.
  • RoN bugfix: Help text for /whisper chat command no longer has unnecessary extra spaces.
  • RoN bugifx: Help text for /whois chat command no longer has unnecessary extra spaces.
This is what the listed upgrade path (bottom of tooltip) used to look like for Romans. You are entitled to one (1) cookie if you recognize this replay.
  • T&P bugfix: Hoplites (I) no longer list Greek Mercenaries (II) as their upgrade in their tooltip (at least for Romans and Spanish, possibly other nations as well).68
  • T&P bugfix: The “level 2” Republic tooltip no longer has an extra space in it.
  • T&P bugfix: Wellington (Napoleon campaign)’s tooltip now documents that he’s a detector (can reveal invisible units).
  • T&P bugfix: Wellington (Napoleon campaign)’s tooltip no longer incorrectly refers to armor using the ambiguous term “defense”.
  • T&P bugfix: Russians’ nation power tooltip now mentions their undocumented baseline attrition that applies when they have no attrition technology researched.69
  • T&P bugfix: Tip 73 no longer has unnecessary extra space.70
  • T&P bugfix: CtW help tips for client states no longer have unnecessary extra space.
  • T&P bugfix: Cold War CtW tooltip for DEFCON level no longer has unnecessary extra space.
  • T&P “bugfix”: Unused CtW text for losing a CtW campaign due to loss of the hero unit no longer has an unnecessary extra space.71
  • T&P bugfix: CtW tooltip for vassalage in diplomacy no longer has unnecessary extra space.
  • T&P “bugfix”: The Comrade and The CEO’s tooltips no longer include ambiguous/misleading “friendly units” moniker, as the relevant bonuses don’t actually affect allied units.
  • EE bugfix: Tooltip for Twitch username text field no longer has unnecessary extra space.72
  • CBP bugfix: the temporary CBP logo made by hastily using the warp tool on the text has been replaced by a more sane implementation made using properly-curved text.
  • The CEO’s tooltip is now more clear about his specific effects on nearby City production.
  • Fighter-Bomber (VII)’s tooltip now specifies that it’s upgraded via the Jet Fighter upgrade at the Airbase.
  • Jet Fighter-Bomber (VIII)’s tooltip now mirrors Fighter-Bomber’s information regarding Aircraft Carrier deployment.
  • Russians’ nation powers tooltip info about oil production is now on the same line as the info about Refineries, rather than the info about plunder.
  • Tactics techs’ tooltips now repeat phrases like “Level 1” etc less.
  • Dutch nation powers tooltip info about free Merchant moved to its own line and now specifies that the free Merchant is actually an Armed Merchant.

It’s theoretically possible that a few of the space-removals were intentional to push a word to a new line, but because this would be font-size-dependent (and font size is largely resolution-dependent), I don’t find it to be a very convincing explanation; “typos” seems more likely. Some could also possibly have been for spacing reasons, but then this choice was wildly inconsistent within the same or similar contexts, so I also don’t find it that plausible.

That attrition you take while in Russian territory even before they have any attrition technology? Yeah, that’s that previously-undocumented nation power. The part where it doesn’t immediately activate in Nomad upon City completion currently remains a mystery.

MISC CHANGES

  • T&P bugfix: Gun Mahout (IV) and Culverin Mahout (V) are now correctly labelled in help.xml.
  • The duplicate rider previously added to the Mahout (III) and Gun Mahout (IV) for technical reasons when removing their fake melee attack has been removed after resolving said technical reasons.
  • Black Watch -4 HP re-classified as a “bug”.73
  • Archers (II) increased damage vs Heavy Infantry reclassified as a “bugfix”.
  • Iroquois Scout UUs naming problem confirmed as a bug based on the leftover T&P motd.txt file directly recording both their name change and previous unit names.
  • The size of the CBP thumbnail on the Steam Workshop has become slightly smaller so that previewing a link to it floods Steam chats slightly less. It can’t be made smaller than the new size without interfering with how it appears in previews when browsing the Steam Workshop.
  • The bad offset for the comment in unitrules.xml detailing the “Special” type of masks has been realigned.74

Known problems

  • Windows 11 users with Smart App Control enabled may struggle to use the sequence of CBP Setup GUI -> CBP Launcher because I don’t want to pay $500 for an EV certificate. If you have this problem you can probably work around it by launching riseofnations_CBP.exe directly (a shortcut should be fine). As the program gains more trust it may be considered “trustworthy” and no longer be blocked. Smart App Control does not support whitelisting individual programs.
  • The first release was missing the tooltip change for the new Chinese nation power (but UU tooltips are updated). I’ve since updated the files, but if you installed in the first several hours then you’ll have to either switch the file manually or wait until next patch for the files to be cycled into your install.

 


 

  1. Which unfortunately some people incorrectly assumed reflected the long-term ideals of the patch.
  2. Non-major version differences like 9b -> 9c should be fine.
  3. (or dictatorial, if you’re more pessimistic)
  4. The total amount of time I spent on Alpha 10 (including stuff that I worked on but either dropped or pushed back to later patches) is probably around 600 hours.
  5. Linux users who are unable to use CBP Launcher: you can use the shipped .delta patch files using any program that supports bsdiff patches to patch your riseofnations.exe file to riseofnations_CBP.exe, then copy all the remaining non-patch, non-txt files from the Community Balance Patch folder into your Rise of Nations folder (which should overwrite no files on first file-copy, or only CtW files on subsequent file-copying). You won’t get automatic updates or other launcher features but you get the core CBP gameplay experience.
  6. If you want the object mask workaround without using CBP you’re still free to use mjn33’s workaround utility (which can be run via basic GUI and does not need to be run via the command line like the readme implies). Using that to generate a new balance.xml file, then reducing the bonuses for ruins in rules.xml subjectively represents >90% of all CBP bugfixes and balance changes prior to Alpha 10.
  7. If you’re a mod maker and for some reason want to introduce CBP compatibility, get in touch and I can try to help, but please know that during any given day I’m often triaging between several different tasks already so I can probably only give brief advice at best.
  8. This is implemented at the XML level, not at a hardcoded level, and does mean that if you switch your language files to something else, you’ll lose out on this, but it also means you can manually add it back in.
  9. Unfortunately some of my own archives were corrupted in the past, so I’m no longer comfortable using them as the basis for public distribution.
  10. Couldn’t afford gaffer tape, sorry Savage.
  11. Keeping the same primary exe name between updates should make a few things like firewall rules easier to handle.
  12. Well, really in the most ideal world, someone else would do the rewrite and I would have one less hat to wear. The existing codebase is an absolute mess from years of unsustainably bolting on “one more thing” though, so I don’t blame other people for not wanting to touch it.
  13. For users of recent Pre-Release versions, this is what you’re already familiar with from those PRs.
  14. These were written in a paranoid way largely due to overzealous antivirus false positives in old versions, but that doesn’t seem to be causing as many problems these days.
  15. This is why the layout on the Options tab may look a little weirdly-spaced out now.
  16. Maybe with the rewrite since it’s a pain in the ass to do with the current implementation.
  17. If you’re in the crowd who enjoy speedrunning and/or glitching old games, Super Mario 64 is an example of a game using an LCG for its RNG engine, and you can abuse this knowledge to do some interesting things to the game.
  18. Remember that we should shut up and listen to the experts here.
  19. I updated some constants used by the RNG engine to something that seems to exhibit slightly better results in empirical testing – but the effects on randomness quality are much lesser compared to switching between the upper/lower 16 bits.
  20. The game explicitly prevents mirror matchups and I haven’t changed that.
  21. The order the game uses for this isn’t alphabetical, and since we’re simulating what the game does, it’s easiest to just follow how it maps nations to numbers.
  22. And if it wasn’t, it should’ve been.
  23. Because the healing rate is 1 HP per X time increment, rounding can have a huge effect when it goes from, say, 1 HP per 3.1 seconds (rounding to 3) vs 1 HP per 2.9 seconds (rounding to 2).
  24. With the the -10% in place they deal less DPS to a Bomb Ketch than a Sloop does after controlling for the bonus damage they get from being an age up.
  25. Which is a bit uneven because of the attack strength going 22 -> 24 -> 25 in VI/VII/VIII respectively.
  26. This used to be noted as “2 -> 3/2” because that’s both what’s used in the game files and by BHG themselves in their patch notes, but early feedback suggested that it’s hard to read/understand for people less familiar with this history.
  27. Cataphracts (II) have a total modifier of 170% against Archers (II) and a similar 179% vs Javelineers (II). Although Light Horse (II) have 114% against Archers, they have a much higher 158% against Javelineers.
  28. This is still overall net positive damage in II/III given their existing +1 attack strength buff in CBP).
  29. From memory this was also secondarily aimed at slightly reducing the power of multi-player rushes in team games, which I think it has failed to make meaningful inroads on, which is something which is quite hard to address without bringing down one-player rushing alongside it.
  30. With the exception of Persian Immortals who trade some stats for having a ranged attack.
  31. For modders: note that this hasn’t been applied to the unused Anusiya Archers unit. I wanted to for consistency, but the 85% modifier is already not applied to them or Athanatoi Archers by BHG so doing so without rectifying that would’ve made it even more inconsistent, and I didn’t want to do the extra work of perpetually maintaining change-parity on a unit that’s not used.
  32. Age I: 12 * 2.15 * 1 = 25.8. Age II: 14 * 2.15 * 0.85 = 25.585.
  33. 14 * 2.15 * 0.90 = 27.09.
  34. Remnants of it still exist in the EE game code, but I’ve only been able to get as far as its loading screen when messing around trying to re-enable it.
  35. Like most unit discounts, this is calculated from unit base cost, not unit total cost. It will also affect the base-cost portion of unit upgrades.
  36. In future I might try to add a bit more spice to some of these UUs, as particularly the Age VI/VII units (which were already a bit on the boring side) now have limited gameplay differences from the base units they replace.
  37. Heavy Fire Lances cap at 247 total resource cost in Alpha 9 compared to Arquebusiers at 292, and obviously regular Fire Lances are much cheaper than that again.
  38. Though it’s rarely relevant.
  39. This is a joke referring to an unrecorded message from this individual which you can find on the RoP Discord server if you’re not age-gated.
  40. So instead of taking 80% of the usual time to construct a building, it’ll take 75%.
  41. The odd first value is due to rounding.
  42. Mostly me.
  43. Which is normally 6 in I, then another +1 with each Age thereafter.
  44. Scaling 7-10 is actually basically the LoS value I wanted in CBP all along, but back in the early days I always leaned towards the change that was less different, which was probably not the worst thing to do back then with so much left to learn about how the game works.
  45. I think technically they also no longer ignore Age prerequisites for Towers, but it’s not relevant because Towers don’t have an Age prerequisite.
  46. If you look at the helpfully left-in motd.txt file for an EE or T&P install, you’ll find some internal notes about T&P gameplay changes. Among these is a line saying “Arbitrarily removed Dutch fort-building speed bonus to make “help text” room for free market and merchants”. Or in other words, adjusting unimportant gameplay “arbitrarily” for the sake of neatness.
  47. It’s likely that if we can find something good for them, their Ruins bonus will be lowered again to 25+15 and still be a net-positive power-wise, but that’s contingent on finding something good.
  48. Random bonus trivia: this scenario contains the Rubber rare resource, though of course you can’t see it because you’re in Age II.
  49. The quality of this art fix is middling and was done quite quickly as the art error was only noticed during the very final stages of Alpha 10’s development. If somebody wants to do a better job of it without controversially using GenAI, please feel free to send me the result and I can see whether it’s worth forcing everyone to regenerate their Alexander map textures for it.
  50. The art fix for this is of very middling quality: for the sake of time, the goal was to do a touchup good enough that it doesn’t look wrong at a glance (rather than trying to do a genuinely faithful reproduction). If somebody wants to do a better job of it without controversially using GenAI, please feel free to send me the result and I can see whether it’s worth forcing everyone to regenerate their Cold War map textures for it.
  51. The quality of this art fix is middling and was done quite quickly as the art error was only noticed during the very final stages of Alpha 10’s development. If somebody wants to do a better job of it without controversially using GenAI, please feel free to send me the result and I can see whether it’s worth forcing everyone to regenerate their Napoleon map textures for it.
  52. This applies equally to both variations of the scenario, as they’re similar enough that I didn’t feel the need for divergent values.
  53. These three had typos in their XML.
  54. This is caused by the shadowing of the UI elements above it clipping into the progress bars.
  55. Based on context I think this is more-likely-than-not a bug, but the intent isn’t completely clear so I can’t say confidently that it is even after checking the animations. Either way, the difference between the two animations is quite minor.
  56. The entries for these three were just completely missing in XML.
  57. The short history is that in vanilla RoN (2003), the late-game Asian Spy had its own distinct appearance compared to earlier in the game, just like the Spies of other unit styles. However, in T&P (2004) this was removed and the Asian Spy appearance remained the same throughout the game. I believe this was primarily a visibility/readability issue with the original version so I modified it to improve readability and implemented it as a multiplayer-compatible Optional Change in CBP. While showing off the WIP, Jatin commented that he wanted to see it in CBP.
  58. Only the 32 bit icons were updated; the 4 bit and 8 bit icons I left alone, as I doubt they’ll ever be used. My implementation of this is mildly scuffed as I prioritized legibility and maintaining the original icon’s (contrast boosted?) colors over consistency.
  59. The encoding for this is not identical to the original, so if this video doesn’t playback correctly on your system, I’d be interested in knowing.
  60. This is a tooltip bug introduced with vanilla Patch 4, when the range of earlier British UUs was increased to match the range of the later unit(s), but evidently the tooltips for these earlier units wasn’t updated to match the stat change.
  61. It’s hard to use the same descriptions for each, but this seems closer to accurate than before, especially compared to the range of other units during each unit’s respective Age.
  62. This one probably doesn’t get seen normally because of bullet point formatting, but I’m noting it here anyway in the interest of documentation completeness.
  63. Given that the ability to join games as an observer was disabled I doubt this will ever actually matter, but I’m noting it here anyway in the interest of documentation completeness.
  64. I’m not sure where this text actually gets used (if it even does), since hovering over cards on the board normally just shows the card itself.
  65. Like a few of the others, I don’t know if this is actually used anywhere.
  66. Like a few of the others, I don’t know if this is actually used anywhere.
  67. These specific ones might be a GameSpy-specific tooltips and so might never be used in EE – the stakes are so low that I didn’t check.
  68. This bug is caused by Greek Mercenaries no correctly declaring a <GRAFT>. Putting the usual <GRAFT> in (in this case, Phalanx) solves the issue with no observed issues in the Alexander campaign.
  69. )I don’t know what causes it to not immediately activate in Nomad)
  70. This one probably doesn’t get seen normally because of bullet point formatting, but I’m noting it here anyway in the interest of documentation completeness.
  71. The implementation that was shipped in the final version of the game was changed so that you don’t lose when your hero unit (e.g., Alexander) dies, so this text is never actually used as far as I know.
  72. Since this was disabled in 1.20, I doubt we’ll ever see the tooltip again.
  73. This is based on data mining the RoN Beta 2 release; it looks like all the Age VI Modern Infantry had their HP increased slightly, but BHG forgot to apply the change to Black Watch.
  74. I’m guessing that the text used to be something like “Special Type” and the second word was removed without realigning, but hard to know for sure.

Leave a Reply

Your email address will not be published. Required fields are marked *

I accept the Privacy Policy

This site uses Akismet to reduce spam. Learn how your comment data is processed.