So I programmed a roguelike-inspired(I'm old enough now both to begin sentences with "I'm old enough now" and to remember when to be a true roguelike game had to be text based, turn based, and single player while my younger associates do not) dungeon crawler called "LAIR!," which is basically an engine which provides an interface to a datastructure filled with randomly seeded entity objects which are instructed to interact with eathother and self organize. As they self organize, two things happen, they get more efficient at performing their organizational tasks(which are basically searches but have names like "isItFood(entity* match)") and the datastructure detects whether it would be beneficial to reorganize(in one operation) itself and if so optimize itself while running(which takes may operations, but in practice is invisible even on the largest map I have tried, which was 1 million tiles*half again other versions of class entity).

The reason I did all this optimization is because of the scope of the capabilities of the Artificial Intelligences. The AI's are loaded in from external .lua source files which are compiled at runtime by the game but are not stored in compiled form. These scripts can be hot-swapped without the apparent disruption of an entity's behavior(Technically it happens for a fraction of a second) and can thus be modified by the game. It actually does this quite frequently through the use of modified Lua control structures included in a binding I wrote for the purpose called "Behaviors" which take feedback from the C++ entity about what changes occurred in itself and some of the interesting parts of it's surroundings and decide whether it is "praiseworthy" or "at fault" making entities that respond to classical conditioning(and as it turns out, totally by accident, susceptible to some forms of operant conditioning, stereotypy resembling apes in zoo's, and substance addiction.) This happens staggered in batches throughout multiple game loops, with each entity being able to quickly check for changes to it's AI and update it if need be once every 25 loops minus it's Intelligence score. This helped decrease the overhead that could occur and kept the mean number of expensive AI updates down and minimize the amount of code that would need to be recompiled and hot-swapped. They haven't had much time to run around on their own yet, I need more art to feed into the engine before they'll have an interesting world to exist in, but they should be able to get really smart.

Anywho, there's alot of other stuff but carpal tunnel. See y'all tomorrow. Here are some screenshots from the development version.