Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

ARENA MEDIEVALE

A topic by Tullio created 14 days ago Views: 329 Replies: 2
Viewing posts 1 to 3

https://tullio2.itch.io/arena-medievale

The Arena Is Starting to Fight Back

The last Dev Log ended with a simple goal:

We don't want less Medieval Arena. We want the same battle, the same effects, the same number of enemies and the same madness... but we want it to fly.

A lot has happened since then.

Performance work has continued aggressively, especially inside the server-authoritative simulation, but something else happened along the way: the arena itself became much more reactive.

Enemies are no longer just independent units waiting to find a target. Elite enemies can influence the creatures around them. Groups can react when their leader dies. Survivors may run for reinforcements. Landmarks can leave consequences behind. The central Boss can progressively turn parts of its own arena against the players.

And at the same time, we're making all of this cheaper to simulate, not more expensive.

βš™οΈ Performance: optimizing the battle, not reducing it

A large part of recent development has been focused on the hottest sections of the simulation.

With hundreds of entities interacting, innocent-looking operations can become extremely expensive when repeated every AI tick. Target searches, faction checks, nearby-unit queries, Elite-group management, special abilities, tactical decisions and zone calculations can multiply very quickly.

The recent optimization passes have therefore focused on finding cases where the game was asking the same question more than once.

Several systems now reuse information that was already calculated during the current simulation tick. Elite followers keep direct references to their leader. Frequently used classifications are cached. Multiple zone calculations can be performed during a single population scan. Special-ability targeting can reuse results from the normal AI targeting pass.

The important part is what we didn't do.

We didn't make enemies think less often.

We didn't lower the action tick.

We didn't reduce movement updates.

We didn't solve performance problems by making the battlefield less responsive.

Whenever an optimization saves CPU but introduces visible AI latency, it is the wrong optimization for this game.

πŸ“Š Measuring before optimizing

The server diagnostics have also become considerably more detailed.

The FULL-AI simulation can now expose the cost of systems such as targeting, tactical decisions, nearby-unit queries and enemy special abilities. More recent diagnostics can go deeper into telegraph resolution, target scanning and the actual number of fighters evaluated by area attacks.

This has already prevented at least one tempting but counterproductive optimization.

Using another spatial structure for AoE resolution sounded like an obvious improvement. In practice, Medieval Arena usually has a very small number of player fighters to test against an attack. Building and querying another structure could cost more than simply checking those fighters directly.

So it wasn't implemented.

Optimization isn't about making the code look clever.

It's about making the game measurably faster.

πŸ‘‘ Elite enemies are becoming real leaders

Elite enemies now have a much stronger relationship with the creatures fighting around them.

Some Elite groups can appear with one or two dedicated guards. While at least one guard survives, the Elite receives a modest defensive advantage.

It is not invulnerability.

You can still focus the Elite immediately if you want.

But eliminating its guards first is now a meaningful tactical option.

Groups can also briefly adopt formations when combat begins. Melee units can occupy the front while ranged units remain behind, while other groups may attempt a wider approach before normal combat behavior takes over.

Wounded ranged enemies can even try to fall back behind a living Elite, using their leader as a temporary point of protection instead of standing still and dying.

The goal is not military-perfect formations.

The goal is to make a group of enemies feel like a group.

☠️ Killing the leader now matters

The death of an Elite can change the behavior of the remaining enemies immediately.

Nearby followers can react in two different ways.

Some temporarily break and disengage, attempting to create distance from the fight.

Others enter a short frenzy, becoming more aggressive for a few seconds.

This means eliminating the leader is no longer simply removing the enemy with the largest health bar. It can destabilize the entire encounter — although you don't always know whether that instability is going to help you.

And sometimes there is one more problem.

πŸƒ The last survivor may run for help

If an important group has been almost completely destroyed and only one enemy remains, that survivor can occasionally decide that continuing the fight is a terrible idea.

Instead, it runs.

Not randomly.

It can attempt to reach other enemies in the biome and call them into the fight.

The player then gets a very simple decision:

Chase it, or let it go.

Chasing may drag you away from the position you wanted to hold.

Ignoring it may mean dealing with reinforcements shortly afterward.

Even better, this situation can now become an opportunistic micro-objective. The game can recognize that an actual survivor is escaping and challenge nearby players to stop that specific enemy before it successfully calls for help.

The objective exists because the situation happened.

The situation does not happen because the game needed an objective.

That distinction is becoming increasingly important to how we want events in Medieval Arena to work.

πŸ”— Elite Chains

Elite encounters can now occasionally develop into a small emergent hunt.

Killing an Elite has a rare chance to reveal a connected, stronger Elite somewhere in the same zone.

Defeat that one and the chain can potentially continue once more.

Then it stops.

There are strict limits specifically to prevent infinite Elite chains or uncontrolled population growth.

Like the escaping survivor, discovering a chained Elite can generate a contextual micro-objective targeting that exact Elite, with its own timer and completion state.

An ordinary Elite fight can therefore unexpectedly become a short hunt across the biome.

😈 A Nemesis can now be created by the match itself

One of the more interesting additions doesn't require spawning a special enemy at all.

Sometimes an ordinary creature simply has a very good day.

If a normal mob manages to kill two fighters without dying, it can be promoted directly into a Nemesis.

The creature doesn't disappear and get replaced.

It is the same enemy.

It keeps its position, its current state and the history that created it, but becomes a considerably more important threat.

So when you encounter a Nemesis that emerged this way, there is an actual reason it exists:

it earned the promotion by killing people.

This is exactly the kind of small emergent story we want the simulation to create naturally.

🚢 Enemies don't always wait for you anymore

Some enemy groups can now patrol between locations inside their biome.

This is deliberately different from simply increasing random wandering distance. A patrol has somewhere to go and can encounter other creatures, players or an active battle along the way.

Reinforcements are also becoming more physical.

Where possible, support doesn't need to magically appear beside an ongoing fight. Existing enemies farther away can be selected and sent toward the battle as actual reinforcements.

That means you may see them coming.

And if you see them coming, you can intercept them.

πŸ›οΈ Landmarks now leave a bigger mark on the match

Landmarks continue to evolve beyond isolated missions.

Achieving Excellence during a Landmark can now influence a later short environmental event in that biome, potentially turning what would normally be a danger into something beneficial to the squad — or particularly unpleasant for nearby enemies.

Major enemies can also occasionally treat an inactive Landmark area as a temporary stronghold, creating recognizable combat positions without forcibly starting a Landmark mission.

But failure has become more interesting too.

Previously, failing an event could simply mean that the activity ended.

Now certain Landmark failures can leave a short, thematic consequence behind.

A failed Portal can leave Voidspawn in the area.

A failed Convoy can leave corrupted survivors.

A failed Altar can temporarily destabilize the ground around it.

These consequences are deliberately short.

Failure should change the immediate situation, not punish the player for the next ten minutes.

πŸŒͺ️ The biomes can strike without warning

The longer atmospheric events are still part of the arena, but we've added another layer: short environmental incidents lasting only a few seconds.

Each biome has its own version.

The North can produce a sudden freezing gust.

The Crypt/South can crack the ground beneath combatants.

The East can release a toxic cloud.

The West can create a brief sand vortex.

These are clearly telegraphed before becoming dangerous and disappear quickly afterward.

They are not missions.

They are not long weather systems.

They are short interruptions that force everyone in the area — player, ally or enemy — to react to the battlefield itself.

βš”οΈ Breaking enemy dominance

There is another rare situation the simulation now recognizes.

If two Elite enemies are killed within a few seconds of each other in the same zone, the local enemy population can briefly suffer a morale collapse.

The game treats this as Broken Dominion.

Ordinary enemies in the area temporarily lose some of their confidence, giving the squad a short opportunity to push forward.

Again, there is no special mission required.

The players created the situation themselves.

πŸ‘Ή The central Boss fight is becoming less static

The central Demon has also received another major pass.

The fight still uses its established phase structure, but those phases now contain more variation.

During the first phase, the Boss can summon different adds depending on the biome they originate from.

Later phases introduce additional attack patterns, including new spatial pressure around the target.

The final phase can select between multiple patterns rather than always executing the same sequence.

Landmarks completed earlier in the match can even echo into the Boss fight, providing small situational effects connected to the zones the squad previously conquered.

And the arena itself is becoming part of the encounter.

During phases two and three, temporary sections of the central battlefield can become dangerous. Existing telegraph and AoE systems are used rather than physically changing the map.

The result is that the safe space changes from fight to fight.

The arena isn't destroyed visually into a different map.

It becomes progressively less safe to stand still.

🎯 Micro-objectives are becoming contextual

Micro-objectives originally provided small secondary goals during normal play.

They have since expanded with class-specific challenges for all six classes, contextual requirements and now opportunistic objectives generated by real events in the simulation.

The game can recognize that:

an enemy is escaping,

a chained Elite has appeared,

or a particular combat opportunity exists.

It can then offer an objective tied directly to that situation.

The important part is that these objectives remember their actual target. Killing some unrelated Elite does not complete an objective asking you to eliminate the Elite revealed by a chain.

We're moving away from objectives that simply say:

"Do X somewhere."

And toward objectives that say:

"This is happening right now. Do something about it."

🌐 Multiplayer: choose your team

The multiplayer lobby has also gained an important new option.

Players can now choose:

Random, North, South, East or West.

Teams retain their three-player cap.

If three players have already selected North, for example, North becomes unavailable to the remaining players.

The server validates the selection as well, so this is not simply a client-side restriction.

Random remains the default, preserving the original quick-join behavior for anyone who doesn't care which team they join.

Random players are then distributed across available teams while respecting the same three-player limit.

It's a small interface option with a surprisingly large effect for groups who actually want to play together.

πŸ“± Server-backed Singleplayer keeps moving closer to local SP

A lot of recent work has continued to focus on parity between local Singleplayer and the server-backed simulation used by mobile and multiplayer.

One small example is resting.

Sitting down already restored health in local Singleplayer, but the same behavior could fail in server-backed play because high-frequency input updates continuously reset the server's regeneration timer.

The visible state was correct.

The character was sitting.

But the health bar wasn't moving.

The regeneration clock now starts on the transition into the resting state instead of being restarted by every subsequent input packet.

It's a tiny fix on paper.

It is also a good example of why maintaining parity between a local action simulation and a server-authoritative one is much harder than simply copying the same numbers to both.

🧠 More simulation, less wasted work

All of these new behaviors obviously have a cost.

Elite guards, formations, wounded ranged behavior, patrols, physical reinforcements, contextual objectives and increasingly reactive enemies all require decisions.

So the optimization work has continued alongside the feature work.

Recent passes have removed repeated population scans, unnecessary temporary arrays, repeated faction classification and redundant target searches.

Heavy group maintenance can run at a lower administrative frequency while actual movement and combat remain on the fast action path.

This distinction matters.

An Elite doesn't need to rebuild the administrative structure of its group 60 times per second.

A sword swing, dodge or moving enemy absolutely needs to feel immediate.

That separation is allowing us to make the simulation more complicated without simply throwing more CPU at every frame.

βš”οΈ Where we're going

The previous Dev Log ended by saying that the next phase would focus on performance.

It did.

And it still does.

But optimization has also given us room to make the battlefield more reactive.

The direction is becoming increasingly clear:

We don't want an arena where enemies simply spawn, acquire a target and fight until one side dies.

We want battles where killing a leader changes the group.

Where the last survivor may run.

Where reinforcements physically arrive.

Where an ordinary creature can become a Nemesis because of what happened during the match.

Where Landmark victories and failures leave short consequences.

Where the Boss fight remembers parts of the journey that brought you there.

And where all of those systems can coexist without turning the simulation into a slideshow.

The objective hasn't changed:

Don't reduce Medieval Arena to make it run better.

Make the Medieval Arena we want run better. βš”οΈπŸ”₯

The level of thought going into the tactical AI and server-authoritative simulation here is incredible β€” having surviving mobs actively break formation or run to call reinforcements makes the battlefield feel truly reactive rather than just stat-checking. I'm Roman, a 3D artist in Blender specializing in optimized game-ready props and environments (clean topology and draw-call friendly assets). If you need any specific models for the biomes or landmark strongholds, I’d be glad to model 1 custom 3D asset for you completely for free (such as a weathered medieval barricade, an elite squad banner, or a landmark relic prop) without any strings attached. Feel free to ping me on Discord: antinarrys or email: roman.zbor.uk@gmail.com. Rooting for this project!

https://tullio2.itch.io/arena-medievale

ARENA MEDIEVALE — DEVELOPMENT LOG

A New Face for Combat

Over the last development cycle, Arena Medievale has changed far more than a version number can show.

What started as a push to improve character presentation quickly grew into one of the largest passes we have made across the game: new ability animations, rebuilt character presentation, smarter combat AI, expanded world events, a stronger endgame, mobile/server improvements, and a long series of stability and performance passes.

The goal was simple:

make every fight easier to read, every class more recognizable, and every match feel more alive.

And that started with the heroes themselves.

βš”οΈ Abilities Finally Look Like Abilities

One of the biggest visual changes is the introduction of dedicated character animations for class abilities.

Previously, many abilities could trigger while the character continued using animations that were too close to normal movement or basic attacks. The gameplay effect was there, but the character itself wasn't always communicating what it was doing.

That is changing.

Each of the six classes — Tank, Mage, Rogue, Cabalist, Vampire and Archer — has been given dedicated animation work for A1, A2 and A3, with directional support built around the game's eight-direction movement system.

That means an ability is no longer just an effect appearing around an otherwise static character.

The character participates in the action.

Mage spells have a different physical language from ordinary attacks. Rogue abilities feel sharper and more evasive. The Archer remains visible and recognizable even when an ability is dominated by projectiles. The Tank retains the weight of the character instead of disappearing behind the effect. Cabalist animations have been cleaned to prevent unwanted visual contamination between the summoner, pet and spell effects.

A great deal of the work wasn't simply creating more frames.

It was making sure that the hero remains the hero.

Silhouettes had to remain readable. Effects couldn't swallow the character. Transparent margins had to be cleaned carefully. Characters needed to remain centered. Scale had to remain consistent between directions.

And because Arena Medievale is played from a top-down perspective, all of this had to survive rotation through North, North-East, East, South-East, South, South-West, West and North-West.

🏹 WALK. ATTACK. ABILITY.

The character animation system itself has undergone a major revision.

The six heroes now rely much more consistently on their dedicated PNG animation sets instead of falling back to older raster representations.

Basic character animation uses dedicated WALK and ATTACK sequences, while the new ability system extends that language with A1, A2 and A3.

Animation timing was also revisited.

Frames now have enough time to actually be seen rather than flashing past so quickly that the animation becomes visual noise.

The same philosophy has been extended to the Champion Selection screen.

Character cards are no longer meant to feel like static portraits. They can showcase movement, attacks and ability animation, giving players a much better impression of a class before entering the arena.

It's a small screen with a much bigger job now:

show the personality of the class before the first sword is swung.

πŸ” The Tiny Details That Make Animation Feel Right

Adding hundreds of frames uncovered a surprisingly difficult problem:

two 256Γ—256 images do not necessarily contain characters of the same apparent size.

A sword can extend toward the edge of a frame. A cape can dramatically change the transparent bounding area. A crouched pose can occupy less vertical space. A diagonal animation can contain the same character at a completely different apparent scale.

And an automatic scaling system can be fooled by all of them.

That became particularly visible with the Rogue, Tank and Archer.

The Rogue's North-East and North-West WALK animations could appear to shrink compared with other directions.

The Tank exposed an even more interesting case: one diagonal WALK frame had a larger pixel footprint because of the sword and cape, yet the actual Tank appeared smaller in game because the autoscaler reacted to those extended pixels and reduced the entire character.

The Archer revealed another visible contraction inside a South-East WALK cycle.

Rather than adding expensive image analysis during gameplay, these cases are now handled using tiny precomputed static corrections.

No per-frame pixel scanning.

No extra temporary canvases.

No unnecessary allocations.

Just deterministic values for assets that never change.

By V1906, the complete WALK library had been audited:

6 classes Γ— 8 directions Γ— 3 frames = 144 WALK frames.

The objective isn't to force every pose into an identical box.

It's subtler than that:

A character should be free to move — but it should never look like it suddenly changed size.

🧠 Bots That Fight for the Entire Match

Visual improvements were only one side of the work.

A major AI investigation began after something much more serious was observed during longer matches:

bots could start strong and gradually become less reliable.

Rather than simply increasing aggression or shortening timers, we built better instrumentation around the AI.

Bot telemetry can now follow the use of:

Basic Attack Β· A1 Β· A2 Β· A3 Β· A4 Β· ULT

alongside target acquisition, target loss, REST states, deaths, revives and abnormal timer states.

That exposed several subtle long-session problems.

Stale targets could survive longer than intended. Aggro references could remain attached to obsolete entities. Temporary combat state could survive death and resurrection. Multiplayer targeting could diverge from the behavior already working correctly in single-player.

Those systems have been progressively hardened.

And importantly, this work has been done with one of Arena Medievale's central development rules in mind:

Single-player and multiplayer should play the same game.

When an AI behavior has an equivalent local and server-authoritative implementation, they are expected to follow the same combat rules.

🎯 Smarter Target Selection

Multiplayer bots have also received improvements to how they evaluate a crowded fight.

Under pressure, choosing nothing but the nearest enemy isn't always enough.

Bots can now preserve more meaningful priorities when several enemies are involved, distinguishing dangerous combat roles rather than treating every target as an interchangeable point in space.

At the same time, target validity has been tightened.

Dead enemies, vanished entities, targets outside valid combat distance and obsolete PvE references are cleaned aggressively instead of being allowed to poison later AI decisions.

The result is not intended to create omniscient bots.

It is intended to make them consistently competent.

πŸ’€ Death Should End the Previous Fight

Revival also received a deeper cleanup pass.

When a fighter dies, temporary combat decisions from that life should die with them.

Reactive states, retreat intentions, pending actions and obsolete target locks are now cleaned when appropriate, while legitimate progression such as kills, Adrenaline and persistent cooldown information remains intact.

The same principle has been applied to enemy aggro references.

This work directly targets the strange late-match situations where combat could begin to feel increasingly chaotic for reasons unrelated to what was actually happening on screen.

πŸ‘Ή The Final Battle Gets Stronger — Without Replacing What Worked

The central boss encounter has been treated carefully.

The final phase of Arena Medievale was already developing into something we liked, so the objective wasn't to redesign it.

It was to make sure multiplayer receives the same fight.

Boss phase transitions are now evaluated correctly even when ranged damage pushes the boss through an HP threshold from outside its immediate casting range.

The Abyss Cross was another important parity fix.

In single-player its impacts unfold sequentially.

On the authoritative server, those impacts had become compressed toward the same moment, creating a much harsher attack than intended.

The server implementation now follows the staggered rhythm of the SP encounter.

Bot recovery after A4 was aligned as well, preventing authoritative bots from chaining another class ability effectively inside the same simulation instant.

The result is a boss that remains dangerous because of its mechanics — not because multiplayer accidentally makes those mechanics faster or less readable.

πŸ”₯ THE FRONTIERS HAVE FALLEN

The endgame itself has continued evolving around party progression.

When a member of the group reaches Level 6, the world announces:

THE FRONTIERS HAVE FALLEN

And at Level 10:

THE BOSS IS FREE

These milestones transform the central area from a distant threat into the final stage of the match.

The boss can eventually leave its central territory, pushing the finale outward rather than forcing every ending into exactly the same location.

It gives the match a natural escalation:

survive β†’ grow β†’ break the boundaries β†’ confront the boss.

πŸ—Ώ Landmark Adventures

Landmarks have also become an increasingly important part of the world.

The current system is built around 75 Landmark profiles across three progression bands, combining:

30 combat events and 45 missions

These aren't intended to replace the core arena combat.

They interrupt it.

A Landmark can become an objective, a danger, a diversion or an opportunity depending on when the group discovers it.

Their difficulty follows the strongest member of the activating team, helping the content remain relevant as a match develops.

Recent work also included a conservative audit of Landmark objective detection, particularly missions involving position-sensitive interactions.

Rather than changing working missions because of a suspected bug, the system was inspected objective by objective and modifications were withheld where an actual progression failure couldn't be reproduced.

That's increasingly important as the game grows:

not every suspicious behavior needs a patch.

Sometimes the safest improvement is proving that the existing system is already correct.

πŸŒ€ Dimensional Fractures

The world has also gained a new type of Landmark:

Dimensional Fractures

These are deliberately recognizable locations with their own dedicated visual assets rather than generic event markers.

They are designed as optional high-intensity encounters: something unusual in the landscape that the player can choose to approach rather than another random event forced into the normal flow of a match.

This also fits a broader change to the event philosophy.

Random zonal events have been pulled back, while intentional systems such as portals and Landmark content remain independent.

The world can still surprise the player.

But it shouldn't constantly interrupt them.

🌨️ A World That Feels Alive

Arena Medievale's four regions continue to develop their own atmosphere.

Snow, fog, biome particles, environmental effects, torches, bonfires, tracks, fauna, ground details and combat residue all contribute to making the arena feel less like a flat combat board and more like a place.

Rare biome phenomena further reinforce that identity:

Sandstorms in the West. Blizzards in the North. Fog in the South. Toxic blooms in the East.

But visual richness has a cost — particularly on mobile.

Which led to another enormous part of this development cycle.

πŸ“± Mobile Is Not the β€œSmall Version” Anymore

Mobile optimization has increasingly been treated as its own engineering problem.

One important architectural detail drives much of this work:

normal mobile single-player is actually server-backed.

Starting a mobile SP match creates a private multiplayer-style session whenever connectivity is available, with local SP retained as a fallback.

That means optimizing only the traditional local single-player loop would miss much of the workload players actually experience on tablets and phones.

Recent optimization passes have therefore targeted the real shared/mobile path:

particle budgets, atmospheric effects, compositing, image scaling, caching, lighting, additive effects, ground rendering, replay capture, road rasterization and warm floor/chunk caches.

The objective wasn't simply a higher FPS counter.

It was lower CPU pressure, lower GPU overdraw, fewer unnecessary allocations, less heat and more stable frame pacing.

And after that optimization cycle reached diminishing returns, development deliberately stopped chasing speculative micro-optimizations.

From that point onward the priority returned to real gameplay and reproducible problems.

πŸ“‘ Staying Online

Mobile networking received its own stabilization work.

Server-backed SP previously had situations where a temporary delay could cause the client to abandon the online session too aggressively and fall back to local play.

The reconnection window was expanded substantially, allowing the game to preserve the same server-backed match while connectivity or world initialization catches up.

Later work hardened false reconnect behavior and the transition back from HUD/settings screens.

The aim is simple:

a tablet should not silently change the architecture of the match just because the player opened a menu or experienced a short delay.

πŸ“Š Catching the Stall Instead of Guessing

Intermittent mobile stalls are notoriously difficult to diagnose.

So instead of continuing to optimize blindly, Arena Medievale now contains lightweight diagnostic instrumentation for the server-backed mobile path.

When a significant frame gap occurs, the recorder can preserve useful context around it: update/render cost, entity populations, effects, projectiles, world activity and connection state.

That gives future investigations something far more valuable than speculation:

evidence from the moment the problem actually happened.

βš™οΈ Adaptive Server Simulation

The server architecture has also continued moving toward better scalability.

The intended simulation strategy adapts according to the number of simultaneous matches:

1–8 matches β†’ 60 Hz 9–10 matches β†’ 30 Hz 11+ matches β†’ 15 Hz

This is part of the broader effort to ensure that Arena Medievale can retain responsive combat when lightly loaded without demanding the same simulation frequency when server concurrency becomes significantly higher.

❀️ Small Rules, Big Difference

A large part of Arena Medievale's identity comes from systems that aren't individually enormous but constantly influence the match.

Adrenaline progression.

Healing after a kill.

A4 and ULT resource requirements.

Perfect Dodge invulnerability.

Zone progression.

Group access to the central arena.

Respawn rules.

Common and zonal enemies no longer endlessly repopulate at higher progression levels, preventing late matches from inflating into hundreds of unnecessary mobs while leaving Elite, Miniboss and Boss encounters untouched.

These systems have continued receiving parity checks so that playing on desktop, mobile, local SP or an authoritative server does not quietly change the rules.

🎨 More Character, Less Noise

This entire development period has gradually converged on one design principle:

clarity without emptiness.

More animation doesn't mean covering the screen with effects.

More AI doesn't mean giving bots unfair information.

More world events don't mean interrupting the player every thirty seconds.

More graphical detail doesn't mean allowing atmospheric layers to obscure the characters.

More optimization doesn't mean removing everything that gives the world personality.

Arena Medievale is becoming richer, but the player, enemies and combat decisions still have to remain readable at the center of it.

πŸ›‘οΈ V1906 — A Stronger Foundation

By V1906, many of the changes from this cycle are no longer isolated experiments.

They form a much more coherent foundation:

six increasingly distinct animated classes;

dedicated A1/A2/A3 character animations;

improved WALK and ATTACK presentation;

144 WALK frames audited for visual scale consistency;

Rogue, Tank and Archer renderer corrections without expensive runtime image analysis;

75 Landmark profiles and dedicated Dimensional Fractures;

a more dynamic boss endgame;

stronger long-match bot behavior;

closer SP/server-authoritative parity;

a more resilient server-backed mobile mode;

and a renderer that has gone through an extensive CPU/GPU/GC optimization cycle without stripping the arena of its atmosphere.

There is still plenty left to build.

But this has been one of those development stretches where the game doesn't simply receive β€œmore content.”

It begins to feel more like itself.

And that is exactly where we wanted to get before pushing the next major stage of Arena Medievale forward.