Really enjoyed this and am trying to make something similar myself. How did you go about keeping track of entity positions and the like so that enemies wouldn't run into each other?
I've been trying to use a dictionary of Vector3Ints as keys and a custom Entity class as values. Perhaps you found a better approach to this?