While waiting for the next Sil release, I went ahead and turned an idea I had mentioned on the Wishlist thread on forge generation into a playable pull request on mpa-sil. You can pull the source off of github here: https://github.com/phaethonfire/mpa-sil/tree/forgegen. I've tested it in about half a dozen games, and the difference is subtle but good. The change is only a dozen lines of code.
In my git branch, I swapped out the algorithm that invokes creating a forge. It used to base everything off the number of turns since the last forge spawned. This could create a domino effect where getting an early forge meant you could end up with 15+ forges in a single game. Now, it creates a forge based on your depth, the turncount, and how many forges have already spawned. It should always generate roughly 10 forges over a 30k turn game (~7 if you get to Morgoth in 15k turns), though weighting factors on how many to generate total are trivial to change. If anyone feels like firing up a round of Sil, I would love someone to try it out and give feedback.
I play quite a few smithing characters, and I've always been a bit uncomfortable with the dynamics of forge spawns. Early game, it can be hard to survive if you miss the second forge and the third spawns late. Conversely, the game gets absurdly easy if you get lucky with forges. In the end game, there is also a strong incentive to loiter at 950' and scum for forges. I've seen anywhere between 8 and ~15 forges in a game. The turn count clock is supposed to prevent the latter, but I think it's much more efficient to just build it into the procedural dungeon generation.
Please give it a try and let me know. Oh, and to build from source (in case instructions are helpful), on my system (Mac) I open up a Terminal window and build Sil like this:
git clone https://github.com/phaethonfire/mpa-sil/tree/forgegen
cd mpa-sil/src
make -f Makefile.std install
cd ..
./sil -mgcu
In my git branch, I swapped out the algorithm that invokes creating a forge. It used to base everything off the number of turns since the last forge spawned. This could create a domino effect where getting an early forge meant you could end up with 15+ forges in a single game. Now, it creates a forge based on your depth, the turncount, and how many forges have already spawned. It should always generate roughly 10 forges over a 30k turn game (~7 if you get to Morgoth in 15k turns), though weighting factors on how many to generate total are trivial to change. If anyone feels like firing up a round of Sil, I would love someone to try it out and give feedback.
I play quite a few smithing characters, and I've always been a bit uncomfortable with the dynamics of forge spawns. Early game, it can be hard to survive if you miss the second forge and the third spawns late. Conversely, the game gets absurdly easy if you get lucky with forges. In the end game, there is also a strong incentive to loiter at 950' and scum for forges. I've seen anywhere between 8 and ~15 forges in a game. The turn count clock is supposed to prevent the latter, but I think it's much more efficient to just build it into the procedural dungeon generation.
Please give it a try and let me know. Oh, and to build from source (in case instructions are helpful), on my system (Mac) I open up a Terminal window and build Sil like this:
git clone https://github.com/phaethonfire/mpa-sil/tree/forgegen
cd mpa-sil/src
make -f Makefile.std install
cd ..
./sil -mgcu
Comment