A wiki-style simulator
We’re developing some tools for you.
Ask Mr. Robot is developed and maintained by 3 people, and we spend a lot of time theorycrafting. But we take a broad approach that spans across all classes, as you may have noticed. For example, we have been using back end tools that integrate with our site and SimC in order to auto-generate stat weights for every spec. While we are experts at theorycraft, techniques, and systems, we are (clearly) not experts for every spec. With 30+ specs, that’s no surprise.
Over the past year, we’ve really worked on reaching out to you, theorycrafters, to include your stat weights on our site, update trinket estimations, and all of the usual things that you lend advice on. We want to keep building on these relationships. Your expertise, and the work you do helps pretty much every person who plays Warcraft. And the pool of theorycrafters keeps getting smaller. We want to support all of you by making your jobs easier and hopefully attract new theorycrafters. So we’ve been working on a project that relies on what we do best: making powerful tools.
We started out as a simulator, and we’re bringing it back
Some of you may remember, way back in the day, our first project was a Death Knight and Druid simulator. We launched it in 2009 to try and win a Silverlight comeptition. The project quickly caught on but we didn’t build a system that was easily maintainable for every spec. At the same time, reforging became a huge deal, so we focused on the gear optimizer.
I mentioned that we’ve written several tools for our own use that interface between our site and SimC. But some things were just not possible with the current version of SimC, so we thought we could help work on the core of the code. The original author is gone and there’s a lot of legacy code we dug into, which took quite a bit of time. There have also been several bugs around for years that we thought we could help fix – another huge time sink. After this initial investigation, we decided it would be faster and easier to just start from scratch.
So last year we started testing out an idea for a super-maintainable and totally transparent simulator. After a few iterations, we’re confident we have a system that can be maintained by any theorycrafter (not just programmers). And its transparency makes it easy to double check for accuracy. The entire system is based off a wiki-style format that gets dynamically generated into code.
What makes our simulator different?
Besides our internal code name, Simnado, you mean? We take wiki-style pages and compile them into code that runs simulations. This is all on-demand, so any changes you made are immediately updated in the simulator. Simulations can be run on our servers or on your own computers. It’s very flexible.
Wiki style rotation editor / creator tool.
Wiki-Style gives access to non-programmers
Probably one of the biggest changes is that we’ve designed the simulator around the idea of a wiki. You update spell information, boss scripts, and spell rotations on wiki style pages. You need to understand basic logic (if/then), conditions, and excel-type formulas, but you don’t need to know how to write code.
This style of page also makes it very readable (we hope) to the general population. You can also write comments on pretty much anything you do. So if you want to explain each step of a spell rotation, you can do that.
Since everything will be on the wiki, all information is incredibly transparent from spell rotations to game mechanics. Nothing will be buried in code. This makes it easier for theorycrafters to update, for class experts to verify for accuracy, and for anyone to easily find spell data.
Building a simulator this late in the game allowed us to learn from all of the past pain points. The system is incredibly flexible and built on a lot of requests you theorycrafters have had for a long time.
- Boss scripts: easily edit or create a boss script, so you can test out any talent or rotation setup for each boss. Different scripts can even be added for different roles in a fight.
- Multi target: we created a system that handles multiple targets with ease.
- Human timing: we have “anticipation” logic that acts a lot more like a human. We put a lot of care into modeling the timing of how the game queues actions, and how humans make decisions. In SimC you usually had to code this yourself in your rotations by using “react” conditions, and not everyone used these consistently. We want to take this burden off the rotation author, so we created an automatically consistent timing model. We’ll explain the details of this and we will be looking for feedback!
- Dev support: if you find yourself writing some crazy workaround for a spell rotation or boss script, stop. Then let us know what you’re trying to do so we can build it into the simulator. We found a lot of cases just playing with a few classes, and I’m sure there will be more. We want to make this really easy for you – and if you find a case that needs a workaround, other people will have the same problem. We’d rather make it easy by adding in the necessary feature right into the simulator.
Saving you compute-time
When you’re running a bunch of simulations to test out a theory, it’s not uncommon to kick off a batch overnight, since they can take a long time to run. Our client program will allow you to seamlessly run simulations across multiple computers.
Note: the client program isn’t available yet, but will be very soon. So for now, you can run everything on the web. We’ll be scaling up our servers to accommodate your needs during this testing phase.
Updating with patches
We have a few different built-in versions of the simulator: live, ptr, alpha, personal. This means game data can be tied to the PTR, for example, then pushed to live when it launches. We’ll also keep a history of all updates, so you can compare a spell that just got buffed (or nerfed) to a previous version.
We will maintain tight controls on the public versions of the data (PTR, live, etc). That way, we can be confident that theorycrafters like you are controlling the content, and some troll (or well-intentioned, but misinformed do-gooder), doesn’t override your work.
In addition to this, the personal versions of the data allow you to change anything you want, at any time, and have it immediately compiled into the simulator code. So you don’t have to wait for anyone, you can make changes quickly and test the results immediately. It’s all automatic!
Coming Soon: stat weight generation
Currently, SimC calculates stat weights using a delta method and small number of data points. I know a lot of you have your own methods for calculating weights to share with the general public. And some of you might know that we built a system for our own use that iterates through different sets of real gear.
We wanted to make stat weights easier and more accurate for everyone. So we’ll be providing a technique that uses at least an order of magnitude more data points to give you much better predictive power. We plan to have that ready VERY soon.
The general user
We hope having a web-based simulator that runs with the click of a button, encourages more players to use it. And we honestly don’t want their main use-case to be stat-weight generation. We want it to be experimentation.
If a warlock is trying to decide between 2 talents, maybe she sees that there are 2 different spell rotations from her favorite theorycrafter, one for each talent. She can look at those rotations and decide if she likes one better. Then simulate each one, with their respective talents to determine the DPS difference.
We’re also making it really easy to share any simulation setup. So you can have several profiles linked in a guide that talk about different talents or spell rotations. We hope this makes proving your points around the internetz easier, especially things you find yourself having to repeat.
The simulator does one really nice thing for us too: helps us rank trinkets better. We try to rank trinkets as best as possible, we really do. We built a program that interfaced with SimC, figured out DPS differences, then assigned a value of a corresponding stat. Then it could be ranked by stat weights. Despite our best efforts, we realized we just couldn’t realistically, automatically rank trinkets with just stat weights. This simulator allows us to actually rank trinkets, per boss too!
What’s the timeline
- Closed beta: Thursday, May 5, around noon PST. A workshop/walkthrough at Noon PST Thursday and 7pm PST Thursday. Might try to do a Twitch stream for screen sharing purposes.
- We’ll be launching with some WoD classes filled in as completely as possible (but as experts, you might find something missing, so tell us). The idea here is to be able to use the tool on the current version of the game to verify that everything works.
- Next, we’ll be adding in Demon Hunters, then other Legion specs and information. While we’ll be filling this in, you can also do it on the wiki if you want your class done sooner (or want to test it out to see how easy / hard it is, and provide feedback).
- Client program will be coming soon. In the meantime, we’ll ramp up our web servers for you to do testing on.
We want you to test out the system and tell us what you think. To do that, contact us on twitter, discord, or email (feedback -at- askmrrobot dot com) and tell us why you’d be a good beta tester. I will need your email to set up your account. We’ll be available in our Discord channel to answer questions (via chat and voice).
Swol (UX design & theorycrafter)
Zoopercat (people handler & other stuff)