Hot answers tagged levels
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 ...
42
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 ...
21
The term you're looking for is signal processing/analysis There are lots of techniques involved but the fundamental one that those games make use of is Beat Detection. This tries to calculate the tempo of the song and where the beats in a measure are and hence place the obstacles the appropriate distance apart to coincide with each beat.
The way that the ...
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 ...
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 ...
11
There are many terms for "level" nowadays, depending on the genre of the game and also the preference of its designer(s).
Level typically means a secluded, in itself complete portion of the game, mostly independent of the rest; when I hear level, I think of 2D platformers exclusively.
For the first or third person shooter genre, levels are more typically ...
10
my name's Matthias Buehler, i am content manager at procedural, inc.
to get an idea about the current way to implement the cityengine in a game pipeline, check out the following show case:
http://www.procedural.com/showcase/showcases/destroyed-city.html
this is a game which was created from scratch by a few students. the guy responsible for the level ...
9
JSON is good, but YAML is better. :) http://www.yaml.org/ and http://code.google.com/p/yaml-cpp/ for one of the nicer-to-use implementations.
YAML is a superset of JSON that adds support for a few nice features, most notably:
Binary nodes. This is great for serializing the kind of data you might be dealing with for level descriptions. JSON requires you to ...
8
Give the player the information they need to succeed. If the solution to a level relies on something obscure or some new ability then teach the player about it. There doesn't have to be some specific tutorial where you spell it out, rather you can teach the player using cut scenes or making small puzzles at the start of the level that introduce new concepts ...
8
One way to do this is to add "markers" in the scene geometry file itself. You would use a specific naming convention on these markers (which are just pieces of geometry) to represent various things.
For example:
Add a sphere and give it the name "player_spawn_0" to represent the starting location of the player. Perhaps more helpful would be to add the ...
8
There's no standard, nor is there actually any reason for there to be. People seem to like the exponential growth as it makes them feel like they're getting more powerful and being faced with proportionately more challenge each time, but in fact that is only true if the way you collect points doesn't also change proportionately as well. If the ...
7
Try Gleed. From its site:
GLEED2D (Generic LEvel EDitor 2D) is a general purpose, non tile-based Level Editor for 2D games of any genre that allows arbitrary placement of textures and other items in 2D space. Levels are saved in XML format. Custom Properties can be added to the items in order to represent game-specific data/events/associations between ...
6
The probably best reference to rendering grass: Boulanger.
Also, since geometry shader was mentioned: this techdemo has slightly inferior quality compared to K. Boulanger's technique, but it is stunning in another way since it draws crazy amounts of grass blades and does the culling via the geometry shader and transform feedback, which is a pretty cool ...
6
For the Pirate Poppers puzzle mode, I generated the levels randomly based on some parameters related to difficulty.
Difficulty is always difficult to measure objectively, but in this case there were some variables that were good indicators (chain length, number of different colors, nesting level of the combos) so I was able to generate pretty good puzzles ...
6
Creating chunks are really a good idea but you need to use it wisely. there are many big titles that use the same idea to give the illusion of very large world. for example you I can mention Spore or Oblivion.
First let's talk about spore since in it's galactic phase you can easily see how the things work:
there are many planets in the galaxy but not all ...
6
Check out the article linked to below, it might be what you're looking for...
http://javilop.com/gamedev/c-game-programming-tutorial-non-tile-based-arbitrary-positioned-entity-engine-editor-like-in-braid-or-aquaria-games/
Not only does this approach allow arbitrary x, y locations for objects, it also lets you have depth. Depth lets you do parallax ...
6
There is another option. The player and the level are both members of the game object.
However, I think the most common practice is to make the player an object inside the level. This has numerous benefits. For example, the level will process collisions between objects. Adding all the objects into the same level pool allows you to reuse the collision code ...
5
It's been a while since the last update, but there's Gleed2D. I've used it before and it's pretty straightforward. Basically set up your layers, drag and drop sprites into the stage, and transform them into the correct place. Then export to XML and read on your game.
5
Gleed 2D is the most popular tool. It has recently been rewritten and can be found on GitHub.
The output of the tool is a simple XML file. If you're using XNA, there's a small component that'll turn the XML into an object graph. There's versions for Windows, XBox, and Windows Phone.
The new version contains lighting and behaviours:
4
The implementation of the concept of level varies quite a lot, but two common techniques come to mind.
Most open games, ones where levels/progress are merely an internal state of the player, the normal implementation is to have the game assets catch up with the player state (so if your level starts out "in the docks", your game starts up by putting you ...
4
I'm not sure what is considered the best approach, but one option would be to use instanced geometry - you provide the GPU with a 3d model and a list of places/orientations where you'd like it drawn (preferable in the form of a concatenated matrix), and the GPU will handle the rest via a custom vertex shader.
Basically, you create two vertex buffers: one ...
4
Here is a great seven part tutorial series on this topic by Badlogic Games. They cover everything from the basics to implementation.
http://www.badlogicgames.com/wordpress/?cat=18
They try to mimic the Audiosurf algorithme with code and all.
4
If your level classes have a common Base class you can just create a pointers to it:
class Level {
virtual void func1()
//...
virtual void funcN()
}
class Level1: public Level {
virtual void func1()
//...
virtual void funcN()
}
class Level2: public Level {
virtual void func1()
//...
virtual void funcN()
}
...
4
I can give more insights on this since I worked on it. We were indeed using a level editor similar to what's described in Tim Holt's answers: levels are built in 3D but all objects are flat, and the projection is orthographic.
But there is more than "a set of 2D sprites". The way UBIart worked at that time (I'm sure it evolved quite a lot today with the ...
4
There's certainly no "right" way to approach this problem, but there are better ways based on software engineering guidelines and principles. From what you've described, I'd approach the problem this way:
A level contains a set of agent objects that exist within the level. Agents could be any kind of character or other entity, player-controlled or not.
The ...
3
One way to do this would be to base the spawn not on time but on horizontal distance traveled (assuming sidescrolling). You can store your enemy waves in a queue with a trigger distance; when your player's distance traveled is greater than the trigger distance of the object at the front of the queue, pop it from the queue and spawn it.
This solution would ...
3
You want to use a map editor, such as Tiled.
EDIT: You can save it as an image if you really want, but that means you must have a rectangular map. What if you want an irregular one?
Also, you are then making it much harder to have an editor spit out the level code for you. I would advise against it, personally. Especially if your image is going to be many ...
3
The Tools
What you use to create levels -- and assets, in general -- for your game will vary wildly depending on the type of game you are making and the technology you are making it with. Sometimes the most efficient thing to do is leverage tools that other people have written, such as the aforementioned mappy. If your levels are simplistic enough you might ...
3
If you haven't already read it, I'd recommend reading this, gives some ideas of how non-tile-based 2D can be done very effectively:
http://www.davidhellman.net/blog/the-art-of-braid-index/
You could also take a look at the Aquaria source code, and see if its editor is adaptable to your needs (that used a mix of tiles and arbitrary object placement)
I've ...
Only top voted, non community-wiki answers of a minimum length are eligible