Not sure how to form this question, but Im going to try and explain whatever Im thinking right now.

ATM I am working on a State Machine AI, so far its reletively easy to implement, but exhaustive. So far I have many different states, some using the same pathfinding functions, which means alot of states might seem redundant. However I do understand that it could be made more modular, such as giving the entity only 1 pathfinding state, but changing the target node variable within that state. But this is the first AI state machine Ive made that works pretty well, so its a learning experience.

So far the problems I have is transitioning from state to state without noticable pauses. The state switching is more apparent when the AI is playing an animation and switching to a different state.

Another apparent sign of a state machine is when the AI state must perform a critical function that requires the AI to wait on other entities to send information back to the AI. This usually means a wait(); must be excecuted until relevent information the AI needs is received. This single wait may seem harmless, but is jarringly noticable for a moving, shooting, thinking AI. An example of this is finding the closest node to the AI, finding the closest enemy to the AI, scanning for enemies, cycling through a huge list or etc.

The only alternative I thought of was splitting the entity into 2 or more entities, each doing their part, even if some are still. I will continue using the single entity state machine for my current game, but would like to split it up for my next game.

My idea was to have the pathfinding function of a soldier be handled by a seperate pathfinding entity, while the animation and "tactical" thinking would be handled by the "model" entity. This way, when my soldier entity has to freeze for a single frame to calculate the A* path, his animation and AI thinking would continue to run, in attempts to help smooth over any stops in movement.

I would like to know if anyone has done a mix of state machines and fussy state machines, and how they went about their AI. Im not asking for code, just experience from people implementing this using 3dgs if possible.