Attributes are a bit tricky because they impact so much of the game. It shouldn’t be easy to raise and maintain a high level of an attribute.
Simply going to the gym until you reach 100% and then getting a permanent +1 strength doesn’t really sit well with me.
I have a few very different ideas of how this might work;
- Temporary buffs. Instead of getting a permanent +1 strength, what you do is you work out at the gym for a while and when you reach 100% you get a ‘Feeling Fit’ buff that gives you +1 strength. This might last for two days. If you work out again the next day it takes longer but modifies the bonus to +2 and it lasts two days. That is the best you can do. If you train again it simply resets the counter. So +2 strength is the best you can get, and if you let it go past the two day mark you drop back down to +1, and after another two days you lose the buff and must start over.
Studying at a library could be done to improve intelligence in the same way. I’m less sure about dexterity and perception.
-
‘Fixed’ attribute pivot points with attribute rust. The idea here is that every character has the same attribute pivot point - the point at which the attribute ‘rests.’ The ‘zero point’ if you will. In this case I’d probably suggest eight as a pivot point, since that’s the default starting position. Basically, the higher you are training your attribute, the harder it is to train, and the harder it is to maintain. Attributes will decay faster at 12 than they do at 10 or 9, and stop decaying at 8. In order to make this easier, simply performing certain actions (melee fighting > strength, reading > intelligence, etcetera) will slow down attribute decay. In order to raise an attribute you must perform some action, such as a generic studying action at the library or working out at the gym. (This system would obviously make taking high starting attributes less attractive)
-
‘Adjustable’ attribute pivot points with attribute rust. Similar to above, except the pivot point is the average between your 8 and your ‘natural’ attribute (adjusted by mutations etc). So if you started with 12 strength, your pivot point would be 10 instead of eight. If you got a mutation that raised your strength by +2, your pivot point would be 11.
2 and 3 would require some system by which strength could be lost below a pivot point, probably. Sickness and starvation could lower attributes below the pivot point. Because they are below the pivot they would naturally be inclined to raise back to your pivot, with or without specific training. So rather than decaying they would slowly, naturally raise until the pivot is reached.
Just some ideas off the top of my head. I think the first idea is probably the easiest to implement and the easiest to balance.