Dev Log — Weather, Living World and Infrastructure Behind the Scenes
Dev Log — Weather, Living World and Infrastructure Behind the Scenes
It has been a while since I last wrote a dev log here. The past months were intense on two fronts that go hand in hand: the game world became more alive and the infrastructure behind it turned into a decent machine. This post is a quick tour through both sides.
The world gained weather — and real seasons
The first thing you notice when you open the game now is that the sky is no longer a static backdrop. Tel-Annat has a smooth day and night cycle; the trees sway when the wind blows; and when it rains, it truly rains.

The technical turning point was simple to describe, but long to execute: each map carries geographic coordinates (latitude/longitude) coming directly from the CMS. With that, the engine calculates which hemisphere the player is in and what season of the year is currently in effect. The climate of each biome is just a default — you can force a storm in a desert via console if you want to test a specific scene.

The trees had their own chapter. There were many shader iterations until the wind became visible without the leaves “bursting” out of the sprite frame. About 8 commits in a row just to adjust amplitude, frequency and the point where the base of the trunk remains still.

A console to debug the world
Together with the weather system came an in-game console. Now I open it and send things like “what is the current weather?”, “change the season to winter”, “show the upcoming weather events”. For me, as a solo dev, it saves a good amount of time — testing a specific blizzard before required a back-and-forth of save/load; now it is a single command line.

weather command: clouds, precipitation, wind, season and the map’s geolocation.I also fixed a silly but annoying bug: opening the console would pause the game, and closing the console would unpause it — even if the game was already paused before for another reason. Now the previous state is preserved.
Behind the Scenes: The Infrastructure Overhaul
This part is less visual, but it was one of the most important changes of the past months. The server running the game’s backend (API, CMS, auth) went from a somewhat improvised setup to a structure I trust to leave running on its own.
Real backups, every day
Before, I had that feeling of “oh, if the hard drive dies right now…”. Today there is a backup pipeline that runs automatically every day at 1 AM. It:
- Freezes uploads for a few seconds to ensure consistency
- Takes a snapshot of the database and CMS files
- Deduplicates and encrypts everything (using a tool called restic)
- Sends copies to Google Drive and Amazon S3 simultaneously
- Applies grandfather-father-son retention (daily, weekly, monthly)
And most importantly: there is a quarterly drill scheduled — meaning every three months I effectively restore the backup in a test environment to confirm it works. A backup that nobody tests is not a backup, it is faith.

Monitoring in three layers
Now the server warns when something stops working — and the warning arrives before I notice through a frozen game. The scheme works in three layers:
- Internal heartbeat — each critical job (backup, brainstorm worker, etc.) hits an endpoint saying “I am alive” at each execution. If it goes silent for too long, an alert fires.
- Continuous health checks — the public site polls the API health every 30 seconds. That discreet “Server: online/offline” indicator in the corner of the page comes from this.
- Public alert banner — if the last backup failed or is overdue by more than 26 hours, a warning appears automatically in the admin panel, and an email is also sent to the infrastructure admins.
Unified login
Another thing that seemed small but helped a lot: game, website and backend now share the same login system (running on top of a dedicated identity server). If you enter the site’s admin panel, the game already knows who you are. If the session expires, an overlay appears asking you to log back in — without losing work in progress.

Content in the right place
A principle that became a rule: all game content is born in the CMS. Item, monster, NPC, map, biome, quest, dialogue — everything. The game reads this at runtime and assembles the resources on its own. This means that I (or anyone collaborating) can edit a skill or adjust a loot table directly through the web panel, without touching the game’s code.

Along with that came a plans system in the CMS itself — where I break each major undertaking into phases and activities, track progress and can “resume” work from where I left off (including with AI assistance). It is somewhat meta: I am using the CMS to manage the development of the very game that the CMS feeds.
What is coming next
The next front is the public wiki — a space within the site where players can read about the world, the lore, the characters, without having to discover everything inside the game. Its backend is already live; now the visual layer is missing.
In parallel, I continue to polish the day/night cycle (I want the light from campfires to have more presence at night), and I want to experiment with weather affecting gameplay — rain extinguishing torches, cold reducing stamina, that sort of thing.

If you read this far, thank you. Mensageiros do Vento is a solo project built in the corners of late nights, and every comment, follower or share makes a difference.
Until the next log.
— 𒀀𒀀