adonthell-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Adonthell-devel] Character schedules and more ...


From: Kai Sterker
Subject: [Adonthell-devel] Character schedules and more ...
Date: Wed, 21 Jun 2006 13:28:22 +0200

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]