I just devised a new enemy scaling system for open-world games and I wish I had a way to test it that doesn't involve building a whole new game from scratch because I think it would work pretty well.
Essentially there are currently three approaches to enemy scaling which are, in order of appearance, no scaling at all, everything in the world scaled to you, and a newer one that's gaining traction, scaling within a range. The first is self explanatory and the second is pretty simple (if you're level 1 so is everything else, if you're level 5 so is everything else), but the third is slightly more complex. When using what I will refer to as 'range scaling' enemies in a particular area, whether it is something like a dungeon or a chunk of the overworld, will scale with you as in full scaling, however, they also have a hard minimum and maximum level, which I call the level floor and level ceiling. Let's say the level range on a cave is 20-30 and you stumble on it at level 3. The enemies inside will be level 20. They will also be level 20 if you enter at level 8, level 15, or level 20. At level 21 they will start to level with you, but they will not go above level 30. This means if you stumble across it at level 70 the enemies within will still be level 30 and far too easy. The result is that you're more likely to be at an appropriate level when you find it than if there was no scaling at all, and you don't find wolves that could tear apart that dragon that gave you trouble a few levels ago like in full scaling, but you can still enter at a wildly inappropriate level and find yourself one-shotted by the first enemy or one-shotting everything in your path, including the boss. It's better than the first two methods, but there's still room for improvement.
My idea is what I will call 'soft range scaling'. Where range scaling has hard floors and ceilings, soft range scaling has soft floors and ceilings. What I mean by this is that when your level is out of the target range the enemies still scale to you, but at a rate below 1:1.
Let's look at that cave again but change the hard range of 20-30 to a soft range of 20-30. Let's say the out-of-range scaling is 2:1, to keep the math simple. You enter the cave at level 1. If it was still a hard range you would find a horde of level 20 enemies and promptly die, but since it's a soft range they've been eased up a bit for you and are only level 10. Still too much for you, but not so ridiculous and maybe you can get to safety without dying and reloading if you're quick. You come back later and you're level 10, but the enemies inside have leveled with you and are now level 15. They're leveling slower so you're catching up, but they're still pretty challenging at this point. You come in at level 16 and the enemies are level 18. Now you're in business. These guys are tough, but you're close enough to their level that you can clear the cave with some skill and tenacity. Between levels 20 and 30 they pick up the pace and keep level with you. You're now in the Goldilocks zone where the enemies aren't too tough or too easy but are just right. But what happens if you find it at level 50? You would find level 40 enemies. These guys are stronger than they were when you were in the target range, but they haven't kept up with you and are relatively easy. That they're lagging behind only becomes more apparent as you continue to level, being only level 60 when you're level 90, but they get easier all the time while taking longer to become trivial than if they were being leveled within a hard range. By using soft floors and soft ceilings you make it so that dungeons and zones don't become obsolete so soon after the target level or range, but also don't too badly punish the player for going to areas they aren't expected to go yet, cutting down on the sense of being railroaded.
And that's soft range scaling. I think it has the potential to greatly improve the open-world experience, but I can't think of a good way to mod it into a game and I don't have the time to build a whole open-world game from scratch to prototype it. I just wanted to get it out there to see what people think.