Jump to content
  • Advertisement
Sign in to follow this  
Karu-bg

Ways to implement hybrid procedural gen/handcrafted worlds

This topic is 898 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Some days ago I asked Kologeon devs about their procedural gen aproach since their game world looked very cohesive and well crafted. <chillcrow.com>

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.

Share this post


Link to post
Share on other sites
Advertisement

- 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.

Edited by sunandshadow

Share this post


Link to post
Share on other sites

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 ....)

 

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!