How to innovate the First person shooter (FPS) genre?

Started by
76 comments, last by TeamToBeDetermined 3 months ago

JoeJ said:
I'm the same. Going farther, i do not even care about ‘playing a game’ that much. All i want is the other world. To give it some sense and a purpose, let's make a game out of it. But that's the secondary objective, not the first.

I fully agree. Books are not read because you want to read; you want to experience that other, more exciting world that is playing out inside the book. Computer games have a huge potential here that vastly surpasses books IMO. There are several key challenges, though:

  • Meaning of that world. Differerent genres have this problem in different ways.
    • Procedurally generated worlds of “replayable” games quickly detract from any single world's meaning, because they are all usually easily (i.e., without effort on the player side) replaceable and no world seems truly unique in a meaningful way, and even the part about having each world be a new territory to explore is kind of false, since I never saw procedural generation that made the world itself interesting and mysterious. In minecraft, no place in the map seems more meaningful than any other, despite maybe aesthetic appeal, and all you're doing is scouring it for resources, not actually exploring its mysteries. That said, I'm still a big proponent of procedural generation. Maybe the problem is that procedurally generated worlds usually come without any lore or personality, and they're too easy to explore and generate. The player is not forced to stick to any single world and can roll the dice until he gets what he “wants”, but that strongly devalues each individual world. I want the richness that approaches that of a novel's world, but with me being an active part of the story. Maybe dwarf fortress goes somewhere in that ballpark, I never got into it, though, so I don't know.
    • MMO games struggle to make the world meaningful to anyone, because usually, everyone either plays in his own copy of that world while not in an outpost, doing the exact same storyline, saving a world that thousands of others already saved, defeating enemies that have already been killed thousands of times. MMO game worlds often are inconsistent between players due to individual game progress. So while those games often have a world with lots of lore, even if often bland, the player subconsciously feels distanced from it because everyone else around him in that world experiences different points in its storyline currently. He knows that only he can see his own playthrough. It would be better for such games to be entirely singleplayer, if we only look at the immersion aspects. I still think that MMOs are important because we also want a sense of hanging out with other likeminded people and having fun together in that other world.
    • Sandbox games have the opposite problem: everyone lives in the same persistent world, but the entire focus of those games are player interactions with each other or with the world, not the world itself. A literal sandbox is great for little kids. But adults need more intellectual stimulation that a pile of boxed-in sand. All sandbox worlds I know of are virtually dead, because they only serve as a vehicle for the mechanics and gameplay loop.
  • Exploration of a world often feels meaningless.
    • If exploring itself is not difficult, i.e., if you're not bound to wherever you are by various constraints, then exploration is meaningless. Exploration needs a clearly known and unknown part of the world, because “venturing into the unknown” has no meaning if you never stay in one place and there is no “homeland” to come back to. All you're doing is wandering and looking at scenery at this point; passing through. Exploration and adventure are about facing risks and danger and going out of the comfort zone to experience new, interesting things. Accessibility kills mystery. Just like in science or engineering, it's actually really hard to explore new ideas, because it's hard to come up with new ideas. If everything was trivial, then exploring new ideas would simply be a matter of picking a direction and doing an exhaustive traversal of the idea space. No idea would be more special than any other. Similarly, in game worlds, no place is really more special than any other if exploration is easy. The steroids version of this is fast travel. Yes, it makes it more bearable, but the journey is an integral part of adventure.
    • Many games do not have interesting things to explore, as the world often serves as a vehicle for power progression and content for the game loop. Everything you find, you can immediately tell how it interacts with game mechanics, and that's the only reason it is there. You find some resource deposit, or maybe some thing that will unlock some ability, or a bandit outpost, a trading outpost, a dungeon, etc.. You can interact with those through the game loop, and once you did, the entire location loses its appeal. If exploring itself is not difficult, i.e., if you're not bound to wherever you are by various constraints, then exploration is meaningless. Exploration needs a clearly known and unknown part of the world. The scenery itself does not even register to the player besides maybe being nice to look at, because the player cannot do anything with it, and it does not feel real despite looking realistic. When I go climb up the small mountain where I live, and enter the mountain forest, it's exhausting to climb and I never know where a boar might pop up. The forest seems huge because it's hard to traverse, and because I don't want to stray off the trodden path too much, it always keeps its mystery. In a game, such a forest would offer no barriers, be easy to traverse, and offer you no sense of apprehension.
    • Often, game worlds are too filled with “points of interest” that these get very repetitive and ubiquitous. Exploration should probably be 99% survival and 1% exciting finds. You have to tweak those numbers depending on the case. If I find an abandoned castle, a hermit, a bandit lair, or a mine every 10 minutes, they each become a casual, forgettable thing. And those finds are usually completely isolated from everything else and more like a little self-contained sidegame. Exploration is not about finding a story vehicle. It's about finding an opportunity to make story yourself.
  • Most worlds are dead.
    • Most games do not make you interact with the land. In the real world, you have to raise cattle and crops, build houses, find resources for industry. Real life is really harsh, but that's what gives a lot of meaning to good lands. People fought to the death over the chance to live in a region that has good soil and enough water. They want a good source of wood and other construction materials. They want iron ore so they can have nice tools. In a game world, none of these considerations really exist, besides in strategy games. In games, there are no people trying to settle in a good piece of land, or struggling with bad soil. In game worlds, people have no struggle to survive besides facing monsters.
    • Most games have no actual problems in their game world. People don't hate each other, lands aren't ravaged by war, economies don't crumble, there are no droughts and famines, people don't get sick, and have no culture, identity, or opinions, fears, or struggles. Even wars don't really kill people there. You just become part of one big battle and that's it. Maybe the flags change and the king gets replaced. You don't need utra-realism where you need to pee, and you don't need fully realistic personalities for NPCs or AI generated dialogues. All you need is a game where events affect people and environments, and people depend on their surroundings, and on each other. The player just needs convincing enough cues that lets him keep his suspension of disbelief / his immersion that this is in fact a real world, not a realistic world. Realness is not realism.

Coming this far, I think that what I'm looking for is not even a specific game genre. Or maybe it's an entirely new genre. An actual adventure world game (not to be confused with an adventure game, because I would not consider a linear story game to fit this genre). The mechanics should enhance the fun of the world, giving it an interesting twist. It doesn't matter whether I adventure through that world in first person and a gun, or third person and a sword and wand. Because if I just want a specific type of combat game, I can just play whatever is out there already. There is lots of variation of settings for each set of mechanics / game loop. But there rarely is a world that feels alive, meaningful, mysterious, captivating.

I think the ideal adventure world game is an MMO, with a procedurally generated world, and where you as a player are not central to the world. You are just someone trying to get by, having his own adventure. And the game should not be about individual high scores, but about progressing together.

For example imagine an MMORPG without cities, and you have to base-build your own outposts and towns together, let the NPCs settle in and defend your outpost. And NPCs don't just transmute gold that fell out of a boar's stomach into items, but depend on resources in the surroundings to craft things. And as the outpost grows, better crafting techniques or better gear becomes available. And if high-level craftsman NPCs die, the entire economy may regress and lose access to a certain technology (such as gunsmithing). Basically a civilisation game but bottom-up instead of top-down, with emergent civilisation building. Perma-death can help intensify the meaning of the world and the social experience, as the player character itself loses all relevance on death, and you need to start with a new character. But you don't start from scratch, because the progress of the game is measured by collective progress: establishing and sophistication of a town/city, tapped resources, craftsmanship/technology research expertise, collective economic and combat prowess. Only when everyone dies and your city is burned down, you really start over from scratch.

Such a game of course needs a lot more sophistication in its design that that short description, but you hopefully get the idea. A game that is about its world, and if multiplayer, about cooperation. I think that this is also the required basis for role playing. You can also make similar single-player games and in various settings, such as fallout-style scenarios, medieval scenarios, fantasy, or even sci-fi colonisation games, whether first-person or third-person.

JoeJ said:
I wonder if this is a kind of typical programmer mentality, and game designers might actually hate this way of thinking. : )

I think this is the dream that was sold to us in MMORPGs. But no game ever delivered on that promise. You can see evidence of that implicit promise in all those “Player gets sucked into MMORPG world” type stories out there. People want to interact with a real (not realistic) world, and maybe this craving is because our actual lives are basically fake. Almost nobody has a job that is essential for anything, your performance at your job doesn't really affect anybody, because the fight for survival has been solved by the massive farming industry, you live your life in your office and in your apartment, you don't own and cultivate land, if you live in a city, you don't know your neighbours, etc. And most gamer and especially programmer types probably don't have a family, either.

Another world offers you what you know you need to stay sane but cannot have in this world. It's a vehicle for friendship (if MMO), for relaxing and taking a break from a tormenting life, and to recover.

krumpet291 said:
If it's an overly broad use of the term “FPS” to include games like those mentioned above, then this is fine. We can call those games something else. As for how to innovate an FPS, then I guess the question to OP would be whether moving beyond the bounds of “FPS” is something they had in mind, or whether they want innovate while still sticking to the definitions of what an FPS is.

I would call pure FPSs like Doom action shooters or action FPS. Because it's all about the action of the combat, which happens by shooting. I would not call the broader range of FPSs action shooters. But I don't think naming a genre after its core gameplay loop is that great, because it will trick others into only seeing the mechanical side of the game. Although I guess it is fitting for games like doom, because they actually are only about their mechanics.

Wow, this post took me well over an hour to write. The game I pitched above is actually something I've been pondering on for 2 years now. But I had not fully realised the importance of the game world until today, the whole thing was initially an attempt to make MMORPGs feel more satisfying (by giving the player more freedom, such as customisable ability parameters (such as charge up time of a spell, rate of fire vs. damage vs. range vs. cost, etc.), or even modular ability creation, a more sophisticated stats system that is really expressive as opposed to STR-INT-AGI), then it morphed into trying to fix MMORPGs and give them back the social aspect and make them less about yourself. I started that design mechanics-first, and then about the player experience, but now I can see that the vision was missing its world-first focus. Back to the drawing board. All the earlier ideas I had are probably fully compatible with all the new focus, though.

Walk with God.

Advertisement

Wow, What a journey.

I did not expect such a lively discussion.

Innovation is pushing the boundaries no matter which ones they end up being.

Our company homepage:

https://honorgames.co/

My New Book!:

https://booklocker.com/books/13011.html

RmbRT said:
I never saw procedural generation that made the world itself interesting and mysterious. In minecraft, no place in the map seems more meaningful than any other,

Minecraft worlds actually can become interesting and mysterious.
I was playing it with my son, he was still a kid when it came out.
Initially the world is the usual procedural boredom.
But then you realize you con not just explore the surface. You can dig caves, and you may find caves which already exist down below. In those caves you find kind of zombie guys, and their stuff left behind. We found crates and paper, probably used by the zombies for something. For what did they use it? Idk, but by raising questions, there is already some mystery and lore. It's not a deep story, but you feel it is not created by human devs. It is something that already exists, maybe since thousands of years. It spurs imagination and actually beats any experience i've had with RPG games. (I'm a bad RPG player and do not understand the genre at all, though.)

That's what you get, but it is just the start.
We started building stuff. Houses, Eiffel Tower, Spaceship, etc.
And we moved from place to place, connecting them with a network of caves so we can find our old works again.
This added our own lore to the world. And it felt mysterious to track back to an abandoned building cite after some longer time. It brings back memories of the fun we've had there, and reminds us we had not figured out this or that back then.

I still remember our world and think about it some times.
Minecraft is not really a game, it's just a sandbox. But unlike any other game, it makes the players creativity the main mechanic.
And it's also the living proof that ‘just build a rich simulation and all the rest will emerge from that’ can actually work.

Unfortunately it's hard to draw inspiration and learn the lesson. In Minecraft the whole world can be changed. Nothing is static or precomputed, nothing is planned ahead or follows some design. Achieving this for a game which shows some detail is very hard technically.

RmbRT said:
Maybe the problem is that procedurally generated worlds usually come without any lore or personality, and they're too easy to explore and generate.

I think the problem comes from the traditional way we do procedural generation.
The best example is some noise or Voronoi cells texture. We generate random samples in a grid, associate them to nearby samples, get the image with the properties we wanted.
We may now blend multiple such images, eventually coming up with fancy methods of blending.
We may use it as a height map, giving us some terrain already, giving us a world.

But ofc. it is boring and has no meaning.
There is something missing: In nature, everything we see is a result of an actual process, where samples not just associate to neighbors, but interact and affect each other. What we see is the current sate of many such processes, generating complexity, giving it a meaning and making it believable and interesting.

Thus my conclusion is quite simple: Replace randomness with simulation. It's the only way to make procedural generation work.

Wave collapse function is nice and useful, but it's not enough. Even if we define interesting rules on how to arrange modules in a meaningful way, the result beyond this single interesting frequency band is still boring, because all the other frequencies are empty. We realize this after we have visited 20 rooms of our modular procedural world. Even if we do not detect patterns or given rules, we still notice that we have already seen everything there is to expect. What's ahead of us is just a variation of the current environment, so there is no point to explore and it becomes boring.

Which is my second conclusion: We must generate all frequencies, not just a single one.
And at this point procedural generation is the only option at all. We can not do this manually, because all our methods to generate content or art are restricted to a single intended frequency, or ‘scale’ if you prefer that.

So yes, procedural content is boring. We all know that.
But that's not the death sentence to the idea. It just means we still have to work on figuring out how to make it work.

RmbRT said:
MMO game worlds often are inconsistent between players due to individual game progress.

That's some interesting problems you mention. I have never played a MMO so i don't know what you mean, though. : )

RmbRT said:
a bandit outpost, a trading outpost, a dungeon, etc.. You can interact with those through the game loop, and once you did, the entire location loses its appeal.

That's not necessarily a bad thing i think, because it can give you sense of progress.
If you find an outpost, and kill everybody and grab all loot, it's done. But for good.
There is no reason to come back, because it's done for good.

Contrary, if we take some dream game, big and with a whole society, which keeps changing over time by itself,
then the actions of the player will have little and only temporal impact, like in the real world.
The player realizes his actions are quite pointless. He kills everybody at the outpost. After some time he comes back, only to see there are other enemies again. Maybe from another faction this time, which is interesting, but it's a enemy faction, so he kills them all again. Later he comes back, and this time the place is populated with some friendly faction. Great. A sense of progress.
But not really, because the player thinks: If i would not play the game at all, and instead just watch it changing from itself, the outcome would be the same or a random variation of it.

This does not happen if the outpost remains empty and is just done after we cleaned it up only once.
It also increases the value of the experience while doing so, because you can do it only once.

I do not really have an opinion here, but just saying.
However, to me it seems the RPG genre just tries to put things too far in general. It suffers from it's own ambitions.

RmbRT said:
The forest seems huge because it's hard to traverse, and because I don't want to stray off the trodden path too much, it always keeps its mystery. In a game, such a forest would offer no barriers, be easy to traverse, and offer you no sense of apprehension.

Well said. And i think many games get this right. They use it also to provide sense of progress. As the player becomes more powerful, he may be able to fully clear up and explore the difficult forest. But that's not a bad thing. It's just the way from the start to the final ending of the game. Mysteries may vanish, but ideally the persist in the memory of the player. If we can get there, we did it right.
Games are not reality simulators meant to run forever. At least not yet.

RmbRT said:
In games, there are no people trying to settle in a good piece of land, or struggling with bad soil. In game worlds, people have no struggle to survive besides facing monsters.

Yeah, because it's difficult to show such long termed connections in a game. It would require a lot of attention from the player as well, conflicting with the other goal to provide instant fun in a short playing session. Maybe the player can come back only after a week due to life. And after a week he might have forgotten all the subtle clues of complexity needed to build up the impression you aim for.
It surely can be done, but it's not a low hanging fruit. Risk of failure is very high.

RmbRT said:
Most games have no actual problems in their game world. People don't hate each other, lands aren't ravaged by war, economies don't crumble, there are no droughts and famines, people don't get sick, and have no culture, identity, or opinions, fears, or struggles.

It's just some bits and bytes, you know? :D

To get what you want, there are two options:

Do all that, but in a linear fashion, so you can design story and sense precisely. It works.

Do all that, but inside a society simulation framework. Everything emerges from the simulation. Probably Dwarf Fortress is an example. It might somewhat work, but i will not put the attention in to notice that. Instead i will criticize the controls are sluggish, or the lighting looks flat, or enemies are dumb in combat. Because you did not have enough time to care about those as well.

Choose wisely. Personally i don't see any benefit from branching stories, for example. A branching story will be always worse than a linear story. And i do not need the impression to be able to affect the story. If i play the linear narrative FPS, the story is always the same with each playthrough. But my heroic action is still needed to make it happen. If i fail, the story does not continue. So i feel like the hero no matter what. It is still my story, although it's linear.

But maybe that's where my failure to understand RPG begins. I do not want to play a role i can choose myself. I'm fine with whatever static role the linear game enforces on me. Hero? fine. Anti hero? fine. A fish? fine. A girl? fine.

Maybe RPG players want to define their own role, who they are, and what they can do?
Probably. It's obvious, But it did not realize this til yet. So it was worth to derive from the topic a bit. : )

RmbRT said:
You don't need utra-realism where you need to pee, and you don't need fully realistic personalities for NPCs or AI generated dialogues. All you need is a game where events affect people and environments, and people depend on their surroundings, and on each other.

Agree on that, though. I have the same vision. There should be a way to build up noticeable and interactive cause and effect on a larger scale, beyond short termed moment to moment gameplay.
I think of Populous, which did all this successfully decades ago. Or any RTS.
And maybe many modern RPGs do it as well. I just don't notice it.

RmbRT said:
(not to be confused with an adventure game, because I would not consider a linear story game to fit this genre)

Look at it this way:
You have a linear background story. Something like Dune maybe, with politics going on, explaining why there is a war, and why enemies are actual enemies, not just targets.

It's predefined, so you can not ignite a war, or affect who fights whom. So you can not affect things at a very large scale.

Does this stop you from implementing your ideas on a smaller scale? No.

Does it increase your chances you can actually complete the game as a single person or with a small team? Yes.

Taming ambitions is a critical and essential skill needed to make games. Minimize, reduce, and recurse. It's the only way ; )

RmbRT said:
Coming this far, I think that what I'm looking for is not even a specific game genre. Or maybe it's an entirely new genre. An actual adventure world game

I think what you look for is the same thing we all look for. Basically you want to merge ALL genres, because all of your goals have been achieved already, just scattered across many games, and there is no single game which has all of it. That's what the industry is trying to do since the start. And there was, is, and will be progress. But since the progress is incremental, it's not noticed as innovation. It's the contrary: There is an expectation on this progress to be granted.

RmbRT said:
The mechanics should enhance the fun of the world, giving it an interesting twist.

What does that even mean? Sounds like Todd Howard coming up with new marketing phrases, while telling nothing specific, no?

And that's the problem. It's easy to see what's missing from current games. But it's hard to come up with a specific solution. First we need to define an actual problem, so we can solve it. But attempting to come up with such definition, the hard truth already shows: We have no idea. We want more depth, more meaning, more impact of player actions. And while dreaming, we scale up, thinking about larger worlds, societies instead single enemies, or at least factions, etc. But the more we scale up, the smaller the player feels, and the lesser our long termed / large scaled causes and effects feel observable and controllable.

The curse of the reality template. : )

RmbRT said:
And the game should not be about individual high scores, but about progressing together.

Yeah, the problem is: If every player has total freedom, how can we motivate them to work together? They won't do this on their own. They'll rather fight each other, yelling at each other with microphones.

If you can solve this, maybe you should become a politican, not a game dev. : )

RmbRT said:
And NPCs don't just transmute gold that fell out of a boar's stomach into items, but depend on resources in the surroundings to craft things.

I think that's promising. Instead printing money out of nothing there should a finite amount of resources. It's like preserving energy, which is needed to simulate something like an emerging eco system. RTS or management sims do it. For some ‘player is avatar’ centric action game, we need to solve two problems: 1. Make the system and its properties observable to the player, 2. Achieve a short response time, so the effect and benefit becomes observable.

Basically we need to create a non realistic setting and background, where eco systems are designed in a way they benefit action game play. Farming or crafting is usually implemented as abstract systems, and personally i mostly perceive this as complexity bloat, not really adding something to the core game play loop. Making those systems preserving some energy won't change this. The solution must be something else.

This brings us back to the primary question if we want to extend FPS or action games in general: What can we do in the game beside (or instead) fighting?
Farming or crafting just isn't fun enough. It remains a bolt on attempt to add more depth, but it fails to add true new mechanics.
And you can not address this with adding even more such extensions, like RPGs do.
In RPGs, players can use those abstract properties to work on a long termed optimization problem, e.g. making the perfect character build. They make it observable and controllable with various GUI pages. You could do the same to visualize a large scaled economical or social simulation.

But i guess that's not what you want? You don't want such mini games, detached from the actual world the player sees and interacts with?

At least i don't. And this changes the practical scale of any observable in game simulation.
It's something like a 50m radius around the player, and the time between cause and effect is something like a minute.
That's what you need to get right first. And if that works, you can start considering scaling some things up, eventually.

In other words, i propose a bottom up approach of game design. Your's goes top down. You have a vague vision of an overall goal, but the more you think towards the actual implementation at the bottom level, the less actual answers your design document gives you. I think it's better to do it the other way around, starting with the implementation of moment to moment gameplay in a prototype. The outcome will always change your mind anyway, eventually diverging from an initial vision. If you go bottom up, you never waste time on designing stuff which does not make it into the game.

So, what would i do, if the goal is to include some larger scaled simulation?
Well, talking about action games, i think of conveyor belts, moving platforms, and all this dynamic stuff which already existed in the 8 bit era. This can create some complex system eventually (e.g. Factorio / Minecraft), but is mostly used for simple systems (an elevator). It can affect tactics - supply lines, moving covers, etc. It can be used to implement exploration, like reaching a higher platform with the elevator. It's useful, so likely worth the time to experiment with increased complexity. It's possible to let the player interact with such systems, and observing cause and effect in real time.

Now there is no society, no visible change of quality of life across NPCs. No meaning.
To get a bit of that, i would work with animals or monsters first eventually.
Because i can design them as i wish. It can be robots which interact with my machines, it can be poki poms which react to feeding them, it can be predators which follow some bait i have prepared for them. It can be a family of animals staying grouped, avoiding rivals of the same species otherwise.
I can do what's need to make it fun.
With humans, that's much harder. It's decided how they look like, what's their expected behavior… it's not very flexible.

So i have life now, and a interactive world for them, but still no society and change of life?
I will be dead and buried at the time when i get at this, but… is there a way?
I'm not sure. Because in real life, i observe society and economy only because i spend my whole lifetime in this reality. It's very very long termed observations.

If you do that in a game, it might feel like watching evolution changing life. You don't notice the change, because you are not in the game as much as we tend to imagine. So maybe there is no point to simulate related changes.
Ofc. you can make a system like: Help poor thin guys wearing only pants, and thanks to your help they are now fat and wear heavy armor. That's cool, do it.
But it does no change my primary experience while playing the game, which is still just looking around, moving, and shooting moving targets. There is no innovation on those basic, simple concepts. Providing more context and deeper sense on top of that is just the usual, expected progress of video games. It will happen without your help no matter what.
So personally i'll stick at conveyor belts and animal behavior, hoping something interesting just emerges from the simulation. If so, i'll come up with backstory explaining those mechanics. There may be a form of economy, there may be not, but i can't tell how it might eventually look like. And needing to work on the bottom level anyway, i'll never need to know in advance. It will emerge and take some form when it's time, or it may not emerge since there is no need for it at this point.

You know, all that game design is fun, but actually optional. If you work alone, you don't need it at all. And since that's the only advantage from working alone, i rather try to take it.

RmbRT said:
you don't own and cultivate land

Well, i'm a country boy too. And i have successfully ruined my back with cultivating my land.

I don't think our lives are fake. But we can see that we are nothing special, with all the others nearby having similar lives.
Caesar knew what to do: Give them bread and games.
So our job is to provide distraction. And i claim we do it proper, and Facebook does it wrong. : )

Can a post be that long??? I better leave it at this point. /:O\

Haha, I'll try to keep it short and only address the most important bits.

JoeJ said:
I'm a bad RPG player and do not understand the genre at all, though.

To me, role playing games are about me being myself within the contraints of the game world and playing out an arbitrary fantasy of who I could be in that setting. If it's an MMORPG type thing, I choose my favourite from a handful of archetypes/classes it offers, then build it in a way that seems most fun to me. The character is my avatar with my agenda. Normal story games are about experiencing the story through the main character's eyes, not about being yourself, the player. RPG games need to support player freedom of expression, story games do not really require it. The RPG genre mostly devolves into a fantasy combat simulator with the only freedom being the way you spend skill points, though.

JoeJ said:
This added our own lore to the world. And it felt mysterious to track back to an abandoned building cite after some longer time. It brings back memories of the fun we've had there, and reminds us we had not figured out this or that back then.

I do not want to force the player to come up with the lore around the game's world or mechanics.

JoeJ said:
And it's also the living proof that ‘just build a rich simulation and all the rest will emerge from that’ can actually work.

Well, minecraft was not rich enough for me. I found a plot of land that wasn't ugly, built a farm, dug up a mine, found some higher tier loot. I play minecraft with permadeath/hardcore mode, because otherwise, there is no real danger, just the inconvenience of items dropping on death and you having to have remembered the path you took to geth there. You can even carry a few beds around and place them near you in regular intervals and that penalty becomes very small. I don't want to give the player tools that make it easy to kill the thrill of the game (dangerous dungeon exploration, sheltering to survive the night).

JoeJ said:
Achieving this for a game which shows some detail is very hard technically.

JoeJ said:
In other words, i propose a bottom up approach of game design. Your's goes top down. You have a vague vision of an overall goal, but the more you think towards the actual implementation at the bottom level, the less actual answers your design document gives you. I think it's better to do it the other way around, starting with the implementation of moment to moment gameplay in a prototype. The outcome will always change your mind anyway, eventually diverging from an initial vision. If you go bottom up, you never waste time on designing stuff which does not make it into the game.

I think it requires a lot of insight into the essence of what you're trying to generate. It's not just having random mountains and valleys and rivers that look somewhat plausible. You need a deep understanding of the interconnectedness and inner workings of many aspects of the game world's life. You need to understand how farming (soil properties, seeds, watering, maybe protecting the fields against monsters/animals that will eat it all up) and crafting works (resource acquisition, technique progression, tool creation), etc.. You need a deep understanding, and then strip away the parts that are making the game too realistic and frustrating. But everything has to fit together as if it was real. If you kill all predators, maybe prey animals will go unchecked and eat up your food. Animals actually often live in families and are hanging out within each other's reach, and call for help or signal danger to each other. I can't remember having seen any game which gave attention to the details of monsters and animals. Loud noises like an explosion spell would probably scare off lots of prey-type animals, but could lure some hungry apex predator who owns that territory maybe.

All these things should at least be peripherally understood by the developer, and he can then throw out everything that is too detailed to express or interact with, or which makes the game too tedious or overwhelms the player. I start with some disjoint core behaviours or experiences I want to express, and then find mechanical rules for each one, and iterate on the set of all mechanics until all the different systems/experiences I crafted fit together and form a coherent whole. A world with disjointed mechanics breaks immersion. I do not know from the beginning what the exact end behaviour and interplay of all the mechanics is, and I do not aim for any specific pre-conceived overall outcome. I just need to consider all levels of interactions and interplay of mechanics during their design already, to rule out stuff that conflicts with each other.

JoeJ said:
The best example is some noise or Voronoi cells texture. We generate random samples in a grid, associate them to nearby samples, get the image with the properties we wanted. We may now blend multiple such images, eventually coming up with fancy methods of blending. We may use it as a height map, giving us some terrain already, giving us a world. But ofc. it is boring and has no meaning. There is something missing: In nature, everything we see is a result of an actual process, where samples not just associate to neighbors, but interact and affect each other. What we see is the current sate of many such processes, generating complexity, giving it a meaning and making it believable and interesting. Thus my conclusion is quite simple: Replace randomness with simulation. It's the only way to make procedural generation work.

JoeJ said:
Which is my second conclusion: We must generate all frequencies, not just a single one. And at this point procedural generation is the only option at all. We can not do this manually, because all our methods to generate content or art are restricted to a single intended frequency, or ‘scale’ if you prefer that. So yes, procedural content is boring. We all know that. But that's not the death sentence to the idea. It just means we still have to work on figuring out how to make it work.

Simulation is almost impossible on large worlds, except if you introduce artificial boundaries across which there are no dependencies within the simulation, otherwise you would need to generate all terrain at once. So you need some kind of deterministic but position-independent generation technique. I think this is where deep understanding is required. You need to have enough understanding of everything you generate, and how it affects systems/mechanics, etc., identify all the relevant core parameters, and then generate sensible patterns of those in a way that even across voronoi cells, larger meaningful patterns occur.

For example if each voronoi cell was a mountain or a valley, then it would be boring because all mountains and valleys are roughly the same size and distance to each other. But if you had another layer of noise that decided whether to adjacent cells' mountain peaks are connected, you suddenly have mountain ranges of different shapes, you have winding valleys between mountain ranges, you have some single valleys and single mountains, etc. You basically need a way to create emergent patterns of meaningful structures that are larger than your largest unit of generation. Not just for shape of terrain, but also aspects of the terrain, such as what kind of wildlife lives where, the soil, etc. All systems that decide a noise value to some kind of cell need to have that kind of interplay on multiple levels (or at least one level) beyond their actual cell size, but not by simply generating larger cells, but by also generating relationships between cells that then affect their look or behaviour. This is also where wave function collapse fails: it simply creates a minimum viable pattern, but there is no such thing as higher semantic constraints on the output. In that sense, it is just a single step up from fully locally isolated noise-based generation, and at the cost of having to generate everything outwards from a single point (if you want it reproducible).

Another important aspect for generation is that you do not simply generate a height map from multi-layered noise like perlin. You need to generate the intent for each cell, and then form a cell based on that intent, so that you get a coherent and meaningful pattern within each cell. Similar to biomes.

It is impossible to generate all frequencies, but it is quite possible to hint at frequencies beyond the largest building blocks of the world by generating the interrelationships between neighbouring cells at the largest magnitude. But this probably also affects everything at the smaller magnitudes, too. You do get more freedom to use expensive tools for filling in smaller-scale cells of the world, though, because they're locally constrained.

Another key trick is making exploration hard, which prevents the player from seeing such huge quantities of terrain that everything feels repetitive. And you can have multiple preset flavours for the generator of each cell type, and select individual and macroscopic flavour gradients, so that even mountains and valleys themselves are visually and mechanically distinct from each other, to the point of affecting gameplay. You could have rocky mountains, herb forest mountains, volcano mountains, grassy plain mountains, etc.

I think the way forward in world generation is having as much emergent behaviour as possible beyond the largest unit of noise sampling, in effect requiring something like a perlin noise version of wave collapse to create emergent semantical patterns, not actual optical patterns.

JoeJ said:
And that's the problem. It's easy to see what's missing from current games. But it's hard to come up with a specific solution. First we need to define an actual problem, so we can solve it. But attempting to come up with such definition, the hard truth already shows: We have no idea.

It's a vague and therefore hard problem. You cannot define it, because the shape of the problem varies largely between scenarios. You can only solve this kind of problem by having an epiphany, and that probably won't even apply in other games.

JoeJ said:
Now there is no society, no visible change of quality of life across NPCs. No meaning. To get a bit of that, i would work with animals or monsters first eventually. […] With humans, that's much harder. It's decided how they look like, what's their expected behavior… it's not very flexible. So i have life now, and a interactive world for them, but still no society and change of life? […] is there a way? I'm not sure. Because in real life, i observe society and economy only because i spend my whole lifetime in this reality. It's very very long termed observations. […] You don't notice the change, because you are not in the game as much as we tend to imagine. So maybe there is no point to simulate related changes. […] But it does not change my primary experience while playing the game, which is still just looking around, moving, and shooting moving targets.

I think that's a fair point. Animals are simple to make way better than games are currently doing. Society could probably be simulated somewhat close to a simple neural network, or a set of slowly mutating parameters that subtly govern the behaviour of all NPCs in that region or that belong to that society/culture. You could have a multi-levelled hierarchy of such “collective psyches”. Actions in the small scale must affect the large scale, also. Like if you go around killing lots of people, they start to become really paranoid and on guard, and even hostile to people they don't know. You can even make the player form a relationship/reputation for different collective psyches at different levels. Such as being the hero of a certain region or tribe or faction. Or being their mortal enemy, and having a bounty on your head. Or you can have racism where certain tribes hate you if you are part of another tribe that they have a bad relationship with. The more subtle such systems are, the greater the player's experience is, because it will seem less mechanical. The player wants to have certainty of very local cause and effect, but the large-scale cause and effect should remain partially obscured. You can simulate large portions of the world at a very low granularity using that kind of system. And then changes to the well-being of society at a higher level can be retroactively applied to lower levels to come up with a very specific cause for it after the effect has already been decided. So only when you actually start to explore that region, the details of local events have to be filled in retroactively to fit their pre-decided large-scale effects. So that way you can hear of a civil war in faraway lands, and only when you get there or pry into it, it can then make up some reason for that and have the NPCs somehow act based on that concrete reason. Of course, the number of scenarios would mostly be hand-curated, and maybe modular, but reverse causality generation is probably another huge area of study to get into if you want sophistication.

I think your conclusion is not strictly valid, because I think if you have a world that actively reacts to your actions, and you can interact with it beyond destroying or killing, then you will definitely have motivation to achieve specific changes in the world, even if small-scale. It's just a matter of the world's ability to remember and react to your actions. If it does that poorly, then you feel nothing and wiping out entire towns to get all the loot may seem viable. But if suddenly everything swarms with bounty hunters and knights, the act of wiping out that town and becoming a fugitive is a really exciting part of your adventure. Or if a war sparks because of that, because they didn't know who did it. The economy around that area could crumble because of general fear. This is not that hard to implement with a multi-layered large-scale psychology model, even if you use something very simplistic. Combine psychology with a vague “event log” that the collective psyche has access to, and you can have real-seeming responses of society to events. You can also have wildlife populations react to large scale hunting, or to changes in season/terrain fertility, etc.

You can get some baseline of quality in those emergent systems even with fairly simple rules and a low number of variables, if effects properly propagate through the system and cause some kind of butterfly effect or feedback loops. And each individual NPC does not have to be complex for that to work, because the outcome (like paranoia, hatred, or a region turning poor/depressed) can be decided at the macroscopic level inside the simulated collective psyche. The macroscopic script can be decided to be some pre-curated reaction, and each NPC just has to play out his unique twist on the macroscopic decision that has already been made.

JoeJ said:
You know, all that game design is fun, but actually optional. If you work alone, you don't need it at all. And since that's the only advantage from working alone, i rather try to take it.

Yes, it is optional. But I disagree that the only advantage of working alone is that you don't need it. I find the biggest advantage of being the sole author that you do not have to find a consensus, don't have to make concessions to others, so you have one 100% hand-tailored game that follows a fully coherent design. In opposition to that, design by committee is always mediocre, or at least never perfect, because it contains concessions, different clashing styles and directions, and lacks focus. Ambitious designs are actually way easier to make solo, because the entire process is way more efficient alone, and you have 0 communication overhead. The only limiting factor is your ability to keep everything in your head at once. And I argue that only solo will you be able to create something fully holistic. If you put in the effort. Teams will never be able to do it even if they put in huge efforts. Solo design has the potential to be a high precision laser, while commitees will always build a lantern, simply because of division of intellectual labour and making independent design decisions to different aspects of the project, and having no centralised intent and judgement. It's Conway's law.

JoeJ said:
Well, i'm a country boy too. And i have successfully ruined my back with cultivating my land.

Sorry to hear that.

See, I tried to reply to only a few things! But I still wrote so much. I tried to write only regarding things I had a strong opinion on.

Walk with God.

RmbRT said:
I think it requires a lot of insight into the essence of what you're trying to generate. It's not just having random mountains and valleys and rivers that look somewhat plausible. You need a deep understanding of the interconnectedness and inner workings of many aspects of the game world's life.

Ideally, yes. But this means you need to build up a simulation of life first. And only then you can build up deep insights.
Currently you assume you can just look at the real world for insights, and you modulate this observation to design some game world in your mind.
But your simulation will be its own thing, similar but different to reality. Not knowing about this difference yet, it's not yet possible to tell what it can do and what not.
This also includes potentially good news. You may discover emergent behavior from the simulation you did not expect. I would even say that's the norm, not some rare appearance of luck.
But your current design goals do not include those unexpected and unknown goodies. Once you detect them, you may throw your design document over board and focus on something slightly different.
And because this happens all the way up from bottom to top, what you get at the to is actually unknown, if you aim for the optimal output.

So i don't disagree with your goals - i share them, and i'll try to work towards those goals. But there is no guarantee to get there, for some good and lots of bad reasons. So don't insist on those goals, which at this point are just to weakly defined anyway.

The situation is different for some AAA company: They know what their tech can do. They can insist on design goals, because they already made a similar game before, so they know which goals are practical.

But you currently work on homebrew HW and your own programming language. Likely you don't have a game engine yet, so you don't know what you can expect from it. And it's the same for me, just working on other things but no game yet. Neither of us is in the position to plan something like a big MMO / RPG kind of game. We might never get there, and if we are too ambitious, we surely wont.

RmbRT said:
I do not want to force the player to come up with the lore around the game's world or mechanics.

Not directly that. But there should be some room for the players imagination.
I do not want to control the players mind. I want to give it some imaginary space so it can travel and explore with maximized freedom.
I do like open ended movies for example. It's good if it sticks to your mind even after it's already over, keeping you busy to make sense out of it.

RmbRT said:
But everything has to fit together as if it was real. If you kill all predators, maybe prey animals will go unchecked and eat up your food. Animals actually often live in families and are hanging out within each other's reach, and call for help or signal danger to each other. I can't remember having seen any game which gave attention to the details of monsters and animals.

Agree. But simulating all this is a lot of work. Keeping some control over difficulty and just the overall experience to the player within such rich simulation is difficult. It's also a performance problem likely.

To construct a potential problem, let's assume we have such rich animals behavior. They are smart enough to run away when they hear some explosion, which does not sound that difficult to do.
So we work that out, and to make it an actually noticeable contribution to the player, we need many animals. To increase the chance of encounters.
Then the explosion happens. Do we need some ray tracing to detect which animals can hear or see the explosion? That's some cost. After that, a crowd of animals need coordination. If one is in panic and runs, the others need to detect this, so they run with it keeping the crowd intact. Again costs on sensing and modeling flock behavior.
While the animals are all running, they need to detect and resolve collisions with the world. Depending on detail, that's likely very high costs.

That's the typical worst case: Performance goes down while we need it the most.
And eventually we are forced to tone down the feature, reducing animal density, so eventually it becomes rarely noticeable. Our cost / benefit ratio is bad. We have send a lot of work on a system which has little impact on gameplay.
Eventually we need to drop the feature entirely, falling back to dumb AI, but achieving a better experience without it in the end.

That's what i mean. It's quite pointless to plan or dream about features we have not yet implemented. It's just brainstorming, and building up some vision, but not more at this point.
This is also the biggest and most common mistake of beginner game devs: They think about games much to big they could complete them as a single person. You can not start from watching AAA games made by hundrets, observe what's missing, and then plan to add it. It can't work, because they have put more work hours into this game than your entire lifetime. So you never get to this point, and thus you never get at improving this state of the art from there.

Idk what's your goals regarding visuals and content. If Minecraft looks good enough to you, your intent is realistic. If it's Titan Quest, maybe. If it's GTA, no way. If it's top down 2D, wise choice! : )
But in any case: Start small. Focus on one thing and try to get the most out of that, instead trying to simulate everything just because the real world has it too.

RmbRT said:
All these things should at least be peripherally understood by the developer, and he can then throw out everything that is too detailed to express or interact with, or which makes the game too tedious or overwhelms the player.

Sounds like ‘Implement a full simulation of the visible universe first, and then delete everything which is not needed.’
That's inefficiency cranked up to 12. You don't want to develop stuff which then is not needed, of coarse ; )

RmbRT said:
Simulation is almost impossible on large worlds, except if you introduce artificial boundaries across which there are no dependencies within the simulation, otherwise you would need to generate all terrain at once.

I work on large scale terrain generation. It's a side quest to illustrate my tools needed for realtime GI can be useful for content generation as well.

To solve the size problem, the typical approach is to do it hierarchically. You simulate some initial terrain, e.g. a 1024^2 hightmap. Then you scale it up to 2048 but divide into tiles with some overlap for blending, so maybe 4 x 1200^2. Then you run the simulation on the upscaled terrain tiles

RmbRT said:
For example if each voronoi cell was a mountain or a valley, then it would be boring because all mountains and valleys are roughly the same size and distance to each other. But if you had another layer of noise

to add detail and recurse until you reach the desired resolution.

The tiling imposes some limitations, e.g. it's hard to produce some world wide river network. This may require some hack, but for most things such hierarchical tiling works well. It's all we can do anyway, since RAM is finite.

It's interesting work and i enjoy this. I do 3D particle terrain simulations, not just heightmaps. But 3D sim is orders of magnitudes slower than 2D, so i have to switch to heightmap simulation on the surface of a 3D model, to get closer to details needed for a game.

But i would not recommend to do this yourself. There are very good tools for heightmap generation out there. Why spending time on reinventing wheels, if others already provide polished tools. They allow to export textures representing flow, sediment, etc. You could use those to determine what's soil and what's rock for example, usually it's used to drive procedural texturing to add the necessary details for close up view.

RmbRT said:
I think this is where deep understanding is required.

Yeah, this applies to any kind of simulation. Erosion is a simple process on paper, but i had to try many options until something finally worked with 3D particles. In 2D it's quite easy however. I could make that work in two weeks, not having any former exp. on fluid sim. But results and options are not on par with commercial tools, which are not expensive afaict.

To me, the hardest problem with terrain is ‘how to model rocks?’. It's hard to find understanding here. Many processes beside fracture are involved. If i observe the mountains nearby, rocks show many different shapes. It's a riddle and total mystery.

Other people don't care a fuck. It's just a rock. No one spends a thought on why it looks like it looks.
But to me, as a programmer trying to replicate it, i wonder and realize again how little i know about the world or anything.
This kind of insight is a privilege to people like us. Others never realize how dumb they are, but we constantly do. \:D/

RmbRT said:
For example if each voronoi cell was a mountain or a valley, then it would be boring because all mountains and valleys are roughly the same size and distance to each other. But if you had another layer of noise…

That's the problem can simulation solve. If you simulate erosion for example, and you do it over multiple frequencies, you get natural results with its fractal patterns. You can also see cause and effect, how the process has shaped over time.

You won't get this from mixing random noise. There is no process going on over time, there is no interaction, there is no change.

Those pseudo random noises and pattern are limited, but with some creative use they can still give good content.
It's also much much faster, so it's mostly performance (or storage) arguments deciding which option to choose. Simulation is good to precompute a static finite world, procedural noise is good to add details, reduce storage, or to model infinite worlds.

Notice your idea about adding another layer of noise is not new but already integral to traditional procedural texturing. Related terms are fbm noise, octaves, multiple frequencies, hierarchies, etc. In case you missed it, this is the primary resource to learn all about this, imo.
Personally i've learned about terrain sim here. There are basically two approaches: Shallow water simulation (a water heightfield, like many games do for puddles or sea), and the Droplet approach. Droplet is simpler, but because it's water particles do not interact with each other, it's overall the inferior approach.

I also like to watch YT videos of people teaching Houdini, which implements all of the ideas discussed here. It's good to see how artists turn those basic building blocks into actual content.
But mostly i still stare at the mountain outside my house. : )

JoeJ said:
Idk what's your goals regarding visuals and content. If Minecraft looks good enough to you, your intent is realistic. If it's Titan Quest, maybe.

Somewhere in-between, probably. But if need be, I will also go for even simpler looks than minecraft. I will not let graphics complexity get in the way of game depth and features. And it's always possible to retrofit better looks as an option for people with gamer rigs, but it's hard to make stuff more efficient that is expensive by its overall design.

JoeJ said:
But this means you need to build up a simulation of life first. And only then you can build up deep insights.

JoeJ said:
Sounds like ‘Implement a full simulation of the visible universe first, and then delete everything which is not needed.’ That's inefficiency cranked up to 12. You don't want to develop stuff which then is not needed, of coarse ; )

I meant it more like a novel author who should have an understanding of the themes he's referencing beyond the level of detail at which he's referencing it. Of course you don't start with an all-encompassing world simulation program. But you need to understand the general aspects of your world before you start building it. The quality and efficiency of what you come up with in the end will of course shape the final result, and it will most likely fall short or deviate of your inital idea.

JoeJ said:
But you currently work on homebrew HW and your own programming language. Likely you don't have a game engine yet, so you don't know what you can expect from it. And it's the same for me, just working on other things but no game yet. Neither of us is in the position to plan something like a big MMO / RPG kind of game. We might never get there, and if we are too ambitious, we surely wont.

It's exactly what I intend to do. I'm 26 and I still have a few decades to spare, I think. And I don't anticipate that I will find a wife anytime soon, so I have no obligations. I have sufficient OpenGL experience for this project, and games were always what I wanted to make since my early childhood days. And my programming language and CPU project are just means to an end.

JoeJ said:
While the animals are all running, they need to detect and resolve collisions with the world. Depending on detail, that's likely very high costs. That's the typical worst case: Performance goes down while we need it the most.

I'll probably go for a grid-based terrain collision scheme. I can pre-process chunks of terrain at different levels of detail and then derive pathing nodes from that to make direction guesses for reaching more distant easy locations easier.

JoeJ said:
To me, the hardest problem with terrain is ‘how to model rocks?’. It's hard to find understanding here. Many processes beside fracture are involved. If i observe the mountains nearby, rocks show many different shapes. It's a riddle and total mystery.

Since it defies true understanding, it may be sufficient to have some general hunch and implement that. After all, I also have no idea how terrain elevation actually works. Just knowing about erosion does not explain what the initial condition of a mountain was. It just needs to seem like it belongs where it is, the way it is, that it is a natural occurrence according to the world. That is all the player needs, unless he is some rock genius and cannot immerse himself into a world without realistic rocks.

JoeJ said:
or to model infinite worlds.

On-the-fly and unconstrained world generation is what I need, I think. And yes, noise-based/constant-time generation is always an approximation of a real simulation result. I'll probably have to invest at least a year into terrain generation to make it any good. And then I'll have to prevent the player from seeing much of it despite its infinite size, so it doesn't become bland. But the player must always be aware that there is more right behind that next mountain, if he can manage to get there without being dying to ever-increasing difficulty.

JoeJ said:
Those pseudo random noises and pattern are limited,

JoeJ said:
There is no process going on over time, there is no interaction, there is no change.

I do not need the terrain to be changeable or dynamic. I'm not making a voxel or meteorology simulator. All I need is a good static result. If I can't find a way to make emergent patterns that are significantly larger than the largest cell size, then my world will be bland and not immersive. But I'm convinced that you can get organic patterns even from noise.

Walk with God.

RmbRT said:
Somewhere in-between, probably. But if need be, I will also go for even simpler looks than minecraft.

Ah, i see. Now i'm sorry for the attempt to reduce your expectations. If you keep it simple enough, anything is possible.

But now i wonder: What do you want to simulate? Behavior of life in a static world?
Or in a dynamic world, maybe changeable by the user, like Noita or Minecraft do?

Both those games work at only one level of pixels / voxels.
Minecraft for example does not merge 8 voxels to single larger one in the distance, to achieve some LOD.
This caps draw distance in a FPS game, and enforces large voxels, but keeps things as simple as possible.
The only thing simpler than that would be using just hightmaps. But this can't do buildings, caves, or even cliffs.

RmbRT said:
All systems that decide a noise value to some kind of cell need to have that kind of interplay on multiple levels

That's easy to solve. Voronoi and any other procedural noise assign a random value to each cell. The domain of those cells is mostly a simple grid, but sometimes a skewed, triangulated grid. Ideally you'll use the same global grid than your world uses, maybe subdivided to get more detail. Then you can just use integers to index the grid, but floating point to define location within the grid. Iq's page has an example.

RmbRT said:
This is also where wave function collapse fails: it simply creates a minimum viable pattern, but there is no such thing as higher semantic constraints on the output.

The constraint it considers is actually which tiles can match each other how and which not. So it's good if you generate a larger building from a set of modular building blocks. Likely it could also be used to propagate cracks of fracture eventually.
But yes, there is no hierarchy of multiple levels, and it's always aligned to the grid / domain. Which is probably no problem for a voxel game, where you accepted this uniform quantization anyway.

It's useful for sure, but sharing your impression of ‘looking from some distance, it's just pointless noise’, i consider this as an alternative. I expect this can simulate how a society grows a city from some emerging ecosystem, while keeping it simple.
Have not tried it yet, but i think this makes sense. Maybe it's a way to model ‘growth’ in general.

RmbRT said:
I think the way forward in world generation is having as much emergent behaviour as possible beyond the largest unit of noise sampling, in effect requiring something like a perlin noise version of wave collapse to create emergent semantical patterns, not actual optical patterns.

Well, there are also ‘L-systems’. But i have forgotten what this was precisely. Iirc, i saw it used to generate trees but also procedural architecture.

RmbRT said:
I think your conclusion is not strictly valid, because I think if you have a world that actively reacts to your actions, and you can interact with it beyond destroying or killing, then you will definitely have motivation to achieve specific changes in the world, even if small-scale.

Yeah, i admit i was narrowing down to the problem of ‘bad oversight in first person.’
I did this because it's an FPS thread, and i was assuming you want to create such action game, but with some richer, interactive world simulation going on. Which is my personal goal. I want the richer simulation so multiple options emerge to the player to solve some problem. And because it's an action game, my radius of observation and potential action is small, and the duration is also short timed. Likely i won't go much farther than that.

But i can see the promise of your idea much better now. It's interesting and worth to try.
The missing oversight from FP also seems a much smaller problem now, assuming the player can just observe the changes over longer periods of time.

RmbRT said:
After all, I also have no idea how terrain elevation actually works.

I think i understand this. It's tectonic plates, moving towards each other. The pressure forms local maxima, usually forming a path. Along this path, the plates rise upwards and from folds, and that's mountains then.

I tried to simulate this with particles:

This was initially just a flat box volume of particles at the ground, like still visible at the bottom corner.
The pressure makes the matter rise and forms folds.

Doing this at some higher frequency:

We get more folds. It looks like some terrain made out of toothpaste, or ‘brain mountains’ : )

Doing this with actual plates of rigid matter would work for me, but it requires a billion of particles and probably hours or days of simulation time. So i rather stick at the toothpaste and see what i get from that.

So basically it's an effect of high pressure, pushing things towards each other, enforcing some expansion.

If we do the opposite, pulling things apart, we get this:

Natural cracks.

Combining all of this and adding erosion, i get some terrain (already requiring out of core tiled processing):

However, i work on offline procedural generation, so i can accept long processing times.
If you generate the entire world on client like Minecraft does, likely you can't expect such quality.

There also is the risk to become too focused and fixated on such work. There always is more stuff you want to try, you achieve progress, you get lost in details, and you end up spending to much time on it.

JoeJ said:
But now i wonder: What do you want to simulate? Behavior of life in a static world? Or in a dynamic world, maybe changeable by the user, like Noita or Minecraft do?

I want a geometrically static world. I don't need climate simulation, progressing erosion, terraforming, etc. I don't even want to inherently simulate life. All I really want is to make a game world with deep enough mechanics / systems / patterns that it lends itself to immersion. Immersion is the top priority, followed by fun. The only dynamic parts will be those parts that change after the game starts, such as factions, populations, settlements maybe, etc. But not the overall terrain.

JoeJ said:
Both those games work at only one level of pixels / voxels. Minecraft for example does not merge 8 voxels to single larger one in the distance, to achieve some LOD. This caps draw distance in a FPS game, and enforces large voxels, but keeps things as simple as possible. The only thing simpler than that would be using just hightmaps. But this can't do buildings, caves, or even cliffs.

I plan to do a heightmap style terrain. Yes, I need some really aggressive graphics and LOD optimisations because of the target hardware being integrated GPUs. I opened a thread for those here. I

JoeJ said:
That's easy to solve. Voronoi and any other procedural noise assign a random value to each cell. The domain of those cells is mostly a simple grid, but sometimes a skewed, triangulated grid. Ideally you'll use the same global grid than your world uses, maybe subdivided to get more detail. Then you can just use integers to index the grid, but floating point to define location within the grid. Iq's page has an example.

Yes, that is my intent. I want some kind of grid, with one voronoi centerpoint per cell, but at pseudorandom offset within the cell. But the problem of normal cell-based noise is that each cell is independent of each other. Of course, on the more detailed layers, you connect the cells to each other, but I want something that makes meaningful patterns that span multiple cells, such as mountain ranges with ridges spanning multiple cells as opposed to individual peaks per cell (instead of reducing the height in all directions outwards from the peak, draw a linear ridge between two adjacent cells' peaks if the pattern decides to make a range out of them). Stuff like that. I want to have per-cell independent noise values, but another noise that acts upon the relationship of cells instead of the cells themselves, in an attempt to create emergent large-scale organic patterns.

JoeJ said:
It's useful for sure, but sharing your impression of ‘looking from some distance, it's just pointless noise’, i consider this as an alternative. I expect this can simulate how a society grows a city from some emerging ecosystem, while keeping it simple. Have not tried it yet, but i think this makes sense. Maybe it's a way to model ‘growth’ in general.

LOL at when he blurs the paths and it turns into a chemtrail simulation! Yes, that stuff is great for forming organic logistics. Thanks. I also find it very interesting that with quite a few parameter choices, the results was actually a voronoi diagram.

JoeJ said:
Well, there are also ‘L-systems’. But i have forgotten what this was precisely. Iirc, i saw it used to generate trees but also procedural architecture.

L-trees are basically generational grammars afaik. In that sense, it's really similar to wave collapse, but it is not cell based, and each branch can become arbitrarily large, I think.

JoeJ said:
Likely it could also be used to propagate cracks of fracture eventually.

No idea what that means. You mean creating crack patterns, like in cracked stones? I assume you have some other use besides texture generation for it. Or do you mean to generate a chasm/ravine? Edit: lol I had the tab open and didn't refresh so I didn't see your elaboration on it before posting.

JoeJ said:
Yeah, i admit i was narrowing down to the problem of ‘bad oversight in first person.’ I did this because it's an FPS thread, and i was assuming you want to create such action game, but with some richer, interactive world simulation going on. Which is my personal goal. I want the richer simulation so multiple options emerge to the player to solve some problem. And because it's an action game, my radius of observation and potential action is small, and the duration is also short timed. Likely i won't go much farther than that.

But i can see the promise of your idea much better now. It's interesting and worth to try.
The missing oversight from FP also seems a much smaller problem now, assuming the player can just observe the changes over longer periods of time.

So, instead of an adventure world game, you want a first person action shooter world game? So the focus is not a rich adventure-aiding simulation, but a rich action-facilitating simulation. It should be fairly simple, actually. Instead of coming up with primarily immersive elements, what you need (I think) is a simulation that packs your world with things that force real-time thrilling interaction upon you. A world of action combat. I cannot quite grasp what one would look like, but I think a primary concept should be that it's not you who goes and interacts with the action thing that's waiting there for you, but the action actively seeks you out. Exploration and careful long-term observeration are not the focus, so you need to have a mechanic/incentive structure that makes you go around the world for some good reason, and you have are faced with a near-constant stream of challenges. Since such a world is inherently unrealistic in my estimate, I think that you should completely let go of realism concerns, and go for a much more pragmatic style than I do. Come up with many different entities or terrain features etc. that have differing mechanics, and make it so that different combinations of those create unique challenges. This is beginning to sound a lot like a roguelike dungeon generator to me, just with an open world instead, and of course FPS instead of top-down. The general structure of either being forced to travel through challenges instead of around them, or the challenges coming to you, should be maintained, so that individual challenges don't become optional experiences that you actively opt into.

If I understood you correctly, I have actually never considered such a world or game type. I'm intrigued.

JoeJ said:
If you generate the entire world on client like Minecraft does, likely you can't expect such quality.

Well, that's why I just have to try harder than Minecraft does. Minecraft doesn't need it, because its appeal is its mechanics and the sandbox. It just needs to get the general appearance right. But I need it, because my intended appeal is that the world feels real. But I do not need actual physical realism, luckily.

JoeJ said:
There also is the risk to become too focused and fixated on such work. There always is more stuff you want to try, you achieve progress, you get lost in details, and you end up spending to much time on it.

I always work like this. I enjoy thinking as much as building, and I do not actually care that much about ever finishing. Constant refinement is a privilege and I greatly enjoy it. In return, I also often drop things after I explored enough of it so that I feel there is no more challenge to solve. I learn by doing, and I do for learning (not exactly, but roughly that's the case).

Walk with God.

RmbRT said:
I want some kind of grid, with one voronoi centerpoint per cell, but at pseudorandom offset within the cell. But the problem of normal cell-based noise is that each cell is independent of each other. Of course, on the more detailed layers, you connect the cells to each other, but I want something that makes meaningful patterns that span multiple cells, such as mountain ranges with ridges spanning multiple cells

I can propose to solve this with graph algorithms.

Here for example, you see the tree as formed from Dijkstra's shortest paths algorithm on the graph formed by a mesh:

Notice the veins / tendrils it gives. You could use this to form mountains and their eroded rivers, getting height from inverse path length, for example. There are related papers showing good results for terrain generation. It's very fast - no simulation needed. You can also control this very well, regarding where should be ridges or not.

But this brings us to another problem: The domain defining the position of your graph nodes.
In my image the bunny is mostly made of closely to equiangular but irregular triangles, which works pretty well here. It adds some randomness from the irregular distribution, and has nice 60 degree angles at the branches.

If you do the same in your proposed regular grid, the results look pretty bad. I lack an image, but it looks like some axis aligned, artificial, computer generated, simply ugly stuff.
And no, you can not fix this by randomly displacing your voronoi cell point randomly within their cell. You can not hide your domain, if it is initially regular. The property is set in stone and will show up.

Thus, you must first form a domain, from which a deeper meaning may arise later.
This is what ‘poisson disc sampling’ is good for. The goal is to generate random samples, actually points, but they keep some distance from each other. So one way to generate them is to start from jittered grid samples as you have described, then run some iterations of collisions to those samples. (To do this really correctly, it's not ok to use just one sample per grid cell. In a few we need two, respecting the expected distribution of area per sample. But this can be ignored where needed.)

Once you have those samples, you can do a Delaunay triangulation to form a graph, which is also our domain.
At this point, our domain is optimized so each cell has closely the same area. But you want details at varying scales, eventually.
To do this, you can simply vary the initial area by using a variable poisson radius ( = radius of our colliding particle), but also the initial density of our given samples, ofc.

This is an example:

Ignore the coloring. I guess what they did is to generate more samples where there is higher curvature on the mesh.
That's basically what i mean, and i think it's the actual computer science answer to a lot of your visions.

You implement this with colliding particles living in your high resolution grid domain, but each particle covers a larger area of say 4x4 cells. And then you can obtain a better but lower resolution graph, which dictates some larger meaning, structures, or whatever. But that's just some arbitrary proposal.
However, going there means to loose the simplicity as given by the grid. You work with the mesh instead eventually, which is much harder and so costs much more time.

Personally i think it is essential to hide the grid, if we want to show some larger structure. Nature does not follow some invisible grid, so we don't want to either.
Not using a grid but a mesh instead is one way, but not the only one, and rarely the ideal one because we're left with the problem to create the ideal mesh in advance, before we start to emerge stuff.
Imo, ideally we want to emerge everything, not needing abstractions such as a graph at all. But more on that later, quoting something else…

This topic is closed to new replies.

Advertisement