Tag Info

Hot answers tagged

49

Make use of "arenas"--confined spaces where the player must solve some puzzle, fight some enemy, etc to move on. This is often referred to as "gating" the player, ie barring their progress until they have completed their task. This helps to create a sense of accomplishment when the player is allowed to continue, and makes for easy save/retry loops. The ...


43

Players never look up -- Avoid putting enemies or solutions to problems above the top of the screen when player is looking straight out. Unless, of course, you've taught the player that it's necessary to do so (i.e. Portal). Use lighting to highlight important features or the way to go. Players are very receptive to going down a path if there's a light in ...


43

I made a picture to sum it up. Basically, the difference between both types of maps has mostly to do with the angle formed between each axis which results in one appearing to be seen from a topdown point of view, while the other appears to be seen from an angle: It is also worth noticing the visual difference between an isometric projection and ...


43

Among the many other related questions on the site, there's an often linked article for map generation: Polygonal Map Generation for Games you can glean some good strategies from that article, but it can't really be used as is. While not a tutorial, there's an article on how Dwarf fortress world maps are generated. Basically you generate multiple layers of ...


32

Removing Islands I've done this sort of thing before in one of my games. To get rid of outer islands, the process was basically: First there must be a guarantee the center of the map will always belong to the main land, and each pixel starts out either as "Land" or "Water" (i.e. different colors). Then do a four direction flood fill starting from the ...


27

Don't make a bunch of "jump" puzzles. There is nothing more frustrating than having to do the same jump about ten times until you get it perfectly right (or you have to redo previous jumps because you missed the Xth jump and have to start over).


22

Your question leads you into the field of procedural content generation. Tile-based world generation derived from continuous/analog methods By continuous, I means something that is not tiles, something that is analog, an example being a vectorised map. You can use any continuous technique for generation, and then quantise it. For example generate a high ...


21

Amit Patel, a user of this site, has created a wonderful resource of information about random world generation that will certainly be of use to you. Further there are some great questions/answers about procedural generation on this site. Road / river generation on 2d grid map Procedural world generation oriented on gameplay features How can I generate ...


20

No water levels please. You can generalize this to a few good tips: Don't make the levels frustrating -- Don't make the player needlessly backtrack around the level. Don't make the level dependent on some split second timing to get right (and screwed if you don't). Play through the level a few times. Get others to play through it as well. Make sure ...


20

First off, estimate your map size. Don't just assume that a "big world" is not going to fit in memory. Nowadays, a map taking upwards of 10 mb in memory is absolutely acceptable, and you can stuff a LOT in 10 mb in a simple tile-based 2D world. If you have a really large world, the most robust solution is indeed use map chunks. Split your world into ...


20

I agree with eBusiness. It depends on the size and how you want to edit it. Estimate the byte size of your map in a reasonably compact representation. Also decide which parts of the map can change as the game plays. Those parts that don't change can be loaded and don't have to be saved. If the estimated size is small, just store everything in memory. It's ...


20

I have been able to come up with a few reasons myself, but I'd really like to hear more. Horizontal layout matches the layout of the keyboard. You could use WEADZX for movement, similar to WASD on square grids. On the other hand, I have also found suggestions that QWEASD is a natural fit for vertical hexes. Horizontal hexes seem to be better suited for ...


18

While the other answers here are really good for generating the kinds of static landscapes that would work for this specific need. There are other methods that people coming across this question might be looking for if they want to create landscapes that change over time or appear much more realistic you can follow this technique. Unlike the other answers ...


17

Build your art in modular pieces that can be reused throughout the level (or multiple levels) Create "Hero" or detail pieces that really stand out and can act as a point of reference for the player. Use dirtmaps/detail maps that can overlay your modular pieces to break up any tiling effects. Be conscious of your far plane and draw distance. Find ways to ...


17

There are two standard ways of doing this. Break up your non-standard tile sizes into standard tile sizes. So those strips of walls become a "stack" of square tiles that you just know to place together in your level editor. Games like the early Final Fantasy games worked this way. Let any tile piece be taller than your standard tile height. Align tiles ...


17

By playing it! Whether a game world is too big or small depends on a countless number of factors, including: How big the player is How fast the player moves How many other characters there are Whether the game is multiplayer The hardware capabilities of the target platform Your target audience How the save mechanism works (can I pick up where I left off, ...


17

You could use an algorithm that checks near blocks, and varies the probability depending on what is there - but I think it's largely the wrong approach. What you want to be looking at is fractal noise types - in this case, perlin or simplex noise. If you generate noise, you'll get values from -1 to 1. http://en.wikipedia.org/wiki/Perlin_noise You can then ...


17

Back when I experimented with this type of thing (late 1990s), I read some papers and books to learn about water flow, but I didn't keep a record of which ones I looked at. I ended up doing my own thing because I wanted to handle erosion. I wanted rivers to produce canyons and floodplains. I wanted dam reservoirs to fill up with sediment. I wanted rivers to ...


17

You should use the D* algorithm, which is designed for this exact scenario. Specifically, the D* Lite implementation is the most efficient and simple variant.


16

Create a custom map format for your game. It's easier than you might think. Just use the BinaryWriter class. First write the header in a few ints or uints. Information to include in the header: The magic string / magic number of you file format. The start/end/size of the chunks described in this file and also (and here comes the performance critical part ...


16

I travelled in a lot of "hot" countries in the 10 last years and each time I went to elevated areas it was cold or very cold even when I was close to the equator. In fact elevated areas are semi-arid to arid. Vegetation is small (except some special species like cactus) and burned (by sun and cold). Most of the time, there is very little snow except at ...


16

Layers are needed not only the most basic use of a tile map, but also allow more artistic expression and play features. Layers define the draw order of the sprites used in your world. They're simply a way to say, "Draw sprite X after sprite Y, so that sprite X will appear on top of sprite Y". They're typically generalized into layers so you don't need to ...


15

You can generate the optimal path using A*, then distort it with midpoint displacement. This will ensure your endpoints are met and allow you to control the randomness to a great degree. For example, I would not randomize roads as much as rivers. Whatever intelligence is building roads typically attempts to be optimal about it. Take care to ensure that ...


14

Valve's games with developer commentary (particularly: Half Life 2: Lost Coast, Episode 1 and Episode 2, Team Fortress 2 and Portal) are well worth checking out for some good tips on level design. (L4D also has commentry, but I can't remember if it had much about level design in it.)


14

Sounds like you're leaning toward horizontal as having more advantage. For what it's worth, bees agree with you when they build their honeycombs: The axes of honeycomb cells are always quasi-horizontal, and the nonangled rows of honeycomb cells are always horizontally (not vertically) aligned. Thus, each cell has two vertical walls, with ...


12

First off, let me say that 2D RPGs are near and dear to my heart and working with old DX7 VB6 MORPG engines (don't laugh, it was 8 years ago, now :-) ) is what first got me interested in game development. More recently, I started converting a game I worked on in one of those engines to use XNA. That said, my recommendation is that you use a tile-based ...


12

Some intuition: Step1: Randomize points-each time taking a step forward on the x-axis Step2: Imagine segments(lines) between these points, add new points in the middle of each one This is how it looks now without the segments: Step3: Draw bezier from red point to red point, using the original point as control. Step 4: Randomize new control point ...


12

I would go with vertical layout if you are using any sort of bird's eye perspective, as in the image above. Why? Because all walls will be visible. If you use horizontal layout, and you have walls that run along the vertical lines, you will not be able to make out details on them very well (such as doors or gates). Furthermore, if you are using the ...


11

I ran into a similar problem and decided to create my own structure to handle the data. It's based loosely on a quadtree, but has infinite (at least as big as an Int) expandability in all directions. It was designed to handle grid-based data which expanded from a central point, much like Minecraft does now. It is space efficient in memory, and very fast. ...



Only top voted, non community-wiki answers of a minimum length are eligible