3 ms·
Games are simplified, stylized reality e.g. chess is war. So are some fps: using real locations as maps isn't as much fun as carefully balanced maps, taking sig
by hyperpallium 10y ago
Games are simplified, stylized reality e.g. chess is war. So are some fps: using real locations as maps isn't as much fun as carefully balanced maps, taking sightlines into account, chokepoints, with interesting and complex strengths and vulnerabilities of positions within each section, and all sections close to each other.
Similar to fiction: it's more dramatic and makes more sense than ordinary life.
A simulation is akin to a tech demo, which can be impressive, but usually isn't a game.
Switching gears, I'm interested in how you've done tectonics. I was thinking of doing it as a magma fluid simulation (very slow, only one timestep every few hundred frames) and using convection to move and rotate plates.... though it turns out, the cause of tectonic movement isn't nearly that well understood. My concern is that using a fixed direction/speed will eventually mess up the world. If tectonics really are governed by convection, movement must change at the end of that magma cycle. Maybe a bit over the top! How are you doing tectonics?
One (expensive) solution to the 30% mountain height problem is monte carlo: rerun the simulation til it fits the parameters. What's nice is that you don't distort the generation probabilities, apart from the explicit constraint. Of course, not plausible for very unlikely constraints, esp. combinations thereof!
If you just want the end-produce (not an ongoing, evolving world like mine), some people have used a more declarative approach. e.g. Instead of generating rivers by waterflow and erosion over a terrain, you can generate a hierarchy of rivers and tributaries first, work out the watersheds implied, then generate the terrain based on that constraint.
- fenomas 10y agoI'm not doing any tectonics. Sorry if I was unclear, I meant it would be an interesting challenge, but in my game it doesn't make sense to worry about, because one doesn't interact with the world at a scale where you notice how the mountains are laid out. At a more fundamental level though, doing evolutionary-type stuff in a procedural world is a problem I'm wrestling with. I'm running an infinite world that's generated one chunk at a time, like Minecraft, so you can't, say, "start by generating all the rivers, and then...". Obviously this means everything has to be deterministic, but also it means that whatever macro-sized calculations I do need to be re-done for each chunk, or else cached somehow, etc. I've looked for articles on such things but not had much luck. Maybe others here have approaches they've tried?
- a-saleh 10y agoI think you might be able to solve this with certain level of laziness, at a cost that you would sometimes need to generate more than just a single chunk. I.e. once you encounter a river, you will then generate the whole river, from source, to sink (either you have a sea, or some other already existing, but undiscovered river?) You would then need to account for 3 states of your world: a) blank canvas b) pre-generated but yet unexplored terain c) already explored terain The world in state b) would then be the one both cached and available for re-calculating :-) If I were you I would read up on pen&paper sandbox designs, i.e. Stars Without Number [1] relies on lots of random tables to generate a sector of space with different factions/tech-levels/ecosystems, combined with rules for faction interaction. This gives it a nice "I am just a small ship in a big universe" feel :) You can generate example sector [2] [1] http://www.drivethrurpg.com/product/86467/Stars-Without-Number-Free-Edition http://www.drivethrurpg.com/product/86467/Stars-Without-Numb... [2] http://swn.emichron.com/ http://swn.emichron.com/
- ChrisFoster 10y agoPerhaps you could try a multi-resolution chunk system - LoD for chunks. For large scale features like rivers, generate those at coarse resolution on very large chunks. When generating the detailed chunks, take input from the coarser resolution levels which overlap the same spatial region, and add fine scale detail. A couple of levels of detail might suffice in practice, but if you want to go crazy you can more or less make as many as you like: As long as each level is downscaled by at least some constant factor of the more detailed level below it, you'll only have O(log(N)) overhead for O(N) chunks which is small even for very large N. Compare mipmapping, which is more or less the opposite of this process.