Monday, October 4, 2021

Random Wizard's Online Arena

Verona arena lit at night

You may be aware that a while back I developed a set of tools called Arena/Athena to investigate things in OD&D like implied combat efficiency, level demographics, balancing monster threat levels, generating bands of bandits & pirates by playing out their full career arcs, etc. You can see a lot of results from the tool in prior blog posts here. 

Problem is, those tools run on the command-line locally and assume you have a Java installation and some programmer knowledge, with no fancy GUI controls. Because I'm hardcore like that, obv.

Thankfully, our friend Random Wizard made a proof-of-concept conversion from my Arena Java code to an online Javascript version that runs in a web browser, so it's a bit easier to test it out. Give it a minute when you click the link, because the simulator immediately starts running on page-load and it's a bit CPU-intensive while it thinks. After that you can enter other command-line arguments for different behavior, as per the original program. These include the following:

-a apply aging effects
-b base type of armor (=0-3, default 3)
-e report every encounter
-f fights per year (default =12)
-m magic per level chance (default =15)
-n number of men fighting (default =100)
-p play-by-play reporting
-r reporting types
      s summary statistics    y year-end info
      d detailed data         k monster kills
      t  total monster kills   x xp award ratios
-s start level for fighters (default =0)
-t treasure awards by monster (default by dungeon)
-u create matrix of win percentages
-v man-vs-monster (default man-vs-man)
-w use fighter sweep attacks (by level vs. 1 HD)
-x use revised XP award table (from Sup-I)
-y number of years to simulate (default =50)
-z fighter party size (default =1)

Thanks to Random Wizard for making this possible! Any interesting results you've discovered with it?

Random Wizard's Online Arena


  1. Hi Delta! Good news is that I am really excited about this and I've wanted to futz around with your program ever since I read about it here. Bad news is I'm pretty dumb. Could you type out a few sample commands I could copy paste to get me started? Thanks!

    1. It's not so much a set of commands, as settings you can apply to the one command.

      For example, if you input "-n=1000 -y=100", it will run ten times as many fighters for twice as many years as default, and (after several minutes of simulation!) it will output a table likely to have higher-level survivors.

      In theory this should seem to give you a fighter's whole career, but it doesn't seem to actually output the encounters correctly: "-n=1 -a -e"

    2. Thanks for asking! Unknown's answer above pretty much scopes it out. For example, if I enter:

      -n=1000 -y=100

      Then I'll have an arena of 1,000 fighters running matched one-on-one combats for 100 years (which might take a while).

      Unfortunately I'm realizing now that some of the options fail to work: esp., anything requiring monsters in the simulation (maybe doesn't have access to the monsters database file?). But we can still use it for the basic man-to-man demographics expectations.

      Also entering -? (or any non-option) gets a listing of the recognized options there.

  2. This is pretty cool! Congrats to Delta and Random Wizard for the great work!