[project1dev] Re: procedural generation

  • From: figarus@xxxxxxxxx
  • To: project1dev@xxxxxxxxxxxxx
  • Date: Wed, 8 Apr 2009 12:14:46 +0000

That was my thought as well... If any of you have played the directors 
commentary for l4d, they talk about the system they use for procedurally 
populating maps w/ enemies - basically any map can be important into l4d and 
zombies will spawn appropriately via the ai director... Talk about making 
content easier to create... :) this is basically an alternate version of that, 
and is a really great idea
Sent via BlackBerry from T-Mobile

-----Original Message-----
From: Chris Riccobono <crysalim@xxxxxxxxx>

Date: Wed, 8 Apr 2009 05:08:30 
To: <project1dev@xxxxxxxxxxxxx>
Subject: [project1dev] Re: procedural generation

Alan, I'm amazed at your procedure layout.  Not only will your plan
solve the problems of syncing models to each other in the 3d world,
but it will help us all build intuitively, so we can be less hindered
by what we don't know how to do.

I would have never thought to create a system like this!  It could
very well be something to distinguish the game on its own if done

On Tue, Apr 7, 2009 at 4:05 PM, Alan Wolfe <alan.wolfe@xxxxxxxxx> wrote:
> ok cool
> hopefully we won't hit many unforseen snags.
> the only thing i cant think of how to automate is lighting, maybe after eric
> does a few lighting passes though he'll see some patterns or something that
> we can automate even if only a "rough guess" that he can tweak or something.
> Cool, I'm glad you guys think it'll work too
> On Tue, Apr 7, 2009 at 3:31 PM, Kent Petersen <kentkmp@xxxxxxxxx> wrote:
>> I think you have a great idea. I really like the idea of having people be
>> able to shape out the design and touch up the art after the procedural
>> generator is done.
>> On Tue, Apr 7, 2009 at 1:10 PM, Alan Wolfe <alan.wolfe@xxxxxxxxx> wrote:
>>> Glad you like it!
>>> I'll wait to see if anyone else has any input about it but if we dont see
>>> a reason that this wouldn't work, i think we should plan on making this
>>> happen.
>>> Hopefully i'll be able to convince shadows to help us, the extra pair of
>>> hands on this stuff would really be nice.
>>> On Tue, Apr 7, 2009 at 1:06 PM, eric drewes <figarus@xxxxxxxxx> wrote:
>>>> alan... don't post stuff like this while i am at work, I will be
>>>> severely embarrased if someone sees me celebrating and weeping w/ joy at
>>>> this awesome idea
>>>> On Tue, Apr 7, 2009 at 3:56 PM, Alan Wolfe <alan.wolfe@xxxxxxxxx> wrote:
>>>>> ok so... that game LOVE that i posted a link about has some really neat
>>>>> ideas especially about the problem we will have of not being able to 
>>>>> supply
>>>>> art fast enough to keep up w/ content creation.
>>>>> Thats what i think anyhow, it just seems like the process of building
>>>>> is going to take a lot less tiem than the process of prettying up since
>>>>> prettying is more involved (although adding enemies and scripted events 
>>>>> may
>>>>> make the process more on an even playing field).
>>>>> Anyhow, i thought we could maybe brainstorm about the possibility of
>>>>> making our game procedurally generated.
>>>>> If we do figure out something, we dont have to do it right away, i
>>>>> think it'd make most sense if we still built things by hand for a while so
>>>>> we could still keep making progress instead of just being stopped dead in
>>>>> our tracks (:
>>>>> Here's a scenario i was picturing, one of the many avenues we could
>>>>> possibly go down to make this work.
>>>>> 1) A builder goes through and makes a basic skeleton map like kent did
>>>>> with the cave level
>>>>> 2) As the map is being built, the model used for the floor peice
>>>>> basically defines what kind of art it will use
>>>>> So for instance if you placed down a 4x1 tile model that was
>>>>> "CaveFloor_4x1.ms3d", when you placed it down, it would just be a flat 4x1
>>>>> tile that had a dirt texture on it.  Not pretty lookin, but it makes sense
>>>>> when you look at it what it is.
>>>>> 3) When the map loads, it fills in the details
>>>>> When the game loads the map, it looks at that cave floor model and it
>>>>> knows a few things about cave...
>>>>> a) cave floors aren't level... they have bumps in them
>>>>> b) cave floors that border on nothingness have walls to keep players
>>>>> from falling into infinity
>>>>> c) cave floors have small rocks on them
>>>>> So, it would take that 4x1 cave floor and generate a model on they fly
>>>>> (or maybe choose randomly from some existing cave floor models) and place 
>>>>> it
>>>>> there.  It will find out where the walls should be and automatically 
>>>>> border
>>>>> it in walls.  Lastly, it will populate the cave floor with small rocks.
>>>>> And when i say randomly i'm talking pseudo random numbers.  Basically
>>>>> it will be the same random numbers each time for a given map that define
>>>>> where these things go, so every time you went into a specific cave it 
>>>>> would
>>>>> be the same cave.
>>>>> 4) Artists can still hand-touch up the resulting generated map.
>>>>> We'll really need an in game editor for this, but artists will be able
>>>>> to take the fleshed out, generated map and hand tweak things by moving
>>>>> things around, scaling them, rotating them, and adding new models in there
>>>>> (ie models specific to missions and thing like that).
>>>>> Basically those hand tweaks will correspond to extra script commands to
>>>>> run after the map has been "fleshed out" by the procedural generator.
>>>>> Each environment will have it's own set of oddities we'll have to work
>>>>> out... like a forest gets populated differently than a cave, and stuff 
>>>>> like
>>>>> that... so there are lots more details we'll have to figure out.  But, i
>>>>> think a system like this coudl work.  It would take a lot of coding but I
>>>>> think it's doable and i think it's worth it.
>>>>> We would also need some base art for the procedural generator to work,
>>>>> but that should be a lot less work than an artist having to pretty up each
>>>>> map by hand i think.
>>>>> What do you guys think?  Also, any things you would change about it?
>>>>> Or anyone have any better ideas?  Or disagree that this would be useful? 
>>>>> (:

Other related posts: