I'm basically finished with implementing the schedule stuff. In the process I've changed the event system to allow internal C++ callbacks in addition to Python methods. Still pending is a test of the stuff. I plan to expand the animation demo, so that the character is controlled by a schedule and one can switch between a NPC and player schedule ... will take a while though, since I'm busy next weekend.
Next on my list is the ether, as that is sort of related to the schedules. I imagine that it can be implemented using the event system. It might lack some stuff though, as it is probably tied to the map engine in some way. I.e. characters can only hear each other if they are on the same map. There are a few thoughts on using the schedule stuff which might affect other code, so I want to list them here. Originally, in v0.3, the schedule script of each character was executed every game cycle. This proved to be quite a waste, as the call to python is very costly and in most cases only increased a counter. That was the point where the event system was introduced, so that idle NPCs would simply register a time event and stopped processing the actual schedule. For 0.4, another point for optimization would be the path finding. In v0.3, the schedule always had to poll whether the destination had been reached or not, but we could again save some processing time if path finding happened completely on C++ side and the schedule would be reactivated with an event that either signalled that the goal was reached or the path has become blocked. That way, schedules will be completely event-driven and are no longer running each cycle, which means we can have many more characters active at the same time (which we'll have anyway) without a loss of performance. At the same time, with the ether in place, character schedules should become more interesting than in v0.3, as a character's behaviour can be influenced by the actions of other characters. Kai _______________________________________________ Adonthell-devel mailing list Adonthell-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/adonthell-devel