View Single Post
Old November 21, 2016, 12:10   #1
Vanilla maintainer
Nick's Avatar
Join Date: Apr 2007
Location: Canberra, Australia
Age: 53
Posts: 7,189
Donated: $60
Nick is on a distinguished road
Monsters, objects and randarts - simplification

Current situation:
  1. 650 lines of code are devoted to evaluating monster power; this is used for monster level feeling, evaluating slays and brands on objects, and could be (but isn't) used for deciding whether monsters are the appropriate rarity.
  2. 750 lines of code are devoted to evaluating the power of wearables and ammo. This is used for prices and randarts.
  3. The randart code (about 2500 lines) does a detailed evaluation of the standard artifact set, including powers, and then designs a new set so that each individual randart has similar power to some standard artifact, and over the two sets of artifacts as a whole each property will appear roughly the same number of times.

The monster power code is intricate and contains a large number of arbitrary-looking choices for how to value various properties. The object power also has a lot of arbitrary choices, but it's mostly fairly clear how they're made. The core of the randart code is pretty simple and clear (make a frequency table of properties and choose randomly from it), but there are some aspects of it which are outdated, and other choices as to how to allocate power and properties that might be worth considering.

My current thinking is to
  • Blow away the monster power code, replace monster power by level, maybe with a slight bonus for uniques. The monster list is the core of the game - it is player against monsters - and as such should be handcrafted.
  • Simplify the object power code as much as possible. Ideally each property (sustain, resist, immunity, +1 to a stat, etc) would have its own fixed contribution to power, but in practice we might need to increase power when an item has, say, all the basic resists covered. The main pitfall here is the effect on prices.
  • Some simplification of the randart code, considering options like assessing overall power rather than item-by-item. I think we have a fair bit of leeway here, but because randarts are downstream of objects there will be potentially big effects from changes to the object power code. This might take a while to balance.

One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote