Playable mapgen - randomly-generated maps

Discuss anything not covered by any of the other categories.
LordHavoc
Posts: 322
Joined: Fri Nov 05, 2004 3:12 am
Location: western Oregon, USA
Contact:

Post by LordHavoc »

goldenboy wrote:It can't think in pictures like (some) humans do.
At the same time, randomness can be beautiful in its own way.

A careful balance of large and small pieces usually helps - some landmarks show up which were large pieces, and the smaller pieces make up the bulk of a level.

It's more like a theme than a design.
Team Xlink
Posts: 368
Joined: Thu Jun 25, 2009 4:45 am
Location: Michigan

Post by Team Xlink »

Sorry for the post resurrection but I have a question.

does this work with Stock Quake?
LordHavoc
Posts: 322
Joined: Fri Nov 05, 2004 3:12 am
Location: western Oregon, USA
Contact:

Post by LordHavoc »

Team Xlink wrote:Sorry for the post resurrection but I have a question.

does this work with Stock Quake?
Stock GLQuake probably, but not stock software Quake - it had limits on how many dynamic bsp polygons were allowed in the scene, and this entire mapgen is based around dynamic bsp polygons (submodels).
Team Xlink
Posts: 368
Joined: Thu Jun 25, 2009 4:45 am
Location: Michigan

Post by Team Xlink »

I couldn't get this version to load but I did get Preach's version and I must say random maps are a wonderful idea. It gives replay value that never ends.

EDIT: I got it working. Its awesome!
avirox
Posts: 137
Joined: Wed Aug 16, 2006 3:25 pm

Post by avirox »

I wonder if this same concept can be applied easily enough to generating maps for platform mods.. I've been considering the idea of making a streets-of-rage style game and a random map gen would definitely come in handy there..
r00k
Posts: 1111
Joined: Sat Nov 13, 2004 10:39 pm

Post by r00k »

Completely random or random set of interconnecting pieces? IIrc, that mapgen uses blocks? could you maybe create bsp models that have tagged link positions that could be interconnected? Like this side always faces down or this side always faces the camera (side scroller), then the ends left and right are static bu the middle obsticles are dynamic.

$0.02.
Team Xlink
Posts: 368
Joined: Thu Jun 25, 2009 4:45 am
Location: Michigan

Post by Team Xlink »

Well I must say this could be advanced so much.

Here are some I thinks that I think would make this work better.

1. Make sure the player_start is on the map and isn't inside a wall
One way to do this could be in the bsp itself, I think.
2. Randomized Weapon Spawns.
3. Multiplayer Spawns.
4. Bot Support.

This is definitely awesome and has wonderful potential.

Has anyone made anymore tile sets?
LordHavoc
Posts: 322
Joined: Fri Nov 05, 2004 3:12 am
Location: western Oregon, USA
Contact:

Post by LordHavoc »

r00k wrote:Completely random or random set of interconnecting pieces? IIrc, that mapgen uses blocks? could you maybe create bsp models that have tagged link positions that could be interconnected? Like this side always faces down or this side always faces the camera (side scroller), then the ends left and right are static bu the middle obsticles are dynamic.

$0.02.
That's what my never-finished mapgen utility was supposed to do, there's source for it on the twilight svn, basically it was designed to load all the .map files it found in a subdirectory and randomly pick one and see what connectors it had, and see if it can attach that to any of the existing pieces' connectors, and iterate until it runs out of connectors (and the map size would be fairly random as a result, since deadend pieces would kill off the paths sooner or later).

It was supposed to test if brushes overlap eachother and reject a piece if so, so that there would not be collisions (overlapping rooms)...

Now the fun part was that I realized it would be possible to have a few very big room pieces containing many more connectors, so you could have catwalks and other randomized stuff inside a room.

All connectors would have a type name and thus would only match up with compatible connecting pieces (so sewer1, sewer2, basedoor1, basehall1, wizardhall1, etc).

Then I realized the next step - monsters and other things would be random pieces too, so you could have a group of 2 grunts and a dog for example as one piece, and an enforcer as another piece, and they might have the same connector name, so wherever a map piece had "basemonsters_medium" it would randomly choose between the 2 grunts+1 dog, or 1 enforcer piece to put there...

This goes a step further - you can have things like burned out torches and working torches as pieces with the same connector name, so sometimes a torch would be burnt out on a wall because it chose different torch pieces from time to time.

It's all extremely flexible in concept, but I lost motivation to finish it, I also lost motivation to make all the pieces :P

P.S.
The entity name was info_connector and it would have "message" key values like "sewerhall1" to select what shape it represents, the meaning of each message name would be up to the designer, but essentially represents a compatibility codename between pieces (if someone makes a badly mismatched piece that misuses the same name, it would probably make a leaky map).

The utility is standalone and makes .map files to compile, so you still get all the nice lightmapping and good framerate, it was not developed as a mod because of performance and lighting quality being much higher as a .map file generator.

The part I did not finish is the collision checks between map pieces (detecting overlap and rejecting the piece), this might be possible to do with just bounding box comparisons on the brushes, it doesn't have to be exact, as its main purpose is to prevent two rooms from overlapping, I lost motivation when I started thinking about "colliding" two brushes (now I know how to do that, though...).

Another consideration in map generation is pacing - the old Doom map generator known as SLIGE would actually do some balancing considerations and ensure there was ammo placed before monsters, key/door relationships were created as a quest system (and the value of the rewards were considered in placing monsters later on the same path)... I never really tackled this in the design of mapgen, but it is possible to give it some consideration (albeit in a different way - if it places ammo/armor/health, it could then boost the danger rating for later pieces to allow monsters to be placed to consume those resources).

I also never really tackled the idea of placing an exit, or any sort of directed flow in the layout.

I noticed that in the game Torchlight, there is basically just one wandering path through the level, with some branching side areas but of very limited length, this is in contrast to the sprawling levels of Diablo1 which were more or less just filling a preset map size with rooms.
scar3crow
InsideQC Staff
Posts: 1054
Joined: Tue Jan 18, 2005 8:54 pm
Location: Alabama

Post by scar3crow »

I also lost motivation to make all the pieces
If you were to resume work on this, I would be up for contributing creation of .map chunks to work with. I'm sure others would as well, or at least doing a clean job of scouring 'pieces' from the id1 maps, to allow for id1 heavy themes.
...and all around me was the chaos of battle and the reek of running blood.... and for the first time in my life I knew true happiness.
Team Xlink
Posts: 368
Joined: Thu Jun 25, 2009 4:45 am
Location: Michigan

Post by Team Xlink »

scar3crow wrote:
I also lost motivation to make all the pieces
If you were to resume work on this, I would be up for contributing creation of .map chunks to work with. I'm sure others would as well, or at least doing a clean job of scouring 'pieces' from the id1 maps, to allow for id1 heavy themes.
I would also like to help with that.
Dark$oul71
Posts: 58
Joined: Sat Dec 05, 2009 6:56 pm

Post by Dark$oul71 »

I like the idea of such a map generator pretty similar to Diablo / Diablo 2 and the dynamically generated areas very much.

Unfortunately my QuakeC skills are pretty much non existent but I am willing for alpha/beta testing.
LordHavoc wrote: The utility is standalone and makes .map files to compile, so you still get all the nice lightmapping and good framerate, it was not developed as a mod because of performance and lighting quality being much higher as a .map file generator.
Well, I think for a mapgen you could go a dual approach. Generation of a .bsp file in "mod mode" which lets the user directly see the generated map "in game" and generation of a map file for external lightmapping afterwards if the map is...well...good enough for further processing, right ?

After all my quake map editing activities were ages ago and I do not have the full process in mind right now.

I guess it would be cool if a "map gen" produces unique "complex" maps in the first place with a player start within the map. Texture alignment and placing of Monsters IMO could be done manually afterwards if one walks around in the map and finally likes the layout.

Automated generation of maps with good monster placements, aligned texture and deathmatch out of the box would be the holy grail to me.

Just my two cents,
D$
Team Xlink
Posts: 368
Joined: Thu Jun 25, 2009 4:45 am
Location: Michigan

Post by Team Xlink »

I too would like to load up Quake and have a random map generated every time I play.
Nahuel
Posts: 495
Joined: Wed Jan 12, 2011 8:42 pm
Location: mar del plata

Re:

Post by Nahuel »

very cool stuff, please can someone reupload this ?
hi, I am nahuel, I love quake and qc.
Nahuel
Posts: 495
Joined: Wed Jan 12, 2011 8:42 pm
Location: mar del plata

Re: Playable mapgen - randomly-generated maps

Post by Nahuel »

thank you Spirit! :D
hi, I am nahuel, I love quake and qc.
Post Reply