Tag: godot

  • Pathfinding almost there

    Update on my “RTS” prototype and the work on pathfinding.

    I previously tried having agents claim a tile at the end of the path, each their own. They follow the flow field to the target area (green circle), and then move to their claimed tile.

    The problem was that it became very complicated to assign them relevant, compacted tiles when there were many agents, especially when they were coming from very different parts of the map.

    Many crossing paths meant a pile-up was to be expected.

    There are multiple ways to fix that, you just have to look at how good RTS games handle it. Check out Beyond All Reason and how they pack units around a point, Age of Empires IV, or even the relatively simple approach used in Starcraft 2.

    But I’m aiming more for organic crowd management rather than precise RTS-style movement. Just to try it out, I completely ditched the tile-claiming system and let agents go to a single target tile, organizing themselves around it using steering forces like avoidance and wall repulsion, with a small timer adjusted based on group size.

    And honestly, the result fits my system much better and is a lot simpler. So for now, I’ll stop overthinking it and keep it this way.

    I might just add a simple local A* calculation for agents that need more precise movement, like workers going back and forth to a mine, to avoid having to compute a full flow field. But that’s probably all I’ll do.

    Check it out in action with the explosion force I added too. It’s not perfect yet, agents in the center shouldn’t be thrown farther than the ones on the edges, but it’s getting there.

  • Blêktre Aftermath + Prototyping

    Blêktre 2081 finally got its 10th review and earned the (100%) “Positive” badge on Steam! That was the final achievement I wanted before moving on.

    To be honest, that’s only 100 copies sold, and it’s not a lot for such a “big” game. More importantly, it wasn’t profitable at all, but that’s more about market and marketing dynamics than the quality of the game, which still receives a lot of support from players.

    Still doing some coding on the “full picture layout” (mobile) for Blêktre, but since no bugs have been reported lately, I’m moving on.

    I’ve learned a lot, and I’m starting new projects with those lessons in mind.

    PROTOTYPING ON GODOT

    I tried to create a full pathfinder in GDScript, but it started to lag with more than 200 agents.

    So I learned C++ and implemented it as a Godot extension. The result is over 2,200 agents running at more than 60 FPS, about a 10× performance boost. The approach is a classic RTS-style system using multiple flow fields with steering.

    My latest implementation are explosion forces.

    I’m aiming to prototype an RTS using these mechanics.

    LOOT GENERATOR

    While trying to help my brother with his own game, I came up with the idea to create a JavaScript loot generator for ARPGs (Diablo-like, actually super inspired by Grim Dawn, my favorite). It’s highly customizable and it should fit my brother’s game needs at some point. He also had the idea to turn it into a versatile tool we can distribute to other developers.

    Well, that’s a secret sauce, so I’m not sharing anything except these screenshots: