August was another big month for Notoris 2. A major focus this month was finally fleshing out the Generic Officer system, while also continuing to expand officer progression, combat, and the campaign systems around them. I'm also spending more time actually playing full campaigns now, which has started exposing a lot of problems that aren't obvious when testing individual systems. Here's what I worked on this month.
One of the biggest pieces of work this month was fully fleshing out the Generic Officer system. The goal is for generic officers to have enough variation that encountering a new officer doesn't feel like you're just looking at the same character with slightly different stats. There are now 5 Officer Template types, each with:
5 unique portraits
5 different skill tree variants
100 possible names
Each of those combinations available across every race
So if you encounter a Light Elf STR-type officer, for example, they can roll one of 5 different portraits, one of 5 different skill trees, and a random name from a pool of 100 names. This gives each Officer Template × Race combination a large number of possible variations while still keeping their overall archetype recognizable. The system now supports the different race, subtype, portrait, name, and skill tree combinations automatically, which gives me a much better foundation for generating generic officers across the campaign. With this addition, the world feels much more immersive and alive. Each generic officer feels unique and specialized, though not as powerful as scripted officers.
Alongside the generic officer work, I continued expanding the skill tree system itself. Scripted/Historical officers are starting to receive their own unique progression paths. Some of the work this month included:
10 new Civil skill tree nodes
9 new Aptitude skill tree nodes
8+ additional skill tree nodes
20+ unique officer skill trees
Randomized starting skill tree nodes for generic officers
Improved tactic unlock tooltips
This is becoming a much bigger part of how officers are differentiated, especially now that generic officers can have different progression paths instead of all following the same template.
One of the bigger combat additions this month was the new Fire system. Fire can now spread across the battlefield, creating areas that are dangerous for units to move through or remain in. This gives Fire more strategic value since setting something on fire isn't just about dealing immediate damage. The fire can continue to spread and affect how units move and position themselves. The three new tactics that cause fire are:
Fire Arrows
Fire Attack
Inferno (Zhou Yu)
I also added the supporting VFX and audio for the system, including directional logic for Fire Attack and Inferno VFX, ignition sounds, and burning tile ambience. There were also a number of interaction rules to make sure Fire behaves correctly with things like units being knocked into burning tiles. I found a VFX artist who created several new combat assets, which has helped improve the visual quality of these abilities considerably.
Two new general-purpose tactics were also added this month:
Power Break: Reduces an enemy's Attack by 50% for 3 turns.
Hex: Reduces an enemy's Defense by 50% for 3 turns.
Slice: Applies Bleed (damage over time taken at the start of an entity's turn).
These give officers a couple of new ways to weaken enemy units before committing to an attack, and also give the AI more status effects to consider when evaluating its tactical options. Damage calculations were cleaned up, Knockback kills now properly trigger the normal kill/capture logic, and Archer attack timing between projectile VFX and SFX was improved.
Audio got a lot of attention this month. We were able to add 2 new background music tracks and continued working on the dynamic music intensity system. The system now supports four intensity levels and changes the music based on what is happening on screen. We also added a lot of new sound hooks throughout the game, including buildings, menus, turn transitions, campaign ambience, fire, tactics, dialogue, and combat.
A lot of August was spent tuning the AI now that the campaign is becoming much more playable. Some of the bigger changes include:
Improved tactical decision making and pathfinding
Better archer positioning and targeting
Improved Quick Defend behavior
Added a new Skirmish Opportunity faction strategy objective
Improved war score calculations and ceasefire decisions
Factions are now more likely to declare war on hated neighboring factions
Added a snowball factor that makes winning factions less passive
Improved town assault scoring using faction hatred and strategic conditions
AI administrators can now properly evaluate transfer and transport proposals
Neighboring towns can send relief armies for defensive deployments
Improved AI use of status-effect tactics
I've also been adding more logging/debug tooling around faction diplomacy and strategy objectives so I can figure out why the AI is making certain decisions when it becomes too passive later in a campaign.
Hire attempts now contribute some progress toward the assignment, so talking to or swaying an officer isn't completely wasted if the actual hire doesn't succeed. I also made Hire attempts more likely to trigger Debates and fixed several issues with Hire proposals not appearing correctly during the voting phase. On the AI side, I fixed cases where administrators weren't properly evaluating Hire proposals and where the system was attempting to hire officers that were already deployed.
Towns received another layer of specialization this month. Towns can now have specialties that improve specific aspects of their economy or military infrastructure, including:
Gold production
Food production
Weapon production
Recruitment / Starting Morale
Gate HP
These specialties are now displayed directly on the campaign map as well as in the town details panel.
I also added Residence development. Each level provides +1 AP when resting and increases population growth. I added the empty Academy building to the empty 8th building slot, though the functionality for the research/tech tree is not implemented yet.
More historical and character-driven events were added this month. The biggest addition was the Yuan Shu False Emperor event, along with follow-up dilemmas for the major factions to declare war. I also added events for Zhao Yun joining Liu Bei and Liu Bei taking in Lu Bu if defeated in Xu. These are part of the larger effort to build out more historical events that tell the Three Kingdoms storyline and make the game slightly less of a sandbox.
A lot of the work this month came directly from actually playing the campaign and finding things that weren't behaving correctly. Various campaign fixes:
Capturing towns from rebels now gives additional security to help stabilize them
Another round of work on town control and rebel territory so faction borders behave more naturally after towns change hands
Dead factions properly lose their remaining map control
Rebel armies properly disband or enter captured towns
Officers stationed elsewhere are properly reassigned when their town changes hands
Capture Town assignments no longer incorrectly fail when the capturing army automatically enters the town
Caravan troop transport and display issues were fixed
AI and player deployment edge cases were cleaned up
Improved Seize Town assignment contribution tracking
Reduced requirements for some officer/faction promotion tiers
Earlier access to military proposal types
A particularly nasty bug was also fixed where destroying the Fallen Empire could completely lock the campaign during the faction turn sequence.
There were a lot of smaller UI improvements this month, many of them coming directly from playtesting. Highlights include:
Movement previews when hovering over entities
Mastery XP and skill point notifications
Improved officer breakdown tooltips showing their current action and parameters
Better information when an officer is stationed in another town or deployed
Improved deployment menu
Reworked Drill menu information to make troop numbers easier to understand
Better tactic tooltips, including nested effects
Flashy tactic name / burst VFX when tactics are used
Officer speech bubbles when relationship-based Assist/Aid effects trigger
Improved town and faction detail panels
Better gate interaction and labeling
Improved Hire assignment UI
Assignment completion percentages shown for other officers
Double-clicking entities now opens their main details panel
Improved different-resolution UI handling
New radial wheel UI assets
Improved camera behavior between turns
Status effects from buffs/debuffs are now localized
Attribute XP and other important notifications are recorded in the log window
I also added a feedback survey directly to the main menu so I can start collecting more structured feedback from playtesters.
The campaign map received a few changes. This month included some tweaks to the northern terrain and new forest regions in the south. The maps shown on the game setup and minimap were updated as well. The western map is still very much a work in progress, but the east is mostly done now.
I also spent some time getting the 3K DLC version of the game set up on Steam, including the initial DLC/depot setup and a new August-enabled build. I also updated the Steam and Itch screenshots as the game continues to move toward the next stage of playtesting.
A lot of work went into reducing the cost of AI tactic evaluation, war target calculations, civil turn processing, and other expensive campaign systems. The biggest improvement was reducing the performance cost of tactic pathfinding by roughly 5x. Overall faction turn times are still about 2x as long as I'd like, so more effort is needed. The problem stems from the entire game being built from this ground-up philosophy of officers evaluating actions on an individual basis, instead of the faction doing one sweeping pass. Still, more progress can and will be made.
August was largely about taking the systems I've spent the last several months building and refining them against each other. The Generic Officer system is now in a much better place, with different races, officer templates, portraits, names, and skill trees all feeding into the same generation system. Combat now has Fire and a larger selection of tactics, the AI is getting more capable across the board, and towns are starting to have more distinct identities. At this point I'm spending less time asking, "Does this system work?" and more time asking, "Is this balanced, and does it push the game in the direction I want it?"