Devlog #4 – Warfeed


Devlog: War Feed — the “heartbeat” of WarFrontline 📡⚔️

One thing I really wanted in WarFrontline is that constant feeling of “something is happening” — even if you’re not actively staring at the frontline 24/7. That’s why I built War Feed: a real-time activity stream that turns the whole war into a living timeline you can actually follow.

What it is (in-game)

War Feed is a mix of:

  • a ticker (bottom bar) for the latest big moments
  • a drawer (side panel) where you can scroll recent history Delivered live via WebSocket, so it feels instant.

What shows up there

It covers the stuff that makes the world feel alive:

  • cities being captured (BATTLE_TAKEN)
  • frontline reinforcements (FRONT_REINFORCED)
  • factories being completed (FACTORY_BUILT)
  • buildings upgraded (BUILDING_UPGRADED)
  • dramatic moments like DEFENSE_BROKEN (when a nation starts losing multiple cities fast)
  • and “intel flavor” like RUMOR_MASSING reports (more on that below)

Local, Nation, Global — who sees what?

The feed isn’t one-size-fits-all. Events have scopes:

  • LOCAL: regional/chunk-level stuff (your neighborhood)
  • NATION: the whole nation sees it (army-wide news)
  • GLOBAL: rare “big war headlines” for top active players

A big change that helped the feed feel right: I moved BATTLE_TAKEN and RUMOR_MASSING to NATION scope. The reason is simple: most players aren’t permanently stationed at the frontline, so the best events were basically invisible. Now the whole nation can track victories and intel updates like a real wartime bulletin.

“Intel reports” that add atmosphere

One of my favorite parts is the intelligence-style messages — reports about suspicious troop massing, unusual movement, etc. It’s designed to feel like real wartime uncertainty: not every report is guaranteed truth, and timing/frequency is tuned so it doesn’t become spam.

Under the hood (kept lightweight on purpose)

Architecturally, it’s built to be non-blocking:

  • game logic publishes raw events
  • processing/enrichment happens asynchronously
  • messages are templated, rate-limited, and then delivered via WebSocket

Also important: I switched retention to count-based cleanup (predictable DB size no matter how crazy the war gets).

Why this matters

War Feed is basically my “anti-silence system.” Even when you’re upgrading buildings or planning your next move, you still see the war evolving in the background — victories, collapses, reinforcements, and rumors.

It’s small on the surface… but it changes the vibe of the whole game.

Leave a comment

Log in with itch.io to leave a comment.