I really like roguelikes games, and want to create one. Since we’re already far into the XXI century, I want to have a good graphics support, and since I want to write in rust, Amethyst seems like an excellent choice.
I don’t want game to be played in real time, I want it to be turn based, with every “monster” taking turn based on its speed. So a fast monster can move for example every 5 turns, which a slow one once every 8 turns (just an example). And I have hard time with grasping how to make it in amethyst. In a simple and naive implementation I would have just turn counter, iterate over all entities, and compare turn counter with internal entity variable and do (or don’t) do something, Then at the beginning of next iteration increment the turn counter, and so on.
How to write system for that in amethyst? My concerns are, that running system once per frame is gonna be probably too slow, on the other hand system should not run, when waiting for user input, and screen should update only whenever something really moved on screen. While drawing is less of a problem, I’m not sure how to make system run as fast as possible, and then wait for user input.