Herds of Birds - Strategy game

Herds of Birds is a strategy game about flightless birds where you build production chains and expand your territory.
You can play solo or with friends, local or online.

Status: technical foundation. UI is temporary, art hardly exists.

Gameplay


You place buildings, connect them with roads and watch your minions carry resources around. Production buildings take in materials to convert them to better materials. By placing specific buildings you expand your territory and lif the fog of war.
Maps are procedurally generated so there is an element of exploration.
Raise an army to defeat your enemies or play together to achieve a common goal.

Visuals

The plan is to sculpt the assets out of clay (irl), paint them and then use photogrammetry to get them into the game. We already made a tech test for that.

This will lean into the whimsical and cartoony.
It should look like the classical stop motion animation.

Tech

This runs on a custom fork of Godot 4.5. Most changes were to the AStar system where I needed to have bitflags on each point to influence the path search.

The networking runs on WebRTC for which I host a signalling server. However since I am strong believer in game preservation, any copy of the game can start up such a server. That way the game can still be played even if we cannot support it anymore.
There is currently no relay server, but that will be added with the games launch.

Who are we

Hello I am Christoph, I started this project and so far did it mostly by myself.
Working on the design is my wife Doris.

Inspiration

The Settlers 2 was obviously a big inspiration. But also Age of Empires and Anno.

Progress

2026-03-30

Progressed on the art side. Initial photogrammetry tests are successful.
Also the art pipeline from Blender to Godot is working in a first version.

2026-01-17

Making of this post. The important mechanics are in. Multiplayer is working. Save and load is working.

2025-February

I switched to a 4 day work week so I can have a dedicated day where I can focus on the game.

2023-December

Started working on the game in my spare time. Creating the basic building blocks of the game

8 Likes

Wow! That looks like it is going to be a fantastic game! Very interesting indeed! Congrats on getting this far, and making the models in clay first is going to give them an amazing appearance, full of character. Can’t wait to see what this becomes. Good luck with the rest of it.

2 Likes

thanks for the kind words :slight_smile:

1 Like

I spent the last 2 weeks getting a basic art pipeline into place.
Now I finally have something in godot. Nothing of this is final, and it’s even missing custom LODs but the basics work. This is animated using a vertex animation texture. Exported from Blender into exr.
3600 meshes on screen. Should be more than the game will ever have

4 Likes

I can’t say enough how this is so pertinent, forward thinking and I wish it was a standardized approach to game development: think of it as an artwork, like a book or movie, that lives on beyond the initial sales.

Bonus points for going the physical claymation route, rather than 3d modelling them in Blender or another software package.

Cheers !

1 Like

I spent more time tinkering with the art pipeline.
The model used is a pathfinder for the style, not a final in-game asset.

On Cross polarization and photogrammetry

In case you need to do photogrammetry on small props, shooting them in the black void is the way to go. The idea is that if everything around the object is pure black, it will be ignored by the photogrammetry software and you can simulate taking pictures in a 360 degree sphere.

For that to work well you need to make sure to remove all reflections from your model. Having diffuse paint helps, but what really does the trick is using the cross polarization technique.
That involves adding a polarizing filter in front of your light, and another one at 90 degrees in front of your camera. Doing so removes all specular reflection coming from the light.

From the sources I found, they recommend using a strong flash. The polarizing foil removes a lot of light, and having to shoot with a high f-stop also reduces the exposure.
However I found I can get away with a cheap ring light (light, not flash. Gives out light continuously) and just increase the exposure time. Since my object is static this gives the same result.


To turn the object I hacked together something out of an old skateboard wheel, a wooden stick and a cardboard tube. The tube is painted black with Maxx Darth from “Green Stuff World”. But anything really black will do. Then I just painted marks on the wheel and added a nail to turn the thing

The cool thing with the cross polarization is that you can prop up your object on shiny plastic and it will still be black in the picture. (here I used the keycap remover from my keyboard)


The camera is a Nikon D610 I could borrow from my dad. Luckily he also had a macro lens I could use. However any long focal length lens will do.
I tried using my phone, but that just wasn’t working well.

Instead of directly touching the camera, which would shake the camera creating a blurry image I used Digi Cam Control, an open source software to control your camera from your PC.

And finally I plonked all the photos into Meshroom with the “Photogrammetry Object Turntable” preset and just let it run at default settings.

References:
Cross polarization tutorial (youtube)
Meshroom Photogrammetry software
Digi cam control

2 Likes

Fun idea! And I think it strikes a good balance between manual and digital labor. Doing actual stop-motion is a pain in the budget.

A colleague and I once had the idea of making a stop-motion top-down shooter out of meats… not advisable :slight_smile:

1 Like

That model is so CUTE!!! :heart_eyes: I kinda want it to be in the final game

1 Like

We’ll see how the final models turn out. I hope at least as cute :wink:

2 Likes

Outlines


Edit: I realized you can’t see the cursor… When I hover the buttons at the botton, all buildings of that type are highlighted.

I needed outlines to highlight objects in the game. While there is the handy outlines option in the standard shader, I took this opportunity to learn the compositor and do the outlines in screen space.

Luckily I read this blog post not too long ago and was able to find it again: The Quest for Very Wide Outlines.
That is a very nice read if you have the time for it as the author goes through many techniques and compares them. The TLDR is that there is one technique that is the best. Distance Fields from the Jump Flood Algorithm.

Since I had no idea how the API to the compositor worked, the github repo from pink-arcana was incredibly helpful. It is quite sophisticated though so I only took it as a reference to implement a stripped down version.
Because I only want outlines, I took the stencil buffer and constructed the distance field from that. The advantage is that it is really easy to add a material overlay to any mesh with a transparent material that just writes into that buffer. Now any mesh instance in my game can have outlines.

In the spirit of sharing, here are some of the scripts I made. Use as a reference to make your own compositor effects. In the _render_callback of the class extending CompositorEffect call render on the stencil pass, then the jump flood pass (and adjust the paths to the shaders).
Afterwards the distance_texture of the jump flood pass is ready to use.

2 Likes