Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Development

Reply
 
Thread Tools Display Modes
Old March 14, 2011, 21:39   #1
Derakon
Prophet
 
Derakon's Avatar
 
Join Date: Dec 2009
Posts: 8,024
Derakon is on a distinguished road
Make all artifacts "special" artifacts

There's a number of places in the code that complain about how "special" artifacts (light sources and jewelry, basically) are a big hack and how their generation process should be unified with the normal artifact generation process. I think this is a good idea, though not in the way the comments presumably intended. I say all artifacts should use the special artifact generation process.

To clarify: currently, normal equipment artifacts are generated if the game makes an equipment item, it passes (in order) the good, great, and artifact checks, there is an artifact still to be generated of the appropriate item type, and it passes an appropriate rarity check for the artifact chosen. More or less, anyway; I'm working from memory here.

Conversely, for special artifacts the game just decides to try making a special artifact, then runs the appropriate rarity tests for each one, and if one passes, then bam, special artifact generated.

There's a few warts with artifact generation that the "special" generator obviates. The most obvious is that artifact rarity is tied to base item rarity, so every time the base item rarity gets changed, artifact rarities have to be adjusted to suit. It's also basically impossible to make, say, an artifact Scythe of Slicing native to dlvl 10, whose only special properties are that it aggravates and slays orcs. And it's a bit weird that the level on which a random item lying on the floor is most likely to be Ringil is 20, since that's the native depth of the longsword.

Someone suggested this offhandedly in a recent thread, I forget who, and IMO it's an excellent idea. Looking at make_artifact_special (the function called to make a special artifact, natch), as far as I can tell the only thing that'd need to be changed is that instead of trying each artifact in order, it should try to make a single random artifact.

Thoughts?
Derakon is offline   Reply With Quote
Old March 14, 2011, 21:57   #2
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 Derakon View Post
Someone suggested this offhandedly in a recent thread, I forget who, and IMO it's an excellent idea. Looking at make_artifact_special (the function called to make a special artifact, natch), as far as I can tell the only thing that'd need to be changed is that instead of trying each artifact in order, it should try to make a single random artifact.
Just to be clear, you mean to create a single artifact at random.

I agree completely that artifacts should have only one generation process rather than two - but I had assumed that the opposite approach would be better: make jewelry and lights use the "standard" artifact process (ticket #1014).

Having read your post, I am inclined to think that this suggestion may be both simpler and better. I'll be interested to hear what others think.
Magnate is offline   Reply With Quote
Old March 15, 2011, 05:48   #3
camlost
Sangband 1.x Maintainer
 
camlost's Avatar
 
Join Date: Apr 2007
Posts: 522
camlost is on a distinguished road
I've mentioned it in a few different threads, for more or less the same reasons as you state. I see no compelling need for artifacts to be stapled onto a base object, with all its rarity, depth, etc. issues.

Thanks for putting together a thread and a few additional words to this. (I mentioned it most recently in the thread that was complaining about too many shoes).

Also thanks for looking through the make_artifact_special code. I haven't checked to see if is as easy as I think it should be.
__________________
a chunk of Bronze {These look tastier than they are. !E}
3 blank Parchments (Vellum) {No french novels please.}
camlost is offline   Reply With Quote
Old March 15, 2011, 05:58   #4
Timo Pietilš
Prophet
 
Join Date: Apr 2007
Location: Climbing up from hole I just dug.
Posts: 4,080
Timo Pietilš is on a distinguished road
Quote:
Originally Posted by camlost View Post
I've mentioned it in a few different threads, for more or less the same reasons as you state. I see no compelling need for artifacts to be stapled onto a base object, with all its rarity, depth, etc. issues.

Thanks for putting together a thread and a few additional words to this. (I mentioned it most recently in the thread that was complaining about too many shoes).

Also thanks for looking through the make_artifact_special code. I haven't checked to see if is as easy as I think it should be.
I see this (from purely non-coder perspective with 10seconds of thought) as:

roll for item
Roll "is it good"
Roll "is it excellent"
Roll "could it be artifact"

Based on results above

For artifact: roll which one.

Else

roll for base item.

Combine rarities to see if item was created.

Obviously the actual code will be quite a bit more complex, but to me that looks like something that isn't very hard to make.
Timo Pietilš is offline   Reply With Quote
Old March 15, 2011, 06:57   #5
Antoine
Ironband/Quickband Maintainer
 
Join Date: Nov 2007
Posts: 968
Antoine is on a distinguished road
Quote:
Originally Posted by camlost View Post
I've mentioned it in a few different threads, for more or less the same reasons as you state. I see no compelling need for artifacts to be stapled onto a base object, with all its rarity, depth, etc. issues.
I think each art should still be associated with a base object - that is the object which the art looks like until it's identified, and it is the object which sets the art's weight, appearance, base damage dice etc.

But yes, fine to detach the art's depth and rarity from the base object's depth and rarity...

A.
__________________
Ironband - http://angband.oook.cz/ironband/
Antoine is offline   Reply With Quote
Old March 15, 2011, 13:50   #6
buzzkill
Prophet
 
buzzkill's Avatar
 
Join Date: May 2008
Location: Indiana, USA
Posts: 2,939
Donated: $8
buzzkill is on a distinguished road
Quote:
Originally Posted by Antoine View Post
I think each art should still be associated with a base object - that is the object which the art looks like until it's identified, and it is the object which sets the art's weight, appearance, base damage dice etc.
Yes, but this base object doesn't need to be created randomly. The base object can be specified as a trait of the artifact. So, when it is 'decided' that an artifact is 'created' I suppose that a base object 'placeholder' will also be created... or did I misunderstand you?

The biggest problem I can see is having to re-adjust the rarities (maybe), since base object creation will no longer figure into it. Aside from that, generating artifacts as "special" seems much cleaner, at least to me.

An unrelated question about rabdarts... Are a randarts weapon/armour powers locked to a particular item type? What I mean is, can randart Ringil be generated as a war hammer or a great axe or a shovel?
__________________
www.mediafire.com/buzzkill - Get your 32x32 tiles here. UT32 now compatible Ironband and Quickband 9/6/2012.
My banding life on Buzzkill's ladder.
buzzkill is offline   Reply With Quote
Old March 15, 2011, 14:05   #7
Timo Pietilš
Prophet
 
Join Date: Apr 2007
Location: Climbing up from hole I just dug.
Posts: 4,080
Timo Pietilš is on a distinguished road
Quote:
Originally Posted by buzzkill View Post
An unrelated question about rabdarts... Are a randarts weapon/armour powers locked to a particular item type? What I mean is, can randart Ringil be generated as a war hammer or a great axe or a shovel?
I think current code could create Artifact bowl of petunias based on Ringil if we had flowerpots as base item.
Timo Pietilš is offline   Reply With Quote
Old March 15, 2011, 16:07   #8
Derakon
Prophet
 
Derakon's Avatar
 
Join Date: Dec 2009
Posts: 8,024
Derakon is on a distinguished road
Timo's right. You can generally recognize a randart based on Bladeturner, Ringil, etc. because they'll be much more powerful than most. Randart rarity does take the base item rarity into account, though, so the converted Ringil should be just as rare as the real Ringil is in normal games.

And yeah, rarities would need to be rebalanced. But that needs to happen anyway, since currently many powerful artifacts are far too common (c.f. Feanor).
Derakon is offline   Reply With Quote
Old March 15, 2011, 19:22   #9
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 Derakon View Post
Timo's right. You can generally recognize a randart based on Bladeturner, Ringil, etc. because they'll be much more powerful than most. Randart rarity does take the base item rarity into account, though, so the converted Ringil should be just as rare as the real Ringil is in normal games.

And yeah, rarities would need to be rebalanced. But that needs to happen anyway, since currently many powerful artifacts are far too common (c.f. Feanor).
Careful - we're conflating two different issues here.

Anecdotal evidence from dumps shows that Feanor and The One are noticeably more common since 3.1.x, but IMO this is not relative to other artifacts - I think the attack on TMJ launched in 3.1.0 had a side effect of making artifacts more common per se (along with, even more noticeably, ego items).

Separately, there have been a series of changes to both base item rarities and artifact rarities. There was the change to alloc_prob (a percentage instead of a "one in X" chance), there were some changes to individual standart rarities, and some new/changed base items. The old mechanism of calculating randart rarity by (old art rarity * old base item rarity / new base item rarity) *hasn't* changed, but obviously the other changes have affected randart generation.

@buzzkill: ironically the full answer to your question is that any standart can choose any base item for a randart *except* lights and jewelry. Lights, rings and amulets can only have their properties randomised, not their base items. Adopting the suggestion in this thread would unlock this.
Magnate is offline   Reply With Quote
Old March 15, 2011, 20:18   #10
Antoine
Ironband/Quickband Maintainer
 
Join Date: Nov 2007
Posts: 968
Antoine is on a distinguished road
Quote:
Originally Posted by Magnate View Post
@buzzkill: ironically the full answer to your question is that any standart can choose any base item for a randart *except* lights and jewelry. Lights, rings and amulets can only have their properties randomised, not their base items. Adopting the suggestion in this thread would unlock this.
So would this mean assigning base items to the existing jewelery? Would Narya, for instance, become an art based on a Ring of Flames?

A.
__________________
Ironband - http://angband.oook.cz/ironband/
Antoine 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
T-Engine4 / ToME4 beta16 "World Wide Tome" unleashed! DarkGod ToME 1 December 24, 2010 23:29
"Great" drops replaced by "good" drops in vaults: bug or feature? PowerWyrm Vanilla 14 February 27, 2010 16:54
Feature request: make "summon unique" do nothing when there are no uniques bron Vanilla 11 December 22, 2009 17:25
"repeat" Command just little bit "smarter" ClaytonAguiar Vanilla 8 June 17, 2009 16:01
Question about "special" feelings Neuro Vanilla 9 June 23, 2008 23:37


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


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