Devlog 04: Continuous Integration, Horizontal Drizzle, and Truncating the Seagull
We built an automated web deployment pipeline and stripped back the site graphics because the mascot was terrorizing the layout engine.
The Damp Reality of Infrastructure
There is a precise moment in indie game development when you realize you have spent three consecutive days writing web deployment YAML scripts instead of fixing the logic for static caravan chemical toilet overflows. Outside the window, a slate-grey sky is currently depositing horizontal drizzle onto the local hedge, which feels entirely appropriate.
Welcome to this week’s update for Caravan Park Tycoon.
While our Godot project rests quietly in the background—its TileMapLayer nodes patiently waiting for us to finish writing custom pathfinding costs for guests attempting to carry two pints of cider through a waterlogged tent field—we turned our attention to our online presence. If a holiday park simulator exists in a forest and no one is around to read the devlog, does the 1998 static caravan still smell faintly of damp upholstery?
We’ve now properized the website. Instead of manually copying Markdown files into raw HTML templates like a 1990s webmaster with a lukewarm cup of Earl Grey, we built an automated deployment pipeline. Every time we commit a devlog to our repository, GitHub Actions spins up, validates our frontmatter, compiles the static site, and deploys it to the web. It is smooth, efficient, and thoroughly un-British in its refusal to fail dramatically.
Shedding Light in the “About” Section
To go with our fancy automated pipeline, we finally wrote an actual ‘About’ page. Up until now, anyone visiting the site was met with a enigmatic placeholder text that effectively read: “We are making a game about coastal holiday parks, please do not ask us about the awning physics.”
The new page clearly lays out what Caravan Park Tycoon actually is: an unvarnished, affectionate simulation of British seaside culture built in Godot 4. We’ve detailed our core design philosophy, which balances deep simulation systems with the chaotic reality of running a park in Skegness or Rhyl:
- Custom
Resource-driven Guest Logic: Guests aren’t just pathfinding nodes; they are complex bundles of misery metrics, queue patience vectors, and chips-to-vinegar ratio preferences. - Grid-Based Water & Electric Hookups: A tile-based infrastructure network where a single wonky residual current device (RCD) breaker can plunge four rows of Dutch tourers into cold-cut darkness.
- Dynamic Weather & Deckchair Physics: Rain isn’t just a screen shader; it alters terrain friction, turns low-lying grass tiles into mud baths, and forces low-tier AI campers to abandon their cheap pop-up tents.
Writing the About page was surprisingly therapeutic. It reminded us that beneath all the crash logs and missing texture warnings, there is an actual video game taking shape.
De-escalating the Avian Menace
If you visited the site briefly on Tuesday morning, you might have noticed a small SVG render of a seagull subtly bobbing up and down in the header. In Godot, a quick sinusoidal Tween node handles a floating bird animation effortlessly. On the web, using CSS keyframes, it turned out to be an absolute menace.
The intent was “charming seaside ambiance.” The reality was “a visual distraction that caused the hero text to reflow unpredictably every time the screen resized.” Worse still, the continuous rasterization of the bird’s shadow was eating CPU cycles on mobile browsers—a level of unoptimized resource consumption usually reserved for unindexed physics colliders in a crowded arcade scene.
So, we made the executive call: we removed Seagull Bob from the website content.
The bird has been grounded. The web layout is now crisp, static, and stable. In-game, however, the seagulls remain very much alive and continue to use Godot’s NavigationServer2D to calculate the optimal intercept trajectory for an unattended tray of scampi.
On the Horizon: Signal Wiring and Sludge Valves
With the website behaving itself and the devlog pipeline flowing smoother than a newly greased towbar, our focus shifts back into the Godot editor.
Our immediate task for the coming sprint is connecting our tile-based plumbing grid to guest behavior using custom Signals. When a greywater pipe suffers a pressure drop (represented by a custom UnitPipe class extending Node), it needs to emit a sewage_leak signal to the nearest NavigationAgent2D region. Guests within a 10-meter radius will then immediately recalculate their routes to avoid the puddle, while their global ParkSatisfaction float ticks down at a rate directly proportional to how close they are to the chip shop.
Until then, we’ll be staring at Godot’s profiler, drinking lukewarm tea, and listening to the rain hit the window pane. Perfect weather for park management.