|
Title: procedural level generation experiment Post by: Glaiel-Gamer on May 29, 2009, 09:05:17 AM Hey guys I'm doing an experiment in procedural level generation and I need a bunch of level files to scan in
files should look like this http://spamtheweb.com/ul/upload/290509/46826_level.txt . = space X = block must be 15 lines (for test purposes) um as a guideline, character can jump over towers of 2 block height, and across chasms of 3 space width, even though I'm not actually having a character bigger levels are better but I need a ton of data to make this work so just email me some text files like the one above (glaielgamesmail [fucking at sign yo] comcast [fucking period yo] net) Title: Re: procedural level generation experiment Post by: Zaratustra on May 29, 2009, 09:31:48 AM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Title: Re: procedural level generation experiment Post by: Glaiel-Gamer on May 29, 2009, 11:54:30 AM 2 levels scanned in, i'm sure this will look a lot better when I more to scan in
Code: ..........X..............X..........X..X..................................XX........................ ....................................X...........X.......X................X.......................... .....X..............................X.X.........X............X...........XX.....X................... ...................................XX...................................XX....X..................... ................................XXX.X......X.........X.......................X..X.......X........... ..........X...................XXXX.......XXX................................X..........X.X.......... .........................XXXXXX............................................XX.........XXXXX......... ..XXXX..........X........X...................X.....X.................................XXX.X.......... ..XX...........X.....X..X..............................X..............XX.......X......XXXX.......... ...............X.X.....XX...XXX......................................X.....X.........XXXX.X...X..... .....X......X.XX.X...X.X....X......................................XX.X............XX.XXX......X.... ...............X.............X...........X..X..X....X........X.....X.X.X.X.X..X.XXX.XXXXX.....XX.... ...X.X.X.....XXX............X.X........X.X.X....X.XXXXXXX........XXXX.X.X......X.X.XXXXX....XXXXXXXX .XX...X....X..X.....................X.XXXXXXXXXXX..........X......XX..........XXXXXXXXX.....XXXXX.XX XXXXXXX.XXXXXXX............X........XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX........XXXXXXXXXXXXXXXXXXXXXXX Title: Re: procedural level generation experiment Post by: Glaiel-Gamer on May 29, 2009, 11:55:21 AM also stick in the letter e for enemy, and c for coin I'll try to get those in too
Title: Re: procedural level generation experiment Post by: Ed on May 29, 2009, 12:57:55 PM Sounds more like crowd-sourcing than procedural generation ;)
But I guess this is using a Markov method, is it? [editted for presumptiousness] Title: Re: procedural level generation experiment Post by: Glaiel-Gamer on May 29, 2009, 01:14:45 PM But I guess this is using a Markov method, is it? [editted for presumptiousness] ya, modified for 2D (need a lot more data to make it interesting) Title: Re: procedural level generation experiment Post by: Ed on May 29, 2009, 01:38:44 PM I once did a 1D system where each "column" was an entry in the chain, to generate Golden Axe type levels, but it wasn't too great. This was mostly due to lack of perseverance, but also it had a tendency to make invalid sequences (in level design terms) on the large scale, even though locally the sequences were consistent.
This sounds (and maybe looks, if that's output) like a proper 2d thing though... a Markov mesh (http://www.nr.no/pages/sand/area_res_char_multipoint)? Title: Re: procedural level generation experiment Post by: Glaiel-Gamer on May 29, 2009, 02:03:08 PM Ya it's similar to a markov mesh thing, I'm going left to right, top to bottom using this area, ? denoting the current tile to scan / generate, X representing tiles to look at
Code: |X|X|?| | |X|X| | | |X| I templatized up my markov probability database though, so its really easy to do different areas, and I might try the following to see if it gets better results, once I have more data to scan Code: | | |X| | | |X|X| | |X|X|X|?| | |X|X|X| | | |X|X| | | | |X| also, out-of-bounds tiles are all considered one value I'm also considering trying to figure out a way to do a multi-pass generator, such as doing it once this way (which is a pretty blind way of making a level), then scanning through again considering an area like Code: | | |X| | | | |X|X|X| | |X|X|?|X|X| | |X|X|X| | | | |X| | | and varying it if appropriate Title: Re: procedural level generation experiment Post by: Ed on May 29, 2009, 02:05:24 PM Very neat!
Title: Re: procedural level generation experiment Post by: Glaiel-Gamer on May 29, 2009, 02:41:39 PM hmm wouldja look at that, I edited my < operator for the map so it organizes more properly, and the level suddenly has more structure to it (still using the original checking segment till I get more data to work with *wink*)
e = enemy c = coin Code: .....XX................................................XXXXX...............................XX....... .................ccccc.....................XX..............................XXXXX........XX.......... ................................................................XXXXX............................... ......XXX......XXXX................................................................................. ................................................X................................................... ..................................................XX................................................ ...XX.......................................................................................X....... X...........X........XXXXX........XXXXX....................................c................XX...... X...........X...................................X.........................................c......... X...........XX...........................X.............X..........................X........X........ X................................XXX..............X....X.......................XXXX.......X......... X................................................XXXXXXX.....................XXXX...XXXX....c..X.... X............X........X......X...................XXXXXXX.........X......X...XXXXX..XXXX......XXX.... X...........XX..ee....X.....XX......X...X........XXXXXXXXX.......X......XXXXXXXXXXXXXXX.....XXXX.... XXXXXXXXXXXXXXXXXXXXXXXXXX..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.......XXXX...XXXXXXXXXXXXXXXXXXXXXXXXXX.. EDIT: using that second pattern I posted with added flexibility for using any pattern I want) I'm not gonna bother using the 2nd pass filter until I have a lot more data to work with. But, I did try playing the level in a simple platformer, and minus a few hitches, it was actually fairly playable. Definitely needs tweaks though Code: ...XXXXXXXXXXXXXXXXX.................................XX...XXXXXXXXXXX......................................................................XXXXXXXXXXXXXXX................................................................................................. ...............................X..........X..............X...............................................................X...................X................X.......................................................................................X...............................................................................................X...............................X...........................................X................X......X..................X...................................... .............................XX.........XX.............XX.............................................................XXX................XXXX......X......XXXX.........................X.............................XXXX...........................XX..............X...............................................................................XX........X...................XXXX............................X........X..XXXX..............XXX....XXX.................XX....................................... ....................XX................................................................................ccccc...............................XX......X...X....XX..........................X.....................................X...XXX...........X...................X..................................X...X...................XXX..XX.........................X..........XX........XX..............................XXXX.........................................X................................................... ............X.........................XX..................X..........................................c.....c.....................................X........................XX..XXXX.......................................XXXXXX................XXXX......XXX..........XXX..XXXXXX...................................X..XXX....................................X.............XXX...................XXX................................XX.......................XXXX...................XX................XXXXX..XX.... ...........X..........XX................................XXX........................XX.......................c.................................c........XX...............................X......................................X..................XXXX...........XXX..........XX.....X........ccccc....XX...........X....X................XX...........XX.....X.....................................XXX....................X...............XX..XX.................X........X............................XXX......... ...XXX....X..........................................................................................X..............XXX...........c.....................................XX..............X..................X.........................................XXX.....................................c.....c..............................................XX..........X.................................XX....................X..................................XXXXX...................................................... .........X....X...................X...............................................X..................X...........c...........X................X.........................................X...XX.............X.............................................XX...........................XXXX..........c.........................................................X.............................................XX.....X..X......................X............XXX..................................................XX... ...........................X......XXXX.............c.......XX....................X.....X.........................................X............X.........XX..............................X.........................XX.....................................................................X...........c.............XXXXX..X.....X.....XXX......XX.............X.....XX.........X................................................XX......X...X....XX...........................................................XXXX.. ........XX...XX...........X..........X.....................................X..........XXX.....X.............XX................XXXXXX..............XX....................................X...................................................................................................XX..XX....c.............XXX.......XXX...................XX........X.......X..............................XX.........X............................................................................................XXXXXX. ..........X........................................X.............XXX............XX...XXXXX....XXX...............XX.............................................X........................X...............X.............X..........cccccc..........XX.................XX..........................................................X.............................X.................XX..................XXXX........XXX......................X...XXX....X..........XX.....................XXX...................XXXXXXXX ............................X..........XX....XX...XXX.......XX.....XX...............XXXXXXX....................XXXX.................X.........XX.......c......XXX....c.c.c.c.c.c........X...............X............XXX......c.c.........................................c.c.c.c.c.c.c.c.c...............XX....................................XX............X.........XX........X...XXX..........XXXXXX.............c.c.c.c...XXX......X..........X...XX.........X....XX.......................c.........XXXXXXXXX X...........X...............XX........XXXX.......XXXXX.......................XX....XXXXXXXXX..................XXXXXX................XX.......XXXX............XXXXX.....................XX...........................XXXXX..............................................X.....................XX...................................X............XXXX....X......X...................................XXXXXXXX...............................X..........X..............XX.........XX....X.....................XXXXXXXXXX X..........XX...............X........XXXXXX.....XXXXXXX..ee.................XXXX..XXXXXXXXXXX................XXXXXXXX..ee..XXX..ee..X.......XXXXXX..XXX.....XXXXXXX...................XXXX.......XX................XXXXXXX....X........XXX...................XXX..ee..XX..X.................XXXX..e..XXX.........................XX..ee..X....XXXXXX..XXX.....X.............X.............X..ee..XXXXXXXXXX.........................X....X.........XX........XXX...X.........XXXX..XX.....X......X.......XXXXXXXXXXX XXXXXXXXXXXXXXX.....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXXXXXXXXXXXXXXXXXXX....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..XXXXXXXX...XX..XXXXXXXXXXXXXXXXXXXXXXXXXXXX..XXXXXXXXXXXXX..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...XXXXXXXXXXXXXXXXXXXXXX...XXXXXXXXXXXXXXXXXXXXXXXXXXXX..XXXXX..XXXXX..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX......XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...XXXXXXXXXXX..XXXXXXXXXXXXXXXXXXXXXXXXXX Title: Re: procedural level generation experiment Post by: Glaiel-Gamer on May 29, 2009, 03:41:28 PM here's another possibility I have, assuming a large data set makes for better levels:
Out of a potentially limited initial set of levels, I could randomly generate a bunch and let the player judge how good they are through a ratings system or so (assuming they can beat the level, otherwise it gets trashed). Then it pushes the good levels onto the server, to be scanned for future level generation. After enough playthroughs, the level generation might evolve over time to create more and more interesting levels, and I can scale up the "chunk to check" appropriately. Title: Re: procedural level generation experiment Post by: nihilocrat on May 29, 2009, 06:46:56 PM I was just about to suggest that... a genetic algorithm where human beings determine the fitness of each map, or a particular map chunk. If you want to get extra sneaky, you can ignore the player's rating and instead just measure a few things, like the speed they finished the level, number of coins collected versus total, or really detailed stuff like a 'heat map' of how much time was spent on each tile. Of course, then you need to figure out a way of processing this data to give a result you want, so it's probably a lot simpler to just ask for ratings.
Title: Re: procedural level generation experiment Post by: Glaiel-Gamer on May 29, 2009, 06:56:29 PM Ya I was thinking about how to measure the value of a level based on how the player plays it, but that's way too difficult to judge. What if the player just doesn't try to get all the coins, or what if he dies in a stupid part by accident? Heat map is an interesting idea, but I dont think that would work too well either. I could combine those factors with player ratings at first, and get a good idea of how they compare to user ratings, in effort to try and "predict" how fun a level is on future plays.
I'd also probably have to phase out older user-rated levels that have high ranks, in order to avoid having millions of rank 10 levels that people happened to like. All theoretical, I'd like to experiment with this over the long term and see what comes of it. First off is getting a good initial generation algorithm, and I want to play around with the multi-pass markov chain (generating randomly and blindly one pass then looping through a second time based on the initial layout and smoothing out the level) Title: Re: procedural level generation experiment Post by: Glaiel-Gamer on May 29, 2009, 07:18:51 PM Did multiple passes over the original set, definately need a lot more data than the 2 small levels I currently have to make this worthwhile, but it does look like it has potential
Code: Pass 1: ... .............X.....................X.......X.............X...........X.............................X ...........XX....................XX......XX...........XXX..........XX....X..X...................XXX. ........................................................................X............XX............. ...............................X.......................................................X............ ............X.............XXX..X.................................................................... ............XXX....................XX...XXX................................................XX....... ..........................................XXX....................................XX................. ...XX....................XXX...............................c...............X....................X... .....X............................................XXX...........XXXX.....XXXXX..............XXXXX..X ..........ccc..............................................X....................................X... .........c...c............................................XXX........X.........c.c.................. X............................XX........X.................XXXXX.......XX............................. X.......X.........X.........XXXX..ee..XX........XX...X..XXXXXXX..ee..X.....XXX...................... XXXXXX..XXX.......XXX.......XXXXXXXXXXXXXXXX....XX...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Pass 2: ... .............X.....................X.......X.............X...........X.............................X ...........XX....................XX......XX............XX.........XXX....X.......................XX. ............................................................................X.......XXX............. .......................................X............................................................ ..........................XXX..X.................................................................... ............XXXX..................XXXX.XXXX.............................X..c..............XXX...c... ..........................................XXX....X................................XX................ ...XX.....................X.......................................X........X....................X... ...................................X...............X.X...........XX......XXXXX...............XXXX..X ..........ccc..................c...........................X....................................X... .........c...c............................................XXX........X.........c.c.................. X............................XX........X.................XXXXX.......XX............................. X.......X.........X.........XXXX..ee..XXX.......XX...X..XXXXXXX..ee..X.....XXX...................... XXXXXX..XXX.......XXXX......XXXXXXXXXXXXXXX.X...XX...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Pass 3: ... .............X.....................X.......X.............X...........X.............................X ..........XXX....................XX......XX............XX........XXXX........X...................XX. .........................X....X..............................................X.......XX............. ...............................XX......................................X..............XX............ ..............X...........XXX...X...X...........X.......................X........................... ....X........XX....................XX..XXXX............................X..................XXX....... ..........................................XXX...X.X.....................X.........XX................ ...XX....................X.X...............................c...............X....................X... .....X............................X.X...............X.............X......XXXXX................XXX..X ..........ccc..............................................X....................................X... .........c...c............................................XXX........X.............................. X............................XX........X.................XXXXX.......XX............................. X.......X.........X.........XXXX..ee..XX........XX...X..XXXXXXX..ee..X.....XXX...................... XXXXXX..XXXX......XXX.......XXXXXXXXXXXXXXXX....XX...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Pass 4: ... .............X.....................X.......X.............X...........X.............................X ...........XX............X.......XX.....XXX............XX........XXXX........X...................XX. ........................X....................................................X......X.X............. ...............................XX................X.....................................XX........... ..........................XXX......................................X....X........X........X......... ..............X.....................X..XXXX............................X...................X........ ..........................................XXX...X.......................X.........X.X............... ...XX.....................XX................X..............c...............X........................ ...................................XX..............X.X...........X.X.....XXXXX................XXX..X ..........ccc..............................................X....................................X... .........c...c............................................XXX........X.............................. X............................XX........X.................XXXXX.......XX............................. X.......X.........X.........XXXX..ee..XX........XX...X..XXXXXXX..ee..X.....XXX...................... XXXXXX..XXXXX.....XXXX......XXXXXXXXXXXXXXX.X...XX...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Pass 5: ... .............X.....................X.......X.............X...........X.............................X ..........XXX............X.......XX....X.XX............XX.......X.XXX...........................XXX. ............................X....................X....................................X............. .......................X.......XX...............X.X....................................XX........... ...............X...........X........X.............................X.....X.................X......... .............X.X...................X...XXXX.......................XX...X............................ .............X............................XXX..X.X......................X.........XX....X........... ...XX.....................XX................XX.............................X....................X... ...................................XX...............X.............X......XXXXX................XXX..X ..........ccc.....................................X........X........................................ .........c...c...X........................................XXX........X.............................. X............................XX........X.................XXXXX.......XX............................. X.......X.........X.........XXXX..ee..XXX.......XX...X..XXXXXXX..ee..X.....XXX...................... XXXXXX..XXXX......XXXXX.....XXXXXXXXXXXXXXXX....XX...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Pass 6: ... .............X.....................X.......X.............X...........X.............................X ..........XXX................X...XX.....XXX............XX.........XXX............................XX. ........................X....X...................X.............X.....................X.............. ......................X.X.....X.X...............X.X...................................XXX........... ...............X..........X.X.....................................X.....X..................X........ .............X.X...................X....XXX.......................X....X............................ .............X............................XXX..XX.......................X.........XX...X.X.......... ...XX..X...................X................XX..............c..............X............X........... ..................................XXX................X.X.................XXXXX................XXX..X ..........ccc..................c.....X...........X.........X....................................X... .........c...c...X........................................XXX........X.............................. X............................XX..........................XXXXX.......XX............................. X.......X...................XXXX..ee..XX........XX...X..XXXXXXX..ee..X.....XXX...................... XXXXX...XXXXX.....XXXXXX....XXXXXXXXXXXXXXXX....XX...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Pass 7: ... .............X.....................X.......X.............X...........X.............................X ..........XXX................X...XX......XX...........XXX.........XXX............................XX. ........................X....X...................X..................................X............... .......................XX.....X.X...............X.X..................................XXX............ ...............X..........XXX.....................................X.....X...................X....... .............X.X..................X.X...XXX............................X..................X......... .............X..........X.................XXX..XX...X...................X.........X.X..X.X.......... ...XX...X.........X.......X.................XX.............................X............X........... ...................................XXX................X..............c...XXXXX................XXX..X ..........ccc.....X............c....XX..........X.X........X........................................ .........c...c....X.......................................XXX........X.............................. X............................XX........X.................XXXXX.......XX............................. X.......X...................XXXX..ee..XXX.......XX...X..XXXXXXX..ee..X.....XXX...................... XXXX.X..XXXX......XXXXXXX...XXXXXXXXXXXXXXXXX...XX...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Pass 8: ... .............X.....................X.......X.............X...........X.............................X ...........XX................X...XX.....XXX..........XXXX........XXXX...........................XXX. ...............c.............X...................X.................................X................ ........................X.....X.X...............X.X..................................XX............. ...............X..........XXX....................................X.X....X....................X...... .............X.X...................X...XXXX.........X..................X...c..............X......... ........X....X.....X...X.........X........XXX..XXX.X.X..................X..........XX..X.X.......... ....XX.X....................................XX.........X...c...............X............X........... ...................................XXXX..............X.X.............c...XXXXX.................XX..X ..........ccc........................X..........XX.........X........................................ .........c...c....X.......................................XXX........X.............................. X............................XX..........................XXXXX.......XX............................. X.......X...................XXXX..ee..XXX.......XX...X..XXXXXXX..ee..X.....XXX...................... XXXXX...XXXXX....XXXXXXXX...XXXXXXXXXXXXXXXX....XX...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Pass 9: ... .............X.....................X.......X.............X...........X.............................X ..........XXX.............X..X...XX.....XXX...........XXX.........XXX........................X.X.XX. .............................X...................X.................................................. .......................X......X.X...............X.X......................X...........X.............. ...............X.........XXXX....................................XXX....X.....................X..... .............X.X...XX...................XXX.........X..................X...c.c...............X...... ........X....X....X.X.X.........X.........XXX..XXX.X.X..................X...........X..X.X.......... ....XX.X...............X....................XX.........X...c...............X............X........... ..................................XXXX...............X.X.................XXXXX..................X..X ..........ccc.......................X..........XXX.........X........................................ .........c...c...X.X......................................XXX........X....................c......... X............................XX..........................XXXXX.......XX............................. X.......X...................XXXX..ee..XXX.......XX...X..XXXXXXX..ee..X.....XXX...................... XXXX....XXXX....XXXXXXXXXX..XXXXXXXXXXXXXXX.X...XX...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Pass 10: ... .............X.....................X.......X.............X...........X.............................X ...........XX.............X..X...XX.....XXX...........XXX.........XXX..........................X.XX. ...............c.............X...................X.................................................. ......................X.......X.X...............X.X...................................X............. ...............X........XXXXX....................................XX.....X........................... ...X.........X.X...XX...................XXX.........X..................X...c........................ .............X....X.X.X........X.X...X....XXX...XX.X.X..................X..........X...X.X.......... ...XXX.X.......................X............XX.........X...c...............X............X.......X... .................................X.XX................X.X.................XXXXX.................X...X ..........ccc.................................X.X..........X........................................ .........c...c...XX.......................................XXX........X.............................. X............................XX..........................XXXXX.......XX............................. X.......X...................XXXX..ee..XXX.......XX...X..XXXXXXX..ee..X.....XXX...................... XXX.X...XXXX.....XXXXXXXX...XXXXXXXXXXXXXXXX....XX...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Code: Pass 1: ... ... ........XXXX........................................................................................ ...........XXX......X.....................................................XXX....................... ......................................XXX.....XXX..XX..........................c.................... ........XX.........XX..................XX............X.............................................. .....................XXX.......................................................X.................... ...........................c.......XX....XX............XX..XXX...............XXX.....X...XX..XX..XX. ........XX.................................X...................................X.....X.............X .......XXXX.......XX.....XX......................................................................... ......XXXXXX............XXXX.........................................ccccccc..................XX.... .....XXXXXXXX..........XXXXXX........................c.c.c...X......c............................... X...XXXXXXXXXX........XXXXXXXX..............................XXX....................XX............... X..XXXXXXXXXXXX..ee..XXXXXXXXXX.........XX...........X.....XXXXX............X.....XXXX.............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....XX..XXXXXXXXXXXXXXXXXXXXXXXXXXXXX...XXXXXXXXXXXXX..XXXXXXXX. Pass 9000: ... ......X...............X........................................X.................................... ....XX...XXX........XX....XX...XX.......XX.............XX..XXXX....X........X...X............X...... ...........XXX...........X.X..X.X......X.X....XX......X.X........X.X....XXX.....X.......X...X.X..... .......XX....XXX..........X............XX......X...X..X...........X.......XX...X...XX..X.X.....X.... ...X..X.X......XX...X...........X.X...........X...X.X................................X..X.......X... ......X...c.........c..........X.....X...........X.....XX.....X.........XX........X........X........ ...........................cX..X...X.X..XXXX.....X..........XXX...X...........XX.................XX. ........XX.....X...X................X......XXX..X...X.X........X..X.............X.X.....XX..X.X....X .......XXXX....X..X.X....XX............X.....XX......X...X.X................................X....... ......XXXXXX............XXXX...X.X....X...........X......X...........ccccccccc...................... .....XXXXXXXX..........XXXXXX...X....X...........X.X.........X....c.c..................X.X....XX.... X...XXXXXXXXXX........XXXXXXXX..............................XXX....................XX............... X..XXXXXXXXXXXX..ee..XXXXXXXXXX.........XX...X.............XXXXX..................XXXX.....X........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..XX..X.XXXXXXXXXXXXXXXXXXXXXXX.X.X.XXXXXXXXXXXXXXX.X.XXXXXXX. Title: Re: procedural level generation experiment Post by: Glaiel-Gamer on May 29, 2009, 07:59:29 PM Added a 3rd level to scan in initially, results already look a LOT better
Code: Pass 1: ... ........................................................X........................................... .................................................X..XXXX............................................ .............................................................................................X...... ................................................XX..........XX............................XXXX...... .............................................................................................X...... ...........X............................................X.......................X................... ...........X............X..............XXXXXXX...X.................................................. ...........X............X..................XX....................XXXX...XXXXX....................... .....X.....X............X......................X..................XX.......XX.............XXXX...... ....XX.....X............X......................X.................................................... ...XXX.....X...XX......XX.....c....XX..X.......X.............................XX.....c.c.......X..... ..XXXX.....XX.........XXXX.............XX......X.............................XX...............XX.... .XXXXX..e..XX........XXXXXX..X.........X.......X.........X...................XX.....X.........XX.... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. Pass 100: ... ........................................................X........................................... ...............X...............X..........X......X..XXXX............................................ .........X.....XXXX...........X.XXXXX.....XXXXX..............................................X...... .......X...c.................X..................XX.............X.........XX...............XXXX...... ....X.X............X..X.c.....................................X.........X.X..........X.......X...... ....XX.....X...X..X..........c.....X................X.X.........X............XXX......X..X.......... ...........X....X..X....X.........XXXXXXXXXXXX......XX...........................X...X.............. ...........X............X....X............XXX............X.......XXXX...XXXXX...X................... ...........X............X....X.................X.........X........XX......XXX....................... ....XX.....X............X...X..................X......X.X........................................... ...XXX.....X...XX......XX..........XX..X.......X.............................XX...c.c.c.c.c...XX.... ..XXXX.....XX.........XXXX.............XX......X.............................XX...............XX.... .XXXXX.....XX........XXXXXX...eX.......X.......X......X....e..eee.e.Xe.......XX...............XX.... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |