Ways to implement hybrid procedural gen/handcrafted worlds
So they told me that they were using a hybrid solution, with handcrafted parts.
Since then Im wondering about this kind of design aproaches on top downs(Im looking to implement in my game)
Making mention of other games that use hybrid aproaches for proc gen would be enought to get some references on the subject.
Thanks in advance.
- One approach is to hybridize by location: have precreated rooms (especially boss rooms or puzzle rooms) and generated hallways/generic mob rooms, or precreated town layouts with precreated houses randomized into the layout, and the towns randomized into the generated world map.
- Hybridizing by location can be done in a more abstract way; for example each NPC in a town might need to live in a house (maybe assigned to a specific bed in that house) and work at a shop, and walk from home to work in the morning, and back again at night. But the house and shop can be in randomized locations in town, and the times can be semi-randomized, and you can use some AI to have the NPC take environmentally-appropriate actions depending what objects they pass when walking; for example if they pass a fish pond they can pull out a bag of food and throw some to the fish.
- Another approach is to apply a theme over top of a generated layout. For example, in one dungeon you replace all the water with lava, all the rocks with reddish rocks, any crystals with obsidian or fire opal, etc. Then in another dungeon you replace any flames with flame-shaped pieces of ice, any rocks with snowy white or blue rocks, etc. And in each dungeon you might have something generic like "key" or "quest item" which would be replaced with a unique precreated item per dungeon. Generated dungeons also commonly have a scaling scheme applied to them, with all monster difficulties and loot being adjusted to the player's level or the number of times the dungeon has been conquered or the number of times the player has advanced the global plot/timeline, etc.
- A third approach is to generate a bunch of levels or maps beforehand, then playtest them all, get rid of the horrible ones, tweak the problematic ones, rank them all by difficulty if applicable, then provide them as a pool for the final game to draw from.
I want to help design a "sandpark" MMO. Optional interactive story with quests and deeply characterized NPCs, plus sandbox elements like player-craftable housing and lots of other crafting. If you are starting a design of this type, please PM me. I also love pet-breeding games.
worlds include the objects and props within them (and decorators applied to generic pieces that cross sections)
Props can have fairly restrictive rules for what items go with what to seem realistic (assemblies of props) and its often easier to define more customized combinations (templates) than try to build complex rules. There still can be auto-generation techniques used for fitting of templatized assemblies into the terrain spaces (and key features they are typically placed near - attractor logic) and for variations.
Spawn points/effect sources/lights likewise are 'props' and have their own rules (and also get used in combinations ... more templates)
Patterns of decorators (dir levels applied in a guided randomness can get rid of 'the generic' look quite a bit
A macro entity for an area may define themes and situationally changeable modes and supply parameters for the auto-generation within their scope (and 'splatting' overlap mixing for transitions, etc...)
"Custom" handcrafting can STILL make use of these auto-generation templates (just that they are fully parameter specified and with exact combinations defined instead of randoms) and some (preferably few) might be fully realized/actualized if further tweaking is needed to make them fully unique beyond what templating could do.
Identify what you have 'one-ofs' and make that unique (but at some point they DO interface where the autogeneration takes over so you will need some standard joining around the cutonm thingee's edges ....)
A good game (although quite old nowadays) to look at for one early version of procedual/handcrafted hybrid games with a MASSIVE world would be Daggerfall in my mind (one of the earlier games in the elderscrolls series) it had an immense world which were a hybrid like you mentioned. Altough It admittedly felt a bit repetative at several occasions there were also a lot of instances where it spat out some really cool locations. I would suggest taking a look on this, at least me myself has found a lot of inspiration from this. (Although I was a massive fan of the game when it was releases maaaany years ago... ^_^ )
Talking from personal experience from my own 2d top-down project (feel tfree to take a look on the site in the signature) is that I progressively get better procedual content by have multiple layers of randomness.
One example could be (although not exatly related to town generation but just to show the general idea) is to use a pure noise function such as perlin noise to generate base ground parameters such as, elevation, moisture, "evil level" etc and then to apply stepwise higher order procedual functions with lower and lower degrees of "randomness" which takes it's base parameters from the lower levels. That way you get a random basis for the location but as it slowly iterates out the highest order functions gets more and more controlled.
Ok that might be one of the worst examples I've every written but with any luck you might get what I'm trying to explain :wink: It might not be the best solution by any means but I've had some progress with that approach at least
Currently making BorderStrain, 2D Sandbox ARPG www.BorderStrain.com