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