Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411262 Posts in 69320 Topics- by 58379 Members - Latest Member: bob1029

March 26, 2024, 05:11:08 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
  Show Posts
Pages: 1 ... 9 10 [11]
201  Developer / Technical / Re: The happy programmer room on: May 12, 2010, 08:25:22 AM
I got to experience hack mode for the first time in entirely too long last evening. As a result, I'm most of the way towards extending my map editor to support placing background objects in addition to being able to modify the map tiles themselves.
202  Developer / Design / Re: Feedback on a map on: May 11, 2010, 10:23:08 AM
Hempuli: thanks! Yes, that map was procedurally-generated. It happened to turn out rather nicely, which is why it ended up on the front page. Smiley If you're curious, here's broadly how map generation works:

 * The universe is partitioned into different Zones (like a jungle, a hot zone, a lab, etc.), each of which is further divided up into Regions (like grassy hills, or a boiler room) which map directly to tilesets. Zones and Regions have configurable entries for how high they should be placed vertically and how strongly they should be weighted (thus, the jungle zone tends to have a higher altitude than the hot zone, and within the hot zone, technological tiles are slightly more common than rocky caves). You can see the partitioning in the fill tiles of the map.
 * A tree is overlaid on the universe, generated breadth-first and ensuring that no limbs come too close to other limbs. Once its generation is complete, a few loop branches are added to connect nodes that are spatially close but have a large node-node distance in the graph. Each branch in the tree is associated with a different tunnel type (with different regions having different available tunnel types, like straight, staircase, zigzag, maze, room, etc.).
 * To generate tunnels, the branches of the tree are used as the basis of a spacefilling cellular automaton. This automaton expands cells outwards until they run out of life or encounter a cell owned by a different branch of the tree. This breaks the map up into a bunch of disconnected rooms that looks like this. Non-leaf nodes in the tree then create open space around them to connect the rooms together.
 * The different tunnel types kick in to personalize each tunnel. Staircase tunnels fill themselves in, mazes are generated, etc. Note that some tunnel types also have different behavior when seeding the spacefilling automaton (for example, the room type uses unusually large seed values so that its cells can expand further before naturally expiring).
 * A Marching Squares algorithm walks along the walls, looking for places where it can fit in platforms. This is intended to ensure that the map is fully accessible. A variety of different platform placement systems are used depending on the topography and the tunnel type (for example, a patterned platform placement is used for straight vertical tunnels).
 * Finally, each cell in the map is examined to determine which kind of tile should be placed on it. Placement is based on the occupancy of its neighbors, with up to twenty different tile types being available. At this time, background scenery objects can attach themselves to the terrain (e.g. trees in the jungle, which can attach to any flat-topped tile, have a chance of being placed each time they find appropriate terrain).

Nihilocrat: I agree with you that procedurally-generated maps will give more replayability than handmade maps. That's why I started out with procedural generation, and made a lot of progress in that area, I might add. However, it's looking like it'll be a fairly long time before I can get an interesting playable game with procedural map generation, hence the shift, for now, towards handmade maps. I'd always intended to support handmade maps, anyway; they lend themselves to an "artistic vision" more readily, in my opinion. My thinking is that by doing this I can find out what items are missing in my overall engine (e.g. I know I'm missing support for background images; currently all I have is a black background over which are overlaid various scenery items. My support for creature placement is also very crude right now, and there's no respawning). Those items can then later be integrated into the procedural mapmaker.

Additionally, I figure that if I can get a small, but complete, game out there, then that will create more interest in the game, and maybe I'll get some people interested in contributing. Smiley

I've thought about having set pieces that act as locked doors, like you suggested; my difficulty there is that I don't really want the game to be a bunch of corridors linking various set pieces together. There's also the difficulty of orientation: you can't put the same lock into a horizontal corridor that you can into a vertical corridor. The problem of course if that if I reject set pieces as locks, then I have to come up with a way, for each key item, to write a function to procedurally generate locks for that item. This is decidedly nontrivial.
203  Developer / Design / Feedback on a map on: May 10, 2010, 08:52:16 PM
I've been working on a 2D exploration/platforming game in the Metroid/Castlevania style for awhile now, with the goal of having procedurally-generated levels. Progress on that front proceeded nicely until I got to the point where I had to figure out how to enforce needing a powerup to bypass some obstacle. Then I got a job and the entire project stalled.

Now I'm thinking of returning to the project and setting the whole procedural mapgen aspect to the side for a bit. I have most of the engine coded up, so why not try for a hand-made map instead? So I doodled this map. I'd like some feedback on the overall design. Note that it's not remotely drawn to scale, so here's the intended player path, as I see it:

The player lands on the far left side, and proceeds to the right. They encounter the moat, and are unable to jump high enough to cross it. Exploring more, they find the cave system underneath their landing zone (or perhaps they found this before the moat; either way), and find the high-jump upgrade. With this they can cross the moat and enter the base.

But whoops! A trapdoor opens beneath them, dropping them down into the abyss. They quickly find that they can't jump high enough to go upwards, and one of the passages they can reach is blocked by a solid barrier. They find a nearby room containing a boss and an upgrade that lets them break the barrier.

This lets them explore more of the abyssal area. To the upper right they find a room with magma pooled in the floor and a ledge they can't reach. Going across the shaft they originally fell down, they find a massive underground pool, which they can't navigate very well. However, they can make it to a room containing an upgrade that lets them move freely in water! And while they can't make it through the locked door at the bottom of the lake, they can go upwards into the moat they crossed over earlier on. They find a secret passage in that moat that they can now reach, letting them go back into the base.

This time they're able to explore more of the base. They fight their way across it, beating up some machinery and goons. Eventually they find the boiler room, which includes an armor upgrade that protects them from heat, and an elevator leading down into the abyss again. Now they can go through that hot room they found earlier, and down into a long corridor running beneath the entire sector. They fight their way through this, and eventually face down a boss to get some pitons. With these, they can climb along walls and ceilings. The door in the bottom of the lake unlocks, and they can now make it across the trapdoor in the base that defeated them so long ago.

From here, about all they can do is go up, climbing the mountain the base is built into. They proceed from the base into the aerie, an open, mountainous area with some tricky platforming. At the top, they face down a boss for a jetpack, which lets them fly! Now they have to traverse down a tunnel through the mountain, putting their new movement capabilities to the test to traverse several difficult rooms. This leads them back down into the base yet again, where they can fight the final boss of the game. Naturally he's a load-bearing boss, and the base starts collapsing, so the player then has to make their way out of the base and back to the landing zone so they can escape.

Does this seem reasonable? I've including a few nooks and crannies to hide non-essential powerups, and the actual maps should include more (in general, the maps are going to get stretched out and have more filler inserted; there's not really much actual exploration to be done as it stands currently). I don't want the map to be too small, but similarly it can't get too big or the project becomes unfeasible. As it stands I need to make tilesets and scenery for the following areas:

    * Landing zone
    * Cave beneath landing zone
    * Moat and watery abyss
    * Base
    * Magma abyss
    * Aerie outside
    * Aerie caves (possibly the same as landing zone caves)

That seems like a lot to me! Adding more zones on top of that will just make things harder. I've whipped up some simple tiles using Blender, and a function to import PNGs as if each pixel were one tile, which gets me something like this -- pretty clearly, I'll need to break up the obvious tiling of the terrain at some point.

Any feedback would be appreciated!
Pages: 1 ... 9 10 [11]
Theme orange-lt created by panic