Devlog / Unobserved

Unobserved: Minimap, Level Ups, Items, and Multiplayer

A focused update on the tactical minimap, layered fog of war, homing missiles, vacuum pickups, level-up choices, shaders, and the first real multiplayer pass.

May 25, 2026 6 min read Arliax

Two intense days

May 24 and May 25 were two of the most productive days so far for Unobserved. The work started with systems that make the game easier to read: minimap controls, better fog of war, new enemy behavior, and clearer progression. Then it grew into something much bigger: multiplayer.

Looking back through the commits, the shape of the update is very clear. The game is moving from a single-player prototype with isolated mechanics into a more connected action strategy sandbox: map awareness matters, pickups matter, level-up choices matter, and now other players can exist in the same universe.

An RTS-inspired minimap

The minimap received a lot of attention because I want it to behave closer to the kind of tactical map I love in real-time strategy games. That genre is one of my preferred references for map awareness: you are always reading the battlefield, checking pressure, and moving attention between zones quickly.

The minimap now supports dragging to move the camera, and it has been updated to understand multiple player ships. This makes it more than a decorative panel. It becomes a way to command your attention across the world.

The fog of war also changed in an important way. There are now two layers: unexplored space and explored-but-not-currently-visible space. That distinction is small on paper, but it changes the feel of the game immediately. You can remember where you have been, while still losing certainty about what is happening there now.

The minimap now behaves more like a tactical navigation tool, with camera dragging and separate explored and unexplored fog layers.
  • Minimap dragging now supports direct camera repositioning.
  • The minimap can represent multiple player ships.
  • Fog of war now separates unexplored areas from explored areas that are no longer visible.
  • Visibility logic was refactored so ships, drones, missiles, and other gameplay objects can respond to the world visibility state.

A new test enemy

I also added a new test enemy. It is not just a new sprite in the scene tree. It has its own scene, stats, attack configuration, scale, explosion size, and spawn logic, which means the game can start mixing enemy profiles instead of relying on a single repeated threat.

This matters because enemy variety is one of the first steps toward a more interesting survival loop. Even a test enemy changes the rhythm of a wave. The player has to recognize a different shape, judge a different danger, and react instead of autopiloting.

Homing missiles and vacuum pickups

The item system also moved forward. Homing missiles now feel much more intentional: they deploy, launch in volleys, accelerate, turn, and recover targets when needed. They are beginning to feel like a real weapon system instead of a simple projectile spawn.

Vacuum behavior was another important addition. Pickups can now be attracted toward the player, and the networked item synchronization work means this system is being built with multiplayer in mind instead of being patched in later.

And yes, as you can see in the video, the homing missile ranges are currently set way too high. They are even firing when there is no vision of the enemy on the map. That is intentional for testing right now, and it makes the behavior very easy to spot while I tune the weapon.

Homing missiles, vacuum attraction, and networked item pickup behavior start to work together.
  • Homing missiles now support deploy motion before ignition.
  • Volley firing makes multi-missile attacks easier to read.
  • Missile tuning now covers launch speed, acceleration, turn rate, deploy duration, and fallback targeting.
  • Vacuum pickup attraction helps rewards flow back toward the ship.
  • Item pickup synchronization now has a network-aware foundation.

XP, level ups, and three choices

The XP and level-up system became more complete. Destroying enemies and collecting rewards now feeds into a clearer progression loop. When the player levels up, the game presents three item choices, turning progression into a decision instead of a passive stat increase.

This is one of the systems I care about most because it is where Unobserved starts to borrow energy from games like Vampire Survivors and Brotato. The player should feel that each run is shaped by the choices offered at the right moments.

Leveling up now opens a three-choice item panel, with clearer upgrade previews and a more polished bottom-panel presentation.
  • XP rewards now connect more clearly to enemy destruction and pickup events.
  • The level-up modal dynamically presents three item choices.
  • Choice buttons now support better labels, previews, and configurable font sizes.
  • Debug XP controls make it faster to test the progression loop.
  • Level-up state has been adjusted so it can synchronize correctly in multiplayer.

Shaders for the level-up panel

The level-up UI also received a shader pass. The bottom panel now has more energy: border effects, corner proximity, flare adjustments, and a distortion shader that makes the moment feel less like a normal menu and more like the game reacting to an important event.

This is exactly the kind of polish I want to keep adding around major decisions. The level-up screen should interrupt the action, but it should do it with style and with enough clarity that the player instantly understands what is being offered.

The big effort: multiplayer

The biggest effort was multiplayer. I added a UniverseNetworkController, started synchronizing player ships, network status, inventories, item pickups, weapon firing, beams, fog presentation, game over state, restart behavior, enemy destruction, and level-up logic.

This is a large technical step because almost every gameplay system has to become more disciplined. A single-player prototype can keep state wherever it is convenient. A multiplayer game needs clear ownership, synchronization, and rules for what every client is allowed to know or show.

The server is authoritative, which means the server owns the real game state and the clients send requests instead of deciding the outcome on their own. That is important for combat, pickups, enemy destruction, level-up state, and fog of war because every player needs to agree on the same universe.

I am still testing this heavily, but the first test with up to eight players felt great. The goal is to keep pushing the architecture and see how far it can go.

The first multiplayer pass brings multiple ships, synchronized combat, shared items, fog behavior, and network-aware progression into the same universe.
  • The game now has a dedicated network controller for the universe.
  • Player ship state, inventory, status, weapons, and beam behavior are being synchronized.
  • Enemies, pickups, missiles, drones, fog presentation, and visibility now have network-aware handling.
  • Game over and restart flow have been adapted for networked players.
  • Enemy destruction and level-up logic were updated so progression can work across clients.

There is still a lot to harden, but this changes the ambition of the project. Unobserved is no longer only about one ship surviving in a hidden universe. It can become a shared universe where players explore, fight, collect, and level up together.

If possible, I would love to test this at a much larger scale, with hundreds of players online in the same spirit as Agar.io or Slither.io: simple to enter, immediately readable, chaotic in a good way, and built around many players sharing the same live space.

The next step is to keep testing these systems under pressure. The foundations are now in place: better map reading, clearer progression, more interesting items, a new enemy, stronger level-up presentation, and the first serious multiplayer layer.

Thanks for reading,

Hack the planet!

Arliax