Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Development

Reply
 
Thread Tools Display Modes
Old December 1, 2016, 20:38   #31
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 52
Posts: 6,478
Donated: $60
Nick is on a distinguished road
Quote:
Originally Posted by Magnate View Post
We have a choice: imperfect algorithmic power, or imperfect simplified power. The same goes for monsters. I don't see the logic of simplifying one but not the other.
I have two arguments for treating monsters and objects differently, one philosophical and one mathematical.

First, the game story is that the character goes into dungeon, aiming to kill Morgoth and as many of his minions as necessary. In order to do this, they need objects. So the fundamental objects of the world are firstly the dungeon, and secondly the monsters - and objects are then a response to those. Your sword of *Slay Dragon* is only made that way because that's what slays dragons. So it makes sense to have monsters (and terrain), and then objects that are constructed relative to them.

Second, if you have two algorithmically constructed sets - object and monsters - which are constructed relative to each other, you lack a fixed point in the system. So objects are made and priced based on their effectiveness against monsters, but then monsters are allocated power based in part on what objects are available to counter them, and the argument becomes circular.

There is also the broader argument that we are trying to construct an increasingly complex algorithm to measure a one-dimensional power or value, when in fact values of objects vary wildly depending on game situation. I think complexity needs to be avoided as much as possible here because:
  • It is hard to understand
  • We start giving its results more credence than they deserve
  • Small changes have unpredictable effects
  • It makes the game rigid

I don't think I have explained my reasoning terribly well here, but I hope it gives some insight to my approach
__________________
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them.
Nick is offline   Reply With Quote
Old December 2, 2016, 16:18   #32
fizzix
Prophet
 
Join Date: Aug 2009
Location: Madison, Wisconsin, US
Posts: 2,925
fizzix is on a distinguished road
Quote:
Originally Posted by Nick View Post
I have two arguments for treating monsters and objects differently, one philosophical and one mathematical.

First, the game story is that the character goes into dungeon, aiming to kill Morgoth and as many of his minions as necessary. In order to do this, they need objects. So the fundamental objects of the world are firstly the dungeon, and secondly the monsters - and objects are then a response to those. Your sword of *Slay Dragon* is only made that way because that's what slays dragons. So it makes sense to have monsters (and terrain), and then objects that are constructed relative to them.
This approach can run into undesirable outcomes. The most obvious example for me is Free Action. FA is really valuable early on, but it's also absolutely necessary. Your first source of FA is probably valued at something like +8 speed or maybe more. Does that mean that we should cost FA the same as +8 speed? Absolutely not, because FA is necessary to survive past level 30 or so and +8 speed is not (although it sure is helpful).

So a purely reactive approach is going to give FA a much higher power and cost just because of the sheer large number of monsters it protects against and the lethality of those attacks. I'm not sure how we get around this and similar issues with a simplified algorithm. I have a feeling things will need to be hand-tuned.
fizzix is offline   Reply With Quote
Old December 2, 2016, 16:27   #33
Derakon
Prophet
 
Derakon's Avatar
 
Join Date: Dec 2009
Posts: 7,843
Derakon is on a distinguished road
Quote:
Originally Posted by fizzix View Post
So a purely reactive approach is going to give FA a much higher power and cost just because of the sheer large number of monsters it protects against and the lethality of those attacks. I'm not sure how we get around this and similar issues with a simplified algorithm. I have a feeling things will need to be hand-tuned.
This sounds like a vote for scaling object power valuations based on how common the power is. Speed wouldn't be considered an especially valuable power if 50% of items had speed, for example.

Do we need a supply/demand curve?
Derakon is offline   Reply With Quote
Old December 2, 2016, 18:58   #34
fizzix
Prophet
 
Join Date: Aug 2009
Location: Madison, Wisconsin, US
Posts: 2,925
fizzix is on a distinguished road
Quote:
Originally Posted by Derakon View Post
This sounds like a vote for scaling object power valuations based on how common the power is. Speed wouldn't be considered an especially valuable power if 50% of items had speed, for example.
Sure that's one approach, but that doesn't fit Nick's model of first populate the dungeon with terrain and monsters, and then decide item power based off of only that information. You're including another variable.

I would agree that we need this extra variable, whatever it is, which was the point of my post.
fizzix is offline   Reply With Quote
Old December 2, 2016, 20:44   #35
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 52
Posts: 6,478
Donated: $60
Nick is on a distinguished road
I'm sorry, I seem to have been unclear here. I'm not advocating for wholesale change to how objects are valued - the current algorithm is pretty good. The aspects of the power calculations relevant (IMO) here are:
  1. The power calculations lack clarity. There are a lot of judgments made on the value of various things within the code itself.
  2. The monster power calculation is used for two things: re-balancing the monster list, and evaluating the power of slays and brands on objects. Re-balancing the monster list is not actually used for anything, and a part of what I'm suggesting here is that it is better done by hand. The issue of slays and brands is my next point.
  3. The object power algorithm is currently fairly clear, although putting all the parameters in one place and clearly labeling them would improve it. It calculates an attack power for weapons, and then gives weights to other powers like AC, resists, stat bonuses, etc. Most of these are straightforward, with values set by making a judgment. The exceptions to this are slays and brands, which have their value calculated by a big calculation of their effectiveness against every monster in the monster list, weighted by monster power.

What I would like to do, then is
  1. Replace the current slay/brand calculation with a simple weight system. While I like the attempt at accuracy, it doesn't really fit with the heuristic nature of the rest of the calculation - it's like weighing a basket of fruit by getting a precise weight for the grape, and then using average values for all the bananas, melons, etc.
  2. Since it is now unused, remove the monster power calculation.
  3. Clarify further what parameters are being used and where in the object power calculation, to make rebalancing easier.

The added bonus I haven't mentioned here is that this allows us to throw away several hundred lines of code
__________________
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them.
Nick is offline   Reply With Quote
Old December 5, 2016, 13:19   #36
PowerWyrm
Veteran
 
PowerWyrm's Avatar
 
Join Date: Apr 2008
Posts: 1,891
PowerWyrm is on a distinguished road
There's also this (from monster.txt):

# power: depth : rarity : power : scaled power : experience for kill

For example:

name:547:Morgoth, Lord of Darkness
power:100:1:1536744111:1705598:60000

Yes, power is hardcoded in the txt file, and good luck to understand the values... If something changes in the code, you have to redo ALL the monsters. Why this is not calculated internally eludes my poor simple mind...
__________________
PWMAngband variant maintainer - check http://www.mangband.org/forum/viewforum.php?f=9 to learn more about this new variant!
PowerWyrm is offline   Reply With Quote
Old December 5, 2016, 14:01   #37
takkaria
Veteran
 
takkaria's Avatar
 
Join Date: Apr 2007
Posts: 1,820
Donated: $40
takkaria is on a distinguished road
Quote:
Originally Posted by PowerWyrm View Post
There's also this (from monster.txt):

# power: depth : rarity : power : scaled power : experience for kill

For example:

name:547:Morgoth, Lord of Darkness
power:100:1:1536744111:1705598:60000

Yes, power is hardcoded in the txt file, and good luck to understand the values... If something changes in the code, you have to redo ALL the monsters. Why this is not calculated internally eludes my poor simple mind...
As far as I can tell monster power is used only in two other places: listing order in the monster list when depth is the same, and the monster rating element of the level feeling. So if it stops being used for the slays/brands, these will be fairly easy to remove and replace with depth.
__________________
"Physician, heal thyself."
takkaria is offline   Reply With Quote
Old December 5, 2016, 20:10   #38
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 52
Posts: 6,478
Donated: $60
Nick is on a distinguished road
Quote:
Originally Posted by PowerWyrm View Post
Yes, power is hardcoded in the txt file, and good luck to understand the values... If something changes in the code, you have to redo ALL the monsters. Why this is not calculated internally eludes my poor simple mind...
It used to be. One of my fairly early changes was to put it in the text file, mainly because it was in the "no gameplay change" era of code restructure and that was the easiest way to ensure that

That was never intended as a long term plan; I was always going to come back and decide what to do with the whole power system, which is what's happening now.

I now have code with monster power removed, which (as takkaria said) involved changing the monster feeling code a bit. Once I've fixed a few of the worse existing bugs too I'll get it out there for testing.
__________________
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them.
Nick is offline   Reply With Quote
Old December 5, 2016, 20:30   #39
Magnate
Angband Devteam member
 
Join Date: May 2007
Location: London, UK
Posts: 5,054
Magnate is on a distinguished road
Send a message via MSN to Magnate Send a message via Yahoo to Magnate Send a message via Skype™ to Magnate
Quote:
Originally Posted by Nick View Post
What I would like to do, then is
  1. Replace the current slay/brand calculation with a simple weight system. While I like the attempt at accuracy, it doesn't really fit with the heuristic nature of the rest of the calculation - it's like weighing a basket of fruit by getting a precise weight for the grape, and then using average values for all the bananas, melons, etc.
  2. Since it is now unused, remove the monster power calculation.
  3. Clarify further what parameters are being used and where in the object power calculation, to make rebalancing easier.

The added bonus I haven't mentioned here is that this allows us to throw away several hundred lines of code
Ok I can get behind this. The original intention was that the slay/brand power calculation was the first and easiest of a whole series of values calculated according to the power of monsters, which would eventually include mathematical approximations of the value of resists and FA etc. It doesn't look like anyone else is ever going to do this, and if I ever get around to it then putting the monster power code back will be the least of my challenges.
__________________
"3.4 is much better than 3.1, 3.2 or 3.3. It still is easier than 3.0.9, but it is more convenient to play without being ridiculously easy, so it is my new favorite of the versions." - Timo Pietila
Magnate is offline   Reply With Quote
Old December 5, 2016, 20:36   #40
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 52
Posts: 6,478
Donated: $60
Nick is on a distinguished road
Quote:
Originally Posted by Magnate View Post
The original intention was that the slay/brand power calculation was the first and easiest of a whole series of values calculated according to the power of monsters, which would eventually include mathematical approximations of the value of resists and FA etc.
Yes, that makes sense. That would indeed have been a mountain of work.

Essentially you were planning to add Roko's Basilisk to the game
__________________
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them.
Nick is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Why inscribe objects? joelsanda Vanilla 14 October 27, 2011 20:59
You sense the presence of objects! fruviad Vanilla 1 September 7, 2011 18:22
OOD objects too common? Philip Vanilla 50 February 9, 2011 14:58
[FA] Changes to wieldable objects Nick Variants 6 January 22, 2009 06:23
Z240 Question on objects APWhite Variants 0 December 27, 2008 00:13


All times are GMT +1. The time now is 05:04.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, vBulletin Solutions, Inc.