It was recently said somewhere on these forums that Angband is at its heart a game about inventory slots. To the extent that this involves choosing best equipment among a large set, I think the current (4.0.5 and earlier) Angband UI really makes this a crappy chore (note: I tend to play with randarts). A lot of people on the forums seem to have a phenomenal intuitive grasp of min-maxing equipment in the face of a home and inventory full of junk, but that isn't me.
As a way to try to teach myself some code, I thought I'd try to make an out of game utility that can help with equipment decisions.
My basic plan:
Read in a char dump
Use regular expressions to figure out attributes of each equipment
Provide a UI that will allow
- clear view to compare attributes of different pieces of equipment
- flagging pieces that are "strictly worse/better" than others for the same slot
- sorting by resists (wait, what has rNether again?)
- easy tinkering with kit choices
- "optimizing"- e.g. max speed or damage given user-selected required resists, or, e.g. most damage with speed set to S=+20.
My coding skills are pretty limited- mostly a little Matlab and R. My thought was to try to do this in Java, because that might be fairly cross-platform and if I end up with something worth sharing, maybe it could become web-based [I have no idea if this is true].
I feel like this is a totally ass-backwards way to do this, but don't really know a better way at the moment. I'm on a Mac, and for some reason XCode requires some insane amount of disk space so I'm not sure about working in C or C+ or whatever Angband is actually written in (and not sure how to compile then, etc- yes, I am that much of a novice here). However, the char dump doesn't provide all the information I need, and makes some of the information much harder to get (i.e. regular expressions rather than just reading flags to figure out attributes), so I can see why making this an in-game utility, or at least a utility that accesses game info would be preferred- I just have no idea how to do that.
When it comes to optimizing, is there a better method than looping through every permutation of equipment, saving a combination that meet all criteria, then replacing that combination if a "better" set comes up?
Once I get this started I'll put something up on github. No guarantees on when that will be, but figured I'd start the conversation now before I waste a lot of time on a really bad idea.
As a way to try to teach myself some code, I thought I'd try to make an out of game utility that can help with equipment decisions.
My basic plan:
Read in a char dump
Use regular expressions to figure out attributes of each equipment
Provide a UI that will allow
- clear view to compare attributes of different pieces of equipment
- flagging pieces that are "strictly worse/better" than others for the same slot
- sorting by resists (wait, what has rNether again?)
- easy tinkering with kit choices
- "optimizing"- e.g. max speed or damage given user-selected required resists, or, e.g. most damage with speed set to S=+20.
My coding skills are pretty limited- mostly a little Matlab and R. My thought was to try to do this in Java, because that might be fairly cross-platform and if I end up with something worth sharing, maybe it could become web-based [I have no idea if this is true].
I feel like this is a totally ass-backwards way to do this, but don't really know a better way at the moment. I'm on a Mac, and for some reason XCode requires some insane amount of disk space so I'm not sure about working in C or C+ or whatever Angband is actually written in (and not sure how to compile then, etc- yes, I am that much of a novice here). However, the char dump doesn't provide all the information I need, and makes some of the information much harder to get (i.e. regular expressions rather than just reading flags to figure out attributes), so I can see why making this an in-game utility, or at least a utility that accesses game info would be preferred- I just have no idea how to do that.
When it comes to optimizing, is there a better method than looping through every permutation of equipment, saving a combination that meet all criteria, then replacing that combination if a "better" set comes up?
Once I get this started I'll put something up on github. No guarantees on when that will be, but figured I'd start the conversation now before I waste a lot of time on a really bad idea.
Comment