Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411496 Posts in 69373 Topics- by 58428 Members - Latest Member: shelton786

April 25, 2024, 06:56:02 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperDesignProcedurally generated Metroidvania
Pages: 1 [2] 3 4
Print
Author Topic: Procedurally generated Metroidvania  (Read 23261 times)
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #20 on: January 13, 2010, 08:44:14 PM »

THIS!

http://smartech.gatech.edu/handle/1853/16823

Quote
This project is an attempt to model and simulate key and lock puzzles in the style of Shigeru Miyamoto games, specifically the Zelda and Metroid series. Much of the gameplay in these titles is oriented around encountering obstacles, and then locating an item that allows the player to circumvent the obstacle. The project is built on top of Charbitat, another project built on Unreal Tournament 2004, which produces procedurally generated space in response to the player's actions.
Logged

X3N
Level 6
*


View Profile
« Reply #21 on: January 13, 2010, 09:39:56 PM »

Niice.
Logged

destiny is truth pre-op
Gregory
Level 0
***



View Profile WWW
« Reply #22 on: January 14, 2010, 09:14:15 AM »

I don't know if you want to do things like I'm doing them, but I generate a world composed of "sectors" (Norfair would be a sector), and grow each sector by starting with one room, then connecting a new room to a random room in a random direction.  Rooms can be various sizes.  At the moment, the map generated looks kinda cool, but does lack the unity of feel that you get in a more authored game.  One thing I do to try and make the world seem more unified is use a different tileset for each sector, so that they look very different even though they have the same underlying layout possibilities.  At the moment, I'm avoiding shortcuts as they're trickier than they seem.

Mine's still very much a work in progress; I think having sector themes would be interesting.  They'd work like, say, Yu's Spelunky worlds, where each sector had totally different layout options.  Puzzles are more complicated, of course.

One thing that I've found out about procedural generation is the awesomeness of combination.  If you create 16 different options for something, you only have 16 options and the game might seem repetitive.  However, if you create 8 "column A" options and 8 "column B" options, you suddenly have 64 final combinations, and there's far more variety.  That probably sounds obvious to a lot of people, but it was a bit of an epiphany when I first grokked it.
Logged
SirNiko
Level 10
*****



View Profile
« Reply #23 on: January 14, 2010, 11:00:14 AM »

One point we haven't addressed: how many 'keys' (which in Metroid would be weapons and movement upgrades) are there, and how many are used?

For example, you might make a game with four zones and four upgrades. The upgrades always appear in the same order, so you always get the high jump first in the grass zone (because the grass zone always comes first) then use it to enter the fire zone for the missiles, and so on. The terrain in the zone is randomly generated, but the order of the major events is always the same.

Or maybe you make the same game, but now the four upgrades are obtained in a random order. One game you start with the missiles, and the high jump is last. Another round starts with the speed dash, and you need to go without missiles until the last zone. This has more variety, but it also means a more sophisticated generator that can create terrain that accounts for all the various permutations of equipment.

Or, maybe you make a game with 10 different upgrades, but in a single play through only 4 of them appear. I think, in that case, you'd wind up either smartly designing obstacles for every possible permutation of 1, 2, 3 and 4 items, or making generic obstacles that can be navigated with some or none of the items (in which case, it'd be almost like Spelunky with more backtracking). Neither of these are difficult to do, just time consuming and requiring a lot of testing to make sure that the obstacles can't be sequence broken easily.

On a personal note, I think this might be fantastic for a minesweeper sized game, whereas before I was thinking of something long and complicated that would otherwise be a pretty terrible waste of programming. "Metroid: Fun Size Edition" might actually make for a good concept.

-SirNiko
Logged
Terrorbuns
Level 4
****

Bluh bluh.


View Profile
« Reply #24 on: January 14, 2010, 12:43:03 PM »

I think the best approach is to have a "pool" of upgrades, enemies, terrian types, etc. to pull from. Have a seed or something that can be changed that alters how many types of each are pulled and such, then generate the map around the "expected" upgrade order (the order of which the upgrades are pulled from the "pool") and then you could have it generate a final area where all the upgrades are needed to get past.

I'm no expert on this but that approach makes the most sense to me  Shrug
Logged
X3N
Level 6
*


View Profile
« Reply #25 on: January 14, 2010, 01:38:03 PM »

I think the best approach is to have a "pool" of upgrades, enemies, terrian types, etc. to pull from. Have a seed or something that can be changed that alters how many types of each are pulled and such, then generate the map around the "expected" upgrade order (the order of which the upgrades are pulled from the "pool") and then you could have it generate a final area where all the upgrades are needed to get past.

I'm no expert on this but that approach makes the most sense to me  Shrug

Yeah, I like that. In the academic article they mention "optional" power-ups. You'd have to have some logic for accounting for different values of total power-ups used I think, with a few specific cases.. eg. with only 2 power-ups there's not a lot of variance
Logged

destiny is truth pre-op
Parthon
Level 1
*


View Profile
« Reply #26 on: January 14, 2010, 11:15:27 PM »

I call these Metroguevanias. Tongue

I have one in design, but it got put in hold over the christmas break, I should start work on it again.
Logged
X3N
Level 6
*


View Profile
« Reply #27 on: January 22, 2010, 12:06:39 AM »

I call these Metroguevanias. Tongue

I have one in design, but it got put in hold over the christmas break, I should start work on it again.

Care to talk about it?
Logged

destiny is truth pre-op
Parthon
Level 1
*


View Profile
« Reply #28 on: January 26, 2010, 08:27:05 PM »

Oops, I meant to reply to this.

There's not much to say really. The design called for generating a map for the world, then using that to generate the stages.

It was really just a way to experiment with a PCG platformer in the form of a metroidvania.

Btw, Droqen's Probability 0 is an awesome PCG platformer. http://forums.tigsource.com/index.php?topic=9224.0
Logged
Parthon
Level 1
*


View Profile
« Reply #29 on: February 01, 2010, 06:36:32 AM »

I've started work on it. Smiley

I've got a simple random-step stage generation going, which is going to be quickly replaced and tinkered with.

Tomorrow is physics and game stuff, so I'll be able to jump around and shoot and hump the walls and what not. Then see where to go from there.

I might go make another thread about it.  Well, hello there!
Logged
SirNiko
Level 10
*****



View Profile
« Reply #30 on: February 01, 2010, 07:08:26 AM »

If you make another thread, be sure to link to it from this thread. I'd be interested in following your ideas, to see how you go with this.

-SirNiko
Logged
Parthon
Level 1
*


View Profile
« Reply #31 on: February 01, 2010, 07:34:30 AM »

Definately. I haven't made the other thread yet, but SS's. Coder art also.

<gone>

That was about 2 hours of work. More to come tomorrow when I have 5 hours to work on it!  Epileptic
« Last Edit: February 04, 2010, 06:14:00 AM by Parthon » Logged
LiquidAsh
Level 2
**



View Profile WWW
« Reply #32 on: February 01, 2010, 08:42:15 AM »

One of the tricky things about procedural generation in games is where it is used.  As some posts above point out, the beautiful design of levels in some games is a huge part of their attraction.  Coming up with rules that capture those interesting relationships in a generator is an order of magnitude or two harder than designing such great levels in the first place.  That makes this a formidable challenge, and a great discussion topic.

I'm working on a puzzle game that takes place in a randomly generated dungeon righ now.  Each room in the dungeon is a different puzzle, and there are powerups scattered around each level of the dungeon.  Imagine a randomly generated Puzzle-Quest world (but with different puzzles).  From my perspective, the puzzling is the main draw of the game, so the randomly generated mazes don't have too many requirements.  They need to connect the start to the end of each level, and provide power-ups and dead-end along the way.

Maybe identifying what makes some of the best metroidvania levels so great, would be a great place to start building this kind of generator from.

Logged
SirNiko
Level 10
*****



View Profile
« Reply #33 on: February 01, 2010, 08:58:40 AM »

I find procedurally generated games have two strong areas:

1. It makes for a great quick coffee break game, since you'll be playing the same 10-minute game every break, but you're always getting something different. This fits in with games like Minesweeper and Tetris in a sense. Those are the games you are competing with.

2. You can add little bits of content (new items, new monsters, new skills and interactions) over a long period of time to keep the game fresh. See Spelunky or NetHack for example. This can draw out the life of your game, and even encourage wiki-like communities to suggest new content to be integrated over time.

Which way were you planning to go with this? Maybe both ways?

-SirNiko
Logged
Parthon
Level 1
*


View Profile
« Reply #34 on: February 01, 2010, 05:11:03 PM »

What attracts me most to procedural generation is that with the right amount of work there’s infinite variation. It’s less a case of having a huge number of potential outcomes, but about how small changes and additions to the algorithms, a wider variety of levels can be generated. Larger levels can also be created without more work on the side of the designer. Instead of having to play each rock in a level, you design a procedure to place rocks and it works on all levels.

It’s hard to pin down what makes great metroidvania levels. It seems to be a combination of interesting and challenging. It’s where the monsters are in relation to platforms, along with the overall design of the area that makes them interesting. Strangely enough the overall design often comes down to the theme of the tiles, and the ‘colour’ tiles that just make the area look unique, but don’t actually affect the game. Putting that into a generator won’t be too hard, probably. Wink The placement of the platforms and structure of the level is going to be the most complicated part to get right. I have a number of ideas though that I’ll use together, including segment generation, room creation and smoothing. More fun is having an adaptable generator that changes depending on the capabilities of the player at the time, based on the power-ups they should have collected by then. The levels also become a test against making sure the play does have those power-ups, and forcing him to backtrack if he doesn’t. On top of that, it would even allow sequence breaking if the generator was being particularly nice that time.

As for long term goal, it’s definitely the second one. It will be a bit longer than a coffee-break game, something more along the lines of Nethack. The goal would be to have each generation of the game be so wildly different to each other that exploration is brought back. There won’t be any simple walkthrough guides for those that want to get all the secrets. I definitely want to avoid the ‘Oh boring, another <blah> level again.’ that often crops up in such games often.

And then I’ll document everything I do so other designers can benefit.
Logged
Parthon
Level 1
*


View Profile
« Reply #35 on: February 04, 2010, 06:15:03 AM »

I changed some art, got some nice, if gloomy, wall art going:





Still need to get better at pixel art, but it doesn't immediately make me cringe now.

The sector generator is fairly complete, next is the world generator.
Logged
Parthon
Level 1
*


View Profile
« Reply #36 on: February 04, 2010, 07:21:59 AM »

World generator start and going nicely: (Yes it took me only an hour)






The long parts are segments. What's not shown are the doors, which I have to pixel first. I'll do that tomorrow. Smiley

Then I just need the map to use the world data to make the levels and then I connect the rooms up and make the generator create platforms. That's tomorrow night's work.
Logged
st33d
Guest
« Reply #37 on: February 04, 2010, 02:48:05 PM »

I was reading the sequence breaking article on TV Tropes and laughed when I saw this on the page:

Logged
Kegluneq
Level 2
**



View Profile
« Reply #38 on: February 04, 2010, 10:00:16 PM »

I'm a little late, but here is the other place we discussed this topic:
http://forums.tigsource.com/index.php?topic=5131.msg275997#msg275997
Logged
Parthon
Level 1
*


View Profile
« Reply #39 on: February 05, 2010, 07:39:54 AM »

It's beautiful.



Tomorrow: Stuff.
Logged
Pages: 1 [2] 3 4
Print
Jump to:  

Theme orange-lt created by panic