Skip to main content

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

ARENA MEDIEVALE

A topic by Tullio created 49 days ago Views: 825 Replies: 5
Viewing posts 1 to 6

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.


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

After the Frontiers Fall, the Squad Answers

The Frontiers Fall introduced a world teams could conquer. The work since then has focused on what happens along that journey: rescuing fallen teammates, moving as a squad, recognizing threats and seeing the consequences of every important action.

The frontier is no longer just a route toward the center.

It is a test of whether your team can make it there together.

A FALLEN PLAYER CAN STILL BE SAVED

Death used to threaten the whole match before the squad had a chance to respond.

Now, when a player falls and living teammates can still revive them, a countdown keeps that possibility open. In single-player, the match-end sequence waits until the rescue window expires. In multiplayer, a player who cannot be revived can continue as a spectator. The end-of-match window has also been moved in front of the HUD, so its controls remain visible.

A defeat is still dangerous. But it no longer skips past the moment when a teammate might turn it around.

SQUADS MOVE LIKE SQUADS

Bots have received new ways to support their teams during a run. They collect useful drops as they pass, take buffs from armor and other NPCs, and share group bonuses when the match rules call for it.

Ordinary speed, power and shield drops now last 20 seconds. Before the Boss is defeated, designated buffs apply to the group; afterward, those drops become individual. That change makes the shift into the post-Boss phase matter beyond the fight itself.

Squad behavior has also been tightened. When outnumbered, the leader should move back toward the nearest companion instead of roaming across the map. Bots are more willing to respond to miniboss echoes and hostile pets, and recovery can take priority before the team resumes its Landmark route.

THE LANDMARKS KEEP THE JOURNEY FRESH

More events and missions have been added across zones and tiers. Shared rotations and anti-repeat rules help make each frontier feel less like a replay of the last one.

The event flow has also received attention where it broke down in actual matches. Fractures that once sounded their warning without starting an encounter now have dedicated trigger handling. When an elite group disappears, a visual effect marks its departure. If enemies remain engaged, the combat timer now gives the fight more time to resolve.

These changes build on the Landmark progression from the previous post: the route still belongs to the team, but its encounters are less predictable and its outcomes are easier to follow.

POWER-UPS ARE EASIER TO READ

The HUD now distinguishes buffs from debuffs at a glance:

Green outline: positive effect.
Red outline: debuff.

Leveling up now has a stronger presence in the world too. A class-colored glow surrounds the player or bot, stays attached as the character moves, and lasts 3 seconds. It is bright enough to notice during a crowded fight, without confusing the effect with a stationary marker.

Landmarks and mission targets have their own colored glows. Bosses, minibosses, elites and level-8-or-higher mobs have larger glows scaled to their size, making priority enemies easier to pick out in a busy arena.

THE IMPACT SHOWS WHERE THE ATTACK LANDED

Boss and mob abilities now receive PNG impact feedback when they strike.

For ground-target attacks, the impact stays at the location chosen on the ground, whether or not a player was caught in the blast. For direct attacks, the effect appears on the target that took the hit. The distinction helps players read both the danger zone and the result of a successful strike.

WHEN A GATE OPENS, THE WORLD SHOWS IT

A Landmark opening a Gate should feel like a change in the battlefield. In RC211, a dark pulse appears at the Gate as its barrier fades away, making the opening visible instead of letting the passage change without a clear signal.

The unlock conditions remain the ones described in The Frontiers Fall. This update makes their result unmistakable.

THE ROAD FORWARD

The previous chapter made the world something a team could conquer.

This one makes the teamโ€™s struggle across that world easier to read: a bot can help bring a player back, a leader can turn toward a companion in trouble, a fracture can begin its encounter, and an opened Gate can leave a visible mark on the frontier.

The frontiers still fall one Landmark at a time.

Now the squadโ€™s story is visible in every step that gets them there.

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

NO DEAD ENDS

The battlefield no longer assumes everything will go according to plan.

The last chapter was about squads learning to answer.

They learned to regroup.
They learned to rescue.
They learned to pursue objectives instead of simply surviving around them.

But there was still one problem.

Real matches are messy.

A leader dies.
A teleport throws a squad into the wrong territory.
A mission target runs half a zone away.
A closed gate appears on the wrong side of the team.
The Boss pulls everyone toward the Center.
And sometimes the shortest path… simply stops being a path.

So this development cycle became about something larger than AI.

It became about continuity.

Whatever happens during a match, the Arena must keep moving.

๐Ÿค– THE SQUAD NOW UNDERSTANDS THE MISSION

Bot autonomy has moved far beyond โ€œfollow the leader.โ€

A squad can now lose its human commander and continue the campaign instead of becoming a collection of fighters with no strategic purpose.

When leadership changes, the new bot leader can inherit the real objective:

โš”๏ธ continue a Landmark mission
๐Ÿ›ก๏ธ return to an unfinished Landmark
๐Ÿน pursue a fleeing mission target
๐Ÿ’€ recover after casualties
๐Ÿšช advance toward the next closed frontier
๐Ÿ‘‘ continue the road toward the Boss

This also exposed some of the hardest AI problems we have worked on so far.

A mission target could exist a thousand pixels away while an ordinary monster stood directly beside the squad.

The old AI often chose the easy fight.

Now, when the mission says:

HUNT THE PREY

…the leader understands that the prey matters more.

The squad can pursue it across long distances without allowing random farming, healers or nearby mobs to silently replace the mission target.

The objective is no longer just something displayed on the HUD.

It is part of the squad's decision making.

๐Ÿงญ THE CENTER IS NO LONGER A TRAP

The borders around the Central Arena have been one of the most difficult navigation problems in the project.

From a human point of view, the rule is simple:

Gate open? Cross.
Gate closed? Don't.

For an autonomous squad, it is not that simple.

Formation distance, combat targets, leader position, territory detection and mission routing can all disagree for a few frames.

That was enough to create one of our oldest recurring problems:

bots stopping directly on the seam between CENTER and a peripheral zone.

We attacked this from both sides.

โžœ Followers now commit to the crossing

If the leader has already crossed into another canonical zone and the frontier is open, followers no longer decide that they are โ€œclose enoughโ€ while standing on the wrong side.

They continue through the border until the squad is genuinely together again.

โžœ Leaders now route through the real gates

Strategic movement across territories no longer blindly points toward a distant objective.

When a leader must travel:

Peripheral Zone โ†’ Center โ†’ Another Zone

the route now understands the actual geography:

Zone โ†’ canonical Gate corridor โ†’ deep Center โ†’ destination Gate โ†’ objective

No more trying to cut diagonally through a frontier simply because the target exists on the other side.

The Arena now distinguishes between where the objective is and how the squad is allowed to reach it.

๐Ÿšช A CLOSED GATE IS NOW A CALL FOR HELP

Then teleportation exposed another edge case.

A squad could be transported into a foreign territory and land between two closed gates.

Technically alive.

Technically inside the map.

Strategically imprisoned.

Worse: the nearby Landmark could refuse activation because the squad did not belong to that territory.

That rule is gone.

โœฆ NEW FRONTIER RESCUE RULE

If LM1, LM2 or LM3 still controls a closed gate, then:

ANY squad standing on that Landmark may activate it.

North can activate a South Landmark.
East can activate a North Landmark.
A teleported squad can fight its way out instead of waiting forever.

The moment the corresponding gate opens, the emergency rule disappears and normal territory logic resumes.

The fourth Landmark / Rift logic remains protected from accidental activation.

This is not a shortcut.

It is a guarantee:

The procedural chaos of the Arena may put you somewhere unexpected.
It must never create an unwinnable dead end.

๐Ÿ‘‘ THE BOSS FIGHT IS BECOMING ONE FIGHT — EVERYWHERE

The Boss has continued through another parity pass.

Desktop SP, mobile SP and server-authoritative matches must not secretly fight different versions of the same enemy.

Combat timing, attack state, damage delivery and orientation have been tightened again so the Boss behaves consistently regardless of where the simulation is running.

That same work has continued across ordinary enemies:

๐Ÿšถ vertical locomotion now uses proper WALK states
๐Ÿ”ฅ casters keep pursuing instead of waiting uselessly outside their effective range
๐Ÿ’€ combat state survives transitions more reliably
โš”๏ธ target selection increasingly follows the same rules in local and server simulation

The goal remains unchanged:

SP and MP are different ways to enter the Arena — not different games.

๐ŸŒช๏ธ WORLD EVENTS ARE SPECIAL AGAIN

Or at least they should feel special.

Hordes, Invasions and other automatic regional events had gradually become too intrusive.

A Landmark mission is already a commitment.

Having a full-scale invasion drop on top of it can turn tension into noise.

So automatic zone events have been pushed back toward what they were meant to be:

rare disruptions

Not the normal rhythm of every match.

A match can now go a long time without one.

Some matches may never see one at all.

And when one finally appears…

it matters.

The world can still surprise you.

It just doesn't need to scream every thirty seconds.

๐ŸŽฏ THE WORLD GOT SMALLER — WITHOUT BECOMING LESS IMPORTANT

Mobile readability received another pass as well.

Mission structures and event PNGs could dominate the screen, especially during close combat.

On mobile their rendering scale has been reduced while their actual gameplay footprint remains untouched.

The altar is still the altar.
The objective is still where it was.
The interaction radius has not secretly changed.

It simply stops covering half the battle.

Because on a small screen:

visibility is gameplay.

๐Ÿ… YOUR CLASS NOW REMEMBERS YOU

The Champion selection screen has become more than a menu.

Class records are now reflected directly on the character cards.

As your personal record with a class grows, its card can carry a visible rank stamp:

โœฆ COMBATTENTE
โš”๏ธ GUERRIERO
๐Ÿ›ก๏ธ VETERANO
๐Ÿ† CAMPIONE
๐Ÿ‘‘ LEGGENDA

The record belongs to the class.

Not just to the player.

A Tank you have mastered should not look identical to a Tank you have never played.

And for development builds, the current V1991RC version is now visible directly on the Champion screen, making it immediately obvious which build is actually running.

A tiny detail.

An extremely useful one.

๐Ÿ”Š THE SILENT MONSTERS HAVE FOUND THEIR VOICE

A full audio audit uncovered an entire family of missing combat SFX.

Imp pets.
Elemental variants.
Healers.
Miniboss states.

Some of them were silently requesting files that simply did not exist.

The result was not only missing sound — it was a console filled with repeated 404 errors.

Those gaps have now been filled with dedicated MP3/OGG assets.

๐Ÿ”ฅ Fire sounds like fire.
โ„๏ธ Ice sounds like ice.
๐ŸŒช๏ธ Wind carries its own identity.
โœจ Healing and miniboss effects no longer fall back into silence.

The preload pipeline was cleaned at the same time, removing redundant resource warnings and unnecessary duplicate fetches.

The Arena should sound violent.

The developer console doesn't need to.

๐Ÿ‘๏ธ THE ADMIN CAN STILL WATCH — WITHOUT LEAVING THE DOOR OPEN

Server security received its deepest audit so far.

And there was one non-negotiable rule:

Hardening the server must not destroy live admin spectating.

So the spectator system stayed.

The vulnerabilities did not.

The server now has stronger protection around:

๐Ÿ” administrative privileges
๐ŸŒ proxy / Cloudflare identity handling
๐Ÿ‘๏ธ spectator endpoints
๐ŸŽฎ SP session ownership
๐Ÿ“ก WebSocket buffers and message limits
๐Ÿ“ server-side file exposure
๐Ÿšซ forged proxy headers

An external client can no longer simply pretend to be the trusted public IP by supplying the right header.

Sensitive server files are no longer exposed through the static file layer.

SP sessions now carry ownership instead of behaving like anonymous public broadcasters.

And WebSocket limits are enforced before malformed traffic can grow indefinitely in memory.

Most importantly, the complete spectator path was tested after the changes:

Host starts the match.
Admin connects.
Watcher count becomes 1.
Snapshot arrives.
Motion stream arrives.
Admin disconnects.
Watcher count returns to 0.

Security increased.

The control room stayed open.

๐Ÿ“ฑ ONE ARENA. FOUR WAYS TO PLAY.

Every major change continues to be judged against the same rule:

SP DESKTOP

SP MOBILE

MP DESKTOP

MP MOBILE

A fix that exists in only one simulation path is not finished.

This cycle has continued pushing Landmark behavior, mission AI, Center routing, Boss combat, target pursuit and recovery logic toward genuine parity.

Mobile is not a secondary ruleset.

Multiplayer is not the โ€œrealโ€ version.

Local SP is not a prototype.

They are all entrances to the same Arena.

โšก AND THE MATCH MUST KEEP MOVING

That may be the real theme of this update.

Not a new class.

Not a new giant system.

Something harder to see:

the removal of dead ends.

A leader that loses the mission.
A follower that stops at the Center seam.
A squad teleported behind a foreign gate.
A Landmark that refuses the only team capable of reaching it.
A spectator system that works only if the server trusts too much.
An audio system quietly asking for files that don't exist.

Each one is a different version of the same failure:

The battle is still alive.
But the game has stopped moving.

This development cycle has been about refusing that outcome.

โš”๏ธ THE FRONTIERS HAVE FALLEN.

๐Ÿค– THE SQUAD HAS ANSWERED.

๐Ÿงญ NOW THE ARENA FINDS A WAY FORWARD.

No matter who leads.

No matter where the portal throws you.

No matter which banner owns the land.

If a gate is still closed…

someone can open it.