Originally, I planned to make heavy use of procedural generation in the game I am currently working on. The explorable game world was to be largely generated, connecting a few handcrafted landmarks.
However, at some point I asked myself a serious question: Is it actually worth it? What is the gain in relation to the effort of implementing all this? And this question made me realize what's actually important to me personally in a game.
I am someone who does not like playing games that are designed to be endless time sinks. Both as a player and as a developer, I want my time and that of my players to be treated with respect: We all have important things to do in our personal life, and the assumption that it is OK to design a skinner box that keeps the player in an endless loop of "replayable" game mechanics is contradictory to that. It is 100% fine for a game to not have a huge "replayability" in the form of dynamic content. Actually, I come to prefer games that are simply done after a couple hours (can be 3, 30 or even 300), present me with an amazing concluding sequence, and that I then can put aside with the best thoughts about it, as opposed to an endless grind fest that basically demands from me that I devote my entire life to the game.
Sure, procedural generation can be a great feature and certainly does not automatically mean that the game is designed with malicious intent, but when I think back, pretty much all the games that come to mind as my all-time-favorites are games with beautifully handcrafted worlds where the developers worked with great attention to detail and put something personal, like a little reference in a dialogue, some sort of easteregg, or an otherwise unique element that is not essential to the main progression of the game into every corner.
Building handcrafted game worlds obviously takes a lot of time and effort, but so does the development of an increasingly complex procedural generation algorithm that constantly surprises you with unwanted artifacts. The expenditure kind of evens out I'd say, but it very much depends on what kind of game you want to build.
In the end, I decided to completely drop my procedural generation code and replace it with a world editor that provides pixel-perfect control over placing all kinds of entities. It is implemented as a second window that I can open while the game runs, which then provides me with a set of tools that can modify the game world even during gameplay. Currently it looks like this:
And here I am placing some environmental entity (keep in mind that all graphical assets are placeholder programmer art). The red polygon is the collision body of that object.
The editor can do much more than that, and I am thinking about actually adding it to the release version of the game as to make it accessible to people who want to do modding. The neat thing about this builtin editor is that you can even move around and play the game while editing the world.
I also came to the decision that I want the game to be narrative driven, largely for the same reasons mentioned above, and I feel like a handcrafted game world is a much better fit for that.
Since the game features a dynamic day & night system where NPCs, monsters, weather patterns and other environmental things can change based on the game time, I feel confident that I already have more than enough potential for depth as well as replayability of identical areas.
What I want the final product to offer is an enjoyable experience that is relaxing at times and thrilling at other times, that does not require the player to keep on playing for extended periods of time, and that concludes with a satisfying ending end that leaves the player with a feeling of not having wasted any of their time.
But there totally will be unique collectibles that feed into game mechanics and require some bit of extra dedication from the player!