Changes between Version 19 and Version 20 of NewEgos


Ignore:
Timestamp:
10/18/11 11:36:08 (8 years ago)
Author:
magnate
Comment:

Amended section on Balancing with link to google doc

Legend:

Unmodified
Added
Removed
Modified
  • NewEgos

    v19 v20  
    11= A Guide to Affixes = 
    2  
    3 a series of 55 commits by magnate 
    4  
    52== Introduction == 
    63This work was based on some ideas vaguely expressed in http://angband-dev.blogspot.com/2011/09/so-what-exactly-is-ego-item-anyway.html 
     
    8784== Next steps post-merge == 
    8885=== Code cleanup === 
    89 I need to get rid of remaining references to o_ptr->ego and remove it from the object_type struct. Also renaming ego_stuff to affix_stuff would be helpful - I've been a bit lazy about this, in case the whole thing was rejected. I also need to write accessors or #defines for things like AFFIX_IS_PREFIX and so on. I also need to un-break lots of the unit tests! 
     86I need to get rid of remaining references to o_ptr->ego and remove it from the object_type struct. Also renaming ego_stuff to affix_stuff would be helpful - I've been a bit lazy about this, in case the whole thing was rejected. I also need to write accessors or #defines for things like AFFIX_IS_PREFIX and so on. 
    9087 
    9188I'm also wondering whether it's possible/desirable to de-globalise the themes[] and e_info[] arrays, and make them local to obj-make (or wherever). I don't know enough about C to know how important or difficult this would be. Similarly, there are lots of comments in the code about making arrays read-only (e.g. #1202) - again, I'm not sure I really understand this issue properly. 
    9289 
    93 We need to confirm that we're happy with Durable, and don't want four separate affixes for the IGNORE_ flags. No reason this can't be done, just seems overkill to me. It does stop us reproducing certain egos exactly though. 
    94  
    9590=== Knowledge and ID === 
    96 Update: the ego knowledge menu now works properly, as does the object knowledge menu. We still need a new "theme knowledge" menu about themes - this is underway. An item's affixes are now listed in the 'I'nspect screen (this may or may not be desirable long-term, but is certainly useful for testing). 
     91Update: the ego knowledge menu now works properly, as does the object knowledge menu. We still need a new "theme knowledge" menu about themes - this is underway. An item's affixes are now listed in the 'I'nspect screen (this may or may not be desirable long-term, but is certainly useful for testing). Flavour text is also shown for all affixes. 
    9792 
    9893IMO we should no longer show the base AC or dice of an object, because these are no longer so static - lots of the Ey prefixes change one or the other. This fits nicely with reducing the amount of info available and forcing people to walk over and fetch stuff. Interested in people's thoughts on this (and see also #1551). 
     
    116111 
    117112=== Balancing === 
    118 Finally, of course, there's a ton of balancing tweaking to be done. Some affixes are available on items which weren't before (e.g. of Warding), and others aren't (e.g. of Dweomercraft), purely because of what I was testing when I added them. Doing this balancing means adjusting the stats code to record affix and theme indices (it already records all the actual item info). I am quite happy for people to crawl all over ego_items.txt and ego_themes.txt and adjust all the T: lines, as I have not spent long checking what affixes are available on which items at which depth and affix level: mithril shields don't seem to be able to acquire any affixes at all!  
     113Finally, of course, there's a ton of balancing tweaking to be done. Some affixes are available on items which weren't before (e.g. of Warding), and others aren't (e.g. of Dweomercraft), purely because of what I was testing when I added them. Doing this balancing means adjusting the stats code to record affix and theme indices (it already records all the actual item info). I am quite happy for people to crawl all over ego_items.txt and ego_themes.txt and adjust all the T: lines, as I have not spent long checking what affixes are available on which items at which depth and affix level: mithril shields don't seem to be able to acquire any affixes at all! 
    119114 
    120 But please note that I *have* spent quite a long time ensuring that the themes are generatable with roughly the same relative rarity as their predecessor ego types, and any changes to the affix weightings on the A: lines need careful thought. 
     115A spreadsheet of the current affix distribution is at https://docs.google.com/spreadsheet/ccc?key=0AlI-IK5uLWbEdEItWWRZY0RqSVhoeHpBWjU3OG02UHc&hl=en_US. To see what is available on any particular type of item, scroll up and down (and order by depth if you like). This immediately tells us that we need more affixes on cloaks, gloves, boots and launchers. We probably need more armour affixes in general: there are 12 AC/weight affixes for armour (two bad), compared with 28 hit/dam/dice affixes for weapons (which need much more careful distribution). We can probably also converge some of the affixes: there is now no need for special affixes for launchers or ammo (Accuracy, Power, Wounding).  
    121116 
    122117I also think that we need to check the balance between obj_alloc (the allocation table for all objects) and obj_alloc_great (the one for "good" or "great" objects). Some potions/scrolls with the OF_GOOD flag may now be too common, and some others perhaps ought to get it (and some devices). 
    123118 
    124 Finally, I haven't done much with the old "cursed" egos - they've been re-enabled as affixes, but not split up into themes. Once we've settled on our "new curses" system I'll come back and sort out affixes for proper mixed-blessing items. 
     119Finally, I haven't done much with the old "cursed" egos - they've been re-enabled as affixes, but not split up into themes. Once we've settled on our "new curses" system I'll come back and sort out affixes for proper mixed-blessing items. In the meantime I will disable them prior to any release. 
    125120 
    126121=== Other issues ===