00-Evan / shattered-pixel-dungeon

Shattered Pixel Dungeon is an open-source traditional roguelike dungeon crawler with randomized levels and enemies, and hundreds of items to collect and use. It's based on the source code of Pixel Dungeon, by Watabou.
https://shatteredpixel.com/shatteredpd/
GNU General Public License v3.0
4.68k stars 1.09k forks source link

Idea: Up the "Good Ending" difficulty #944

Closed prurigro closed 2 years ago

prurigro commented 2 years ago

Just an idea I had after getting another good ending:

So you have the Amulet of Yendor but aren't willing to stay in the dungeon to accept the fate that comes with it? Maybe the dungeon doesn't want you to leave, and it increases the power and numbers of the creatures that live there more and more the closer you get to the surface (to the point where the most difficult enemies are on floor 1).

The way things currently are, if you have enough supplies to make it to floor 20 or so, the rest of the game is pretty well just walking to the stairs again and again until you're out. I definitely like the fact that you can get a little more play time in if you aren't super close to death, but it would be cool if choosing not to end the game when you get the amulet was something you really needed to consider, and that the trek back would be a proper test of everything you'd built your character for.

Some interesting angles I thought of that this would open up:

The trek back would become more like the reverse castle in castlevania sotn.

Anyway, just an idea- no worries if it's not the direction you want to take things, and thanks either way for all you put into this!

TheYsconator commented 2 years ago

I've implemented something along those lines in a mod I was working on. Some mobs (not all of them) would have a chance of 'growing up' if the player had been on other floors for more than x turns. I didn't want to basically make the way back up a whole new game (that would be the same as just appending more floors), but I did want to make the way back up not as trivial as it was at the moment.

So shops didn't restock, bosses didn't respawn; that would basically stay all the same when going up. However, some mobs would have been transformed into their 'adult' counterparts. Not all adult versions were actually adults: a rat would for instance try to become a 2x2 'swarm of rats'. (I believe 2x2 mobs were not implemented in SPD at the time, as I remember that being quite the hassle to implement.)

With Shattered, I like how more experienced players can utilize their experience to make their characters last a bit longer in-game. Therefore I made it so that adult mob-position and percentage of health would persist when transforming to adults. So a 'pro tactic' would be to know what mobs could transform, and to leave those alive, but with a very small amount of health.

There were not necessarily more (difficult) adult mobs on the first floors (which you would encounter last), as I considered this a way to keep the end-game more interesting for a player who has basically completed the game; not as a way to get them killed per se. However, the 'minimum turns until can transform' timer was pretty high for (my equivalent of) the sewers, and that timer would get shorter the deeper the player went. Picking up the end-game item (the amulet in Shatterd) would subtract some value from all the mob-transform-timers on all the floors once (as if the player had taken n additional turns).

Mobs would not be able to spawn as adults, until the player had completed the game (collected the end-game item on the bottom-most floor).

This system worked quite well. To me (and to the extremely limited group of people that tested it) it was intuitive, and it filled the gap that we thought needed filling (without overdoing that). Walking back would not have any additional benefits per se: you would get an additional badge if you made it back up, and the run would be marked by a small icon on the rankings page. But, dying would mean a full on game-over (though you would still have gotten the badge 'collected that item', and the run would be marked by a (different) small icon on the rankings page to show that you did collect the item).

(The above is the good; I can definitely recommend considering something along those lines.)

After that, I wanted to build upon what we had by shifting a 'winning game' to only be reaching the top. A bird would be sitting at the very bottom, and the longer it took the player to get there, the older the bird would be. At the bottom, the player would have a choice: either use the bird to fly up, or walk back up as described above.

When using the bird to fly up, the player would get a vague description of how the bird was looking. It was basically a 1-5 scale, with percentages linked to each value (but the player would not see the exact percentage). Upon using the bird, a D100 would be rolled, and the player would either complete the game, or the player would land on a (semi-)random floor on a random location, with crippled and bleeding.

So basically the player had to way their chances of walking vs. flying.

At the time it sounded like a nice idea, but it turned out to feel unfair. It was also a bit shallow, and winning by flying would feel underwhelming (as the 'I've gotten down real fast' was quite an indirect cause for the easy win). It had been a decent amount of work to implement, but I think I'd have teared it out again before release.

Evan; sorry for the long story. I initially just wanted to write something like 'hey we did that!', but then I went into memory lane. And now that we're all here, I must take this opportunity to congratulate you on your Steam release. You've come a long way, and I'm rooting for the many additional long ways to come.

00-Evan commented 2 years ago

This is actually something I will likely do in a future update. I'm afraid I don't take game design suggestions (this place is more for feature requests), but I'm well aware that the ascent to the surface is almost trivially easy for most runs, and changing that would be a very easy way to inject more challenge for experienced players.

spixi commented 2 years ago

In similar roguelikes, like Nethack, the Amulet of Yendor attracts enemies like the Swarm Intelligence challenge. Maybe that would be a good addition to increase the difficulty. Another idea (somewhat similar to Nethack, but different) would be a special kind of Bandit which spawns on each level during ascent and tries to steal the Amulet (but cannot run away with it).

00-Evan commented 2 years ago

@spixi That actually already happens. Enemy spawn rate it doubled and they all aggro to the player. It's barely noticeable because the player is rushing for the exit and after floor 20 enemies start to get far too easy to kill.

The bandit is a neat point but I feel like it would be too frustrating. Getting the player to slow down at least a little is something I want to try though.