Origin

I wanted a project where I could use machine learning and natural language processing. While I was mulling over project ideas and watching Westworld, a friend sent me a link to the WoW Classic announcement. That gave me the idea for Westworld of Warcraft.

What I wanted Westworld of Warcraft to be was a private server where there were other “players” that would be involved with the gameplay. Back in 2005, I remember playing with a number of memorable players each with personality quirks; an experience I hope to emulate with different hosts.

Goals

So here are the goals of the project (I will update them as I go):

  • Create programs that can interact with the game and consume generated data from the game. (Completed)
  • Funnel consumed data to instances into Microsoft Azure. (Completed)
  • Build machine learning models around the consumed data to mimic players playing the game. Including:
    • Questing
    • PVP
    • Raiding
    • Grouping
    • Being Apart of the Economy
  • Build natural language processing models to:
    • Allow bots to converse with players
    • Spawn bots in response to continuing chat requests (LFG,LFM,WTS,etc.)
  • Change the bots to no longer need the client and use the server connection directly (Completed)

Where those goals ended up: bots now run in two interchangeable modes - injected into a real game client for parity, or fully headless against a C# implementation of the game protocol. Behavior is structured as a four-layer hierarchy, objective sequences are generated at runtime from the world database rather than scripted, and every character carries a personality derived deterministically from its account name. Machine learning and the persona dialogue runtime are both advisory: they break ties and draft text, and neither can choose an action or touch the world.

Series

The architecture is covered end to end in a thirteen-post series:

  1. Westworld of Warcraft: A Server That Plays Itself
  2. Two Ways to Wear a Character
  3. Activity, Objective, Task, Action
  4. Teaching a Bot to Walk
  5. The Cast: Personality as a Function of a Name
  6. Storylines the Players Actually Wrote
  7. The Social Fabric of a Populated Server
  8. The Economy Runs on Nobody
  9. Reset Night, World Buffs, and Why Bots Wait
  10. Advisory, Not Authoritative
  11. Ask and the World Answers
  12. Proving a World Is Alive
  13. The Westworld of Warcraft Reference Architecture