1. A method, implemented by a computing device comprising a processor and one or more output devices communicatively connected to the processor, the method comprising: extracting, with the processor, one or more semantic structures from a knowledgebase associated with a computer-controlled character; combining, with the processor, the semantic structures from the knowledgebase with one or more structures from a virtual world state into one or more combined semantic structures; generating, with the processor, one or more natural language elements dynamically generated based on both the combined semantic structures and inputs from the user; and providing, via one or more of the output devices, the natural language elements in menus of user-selectable dialog elements and in computer-controlled character dialog elements responsive to the user-selectable dialog elements, the natural language elements being provided to a user via one or more of the one or more output devices.