Constructing autonomous social characters for games