Software Development for Reasoning and Cognitive NPCs