However, my partner and I did decide this morning to make the AI have less information about the player. What I'm thinking is that the AI will track the last time, place, velocity & state of each enemy it saw. So, if you leave its vicinity or line of sight, it will go to where it last saw you, and then wander from there if it didn't find you.
Or, if it hears the screams or sounds of battle, it will go towards the sounds.
Here is a more recent shot of the level editor. The main new feature was finishing up the status area in the upper right section of the screen. This section gives you relevant info for each user interface state the system can be in. So, if you are in Triangle mode, it tells you about the selected triangles, including the bbox of the selected tris, and the most popular material of the selected tris, and the # of tris selected as well as the # of selected tris with the popular material applied.
Similar stats are displayed for the other modes such as Light, Trigger, Decal, Entity, Mesh, etc.
It's funny how my level editor is 4x as object oriented than my game engine. When you first start doing OOP, everything inherits from several classes ( especially mix-ins with data ), and then as you progress, you start to use composition instead.
For instance, my entity class has a 'Stats' struct that it uses to store the physical stats of the object, such as location, bounding box, etc. Actually, it has 3 Stats structs - one for the current physics frame, one for the last physics frame, and one for the visual stats that is a lerp between the other two.
In the past I probably would have had the entity class inherit from 'Physical' or something, which would have made having the various physics structs more difficult.
But, for something very modal and scene-graphy like a level editor, most things you can manipulate inherit from 'EditorObject', which is an interface that enforces save/load, and basic operations like scaling, etc. that can be overridden by the children.
I have brought some concepts from the editor into the game recently, like the 'Space' object that acts as a coordinate frame, which objects use to track their position, anisotropic scaling, and rotation. Now that the game has ths Space object, I need to finish eliminating some redundant info stored in the entity stats object that may be out of synch with the space object.
Here is the latest editor shot. Note the status area in the upper right screen area.
I will be gone from tomorrow very early till mid-next week, so I won't be able to update from the road. Hopefully I will still get some design work done on my trip.