I've been writing about implementing A* in ECS to see if it's faster. See here and here. It is indeed faster, way faster! I'm too ashamed to tell you that our old OOP A* is so slow. It runs on the range of 2ms to 50ms. This is already using Jump Point Search and multithreaded. … Continue reading Replacing our OOP pathfinding to pure ECS
I've been excited with Unity's Burst compiler since I saw it in action with my own code. Little by little, I've been porting some of our common code to use ECS so we could easily leverage Burst. I've always wanted to write the most basic and generic A* algorithm written in ECS and see how … Continue reading How fast could Burst compiled A* be?
Right now, my side project is to make an A* code that works for Unity's ECS (this is my main project). I've always wondered how many A* calls can be completed in a single frame using a Burst compiled implementation that runs in a job (multithreaded). This post is not about the results as I'm … Continue reading A small optimization for A*
The FSM framework described in part 1 requires the user to make action classes. These action classes can then be reused in any state. This makes the framework very extensive and flexible. This is actually my favorite feature in Playmaker. Playmaker comes with a wide collection of premade action classes. At the same time, you can … Continue reading Simple FSM Framework Part 2: More on Actions
I remember a project which I lead that heavily used Playmaker for its systems. This was the time when Playmaker was still in its first couple of months and I got pretty excited when I tried it. For those of you who are not familiar, Playmaker is a Unity asset that helps you create FSM … Continue reading Simple FSM Framework Part 1: The Making
I have made my own A* framework around 2012. I still use the same code until now. It has been improved a lot of times already but one thing that didn't change much is the interface. What I mean by 'interface' here is the collection of public classes, methods, and interfaces to access the framework. … Continue reading A Better A* Interface
We use GOAP for our AI in Academia. It's working well for us so far. New behaviour can be easily added and AI glitches can be easily fixed. But I've had problems with it as well. One of them which needed fixing is duplicate actions.