programming game levels

Started by
6 comments, last by blueshogun96 11 years, 1 month ago

hi guys ,

I am programming a 2-d game in c++ using opengl gfx . the game I am developing will contain a lot levels to be precise maps . can anyone advise me some nice way of creating them ? One thing I thought was to put all the levels information in one class (i.e. where to put walls or doors) then pass it to class where the evironment will be created . or can we use Blender to create the maps ? I would love to hear your thoughts ....

thank you.

Advertisement

Break up your game into multiple classes

Door Class

Wall Class

Environment Class

Game Class

The reason why this would work is because it is a good object oriented principle to know and it will save you a lot of headaches.

You can easily remove and add object of a particular class much more easily making your game more flexible.

This principle will also applied to any other game object of your game like graphical effects.

I don't know what type of 2D game you're creating, but for level design, I'd recommend creating a level editor, if you haven't already. First you need a clear definition and a list of what your game's levels will contain, then create your tool to save level data defining where walls, doors, enemy respawn points, whatever, into a scripting file like .xml or a custom format. Using your own level editor would make your life much easier. This way, you can put the relevant data in the right places upon load time. smile.png

Shogun

I don't know what type of 2D game you're creating, but for level design, I'd recommend creating a level editor, if you haven't already. First you need a clear definition and a list of what your game's levels will contain, then create your tool to save level data defining where walls, doors, enemy respawn points, whatever, into a scripting file like .xml or a custom format. Using your own level editor would make your life much easier. This way, you can put the relevant data in the right places upon load time. smile.png

Shogun

agreed. also, potentially, for a 2D game, creating a level editor might be a learning experience or help give ideas for how to structure the game proper.

a few questions to try to answer in advance:
does it use tiles or polygons? what sorts of things can go on in the world? will it be side-view, top-down, or isometric? how will things like enemies spawn? ...

I don't know what type of 2D game you're creating, but for level design, I'd recommend creating a level editor, if you haven't already. First you need a clear definition and a list of what your game's levels will contain, then create your tool to save level data defining where walls, doors, enemy respawn points, whatever, into a scripting file like .xml or a custom format. Using your own level editor would make your life much easier. This way, you can put the relevant data in the right places upon load time. smile.png

Shogun

agreed. also, potentially, for a 2D game, creating a level editor might be a learning experience or help give ideas for how to structure the game proper.

Indeed. Writing a level editor is great for having a sandbox to build your engine. I wish I would have learned to do this BEFORE writing my game's engine to use in the actual game. This way, your draw, sound and event handling code can be figured out before adding it to the game. My primary game project suffers from much bad programming practice because I didn't apply this beforehand.

OP: If you do create a level editor, I recommend letting it share code from your game engine instead of writing totally separate code just for it.

Shogun

P: If you do create a level editor, I recommend letting it share code from your game engine instead of writing totally separate code just for it.

Agreed, shared code is a very good idea.

You can also sometimes even build the editor as part of the game (lots of shared code!), depending on the project. However it takes a bit of discipline / modularization to stop the editor code interfering / complicating the game code, which is the trade off against the ease of 'getting something working'.

In my current 2d project I just change a #define and rebuild and it builds as the editor - switches off the game logic, adds menus and functionality for moving objects around on maps / changing terrain, loading / saving maps etc.

This isn't always feasible though. 3d levels in particular are often made poly by poly, rather than by just moving pre-built assets around. This is a much more complex editing task - and for this kind of thing level builders are more likely to use 3rd party software, like 3d studio max, maya, brush-based world editors etc, perhaps with plugins / conventions for adding game specific stuff. They may also do things like import the 3d levels into another editor (for adding more gameplay elements, pre-processing etc) prior to use in the game.

But when it comes down to it, the level itself is data, rather than 'part of the program', so it's usually (99.9% of the time) best to load it from a separate file rather than try and hard code it into the program itself.

thanks guys for your suggestion ..

Break up your game into multiple classes

Door Class

Wall Class

Environment Class

Game Class

The reason why this would work is because it is a good object oriented principle to know and it will save you a lot of headaches.

You can easily remove and add object of a particular class much more easily making your game more flexible.

This principle will also applied to any other game object of your game like graphical effects.

I am creating this using OOP approach ... my main concern was how to create and handle multiple maps

I don't know what type of 2D game you're creating, but for level design, I'd recommend creating a level editor, if you haven't already. First you need a clear definition and a list of what your game's levels will contain, then create your tool to save level data defining where walls, doors, enemy respawn points, whatever, into a scripting file like .xml or a custom format. Using your own level editor would make your life much easier. This way, you can put the relevant data in the right places upon load time. smile.png

Shogun

I don't know what type of 2D game you're creating, but for level design, I'd recommend creating a level editor, if you haven't already. First you need a clear definition and a list of what your game's levels will contain, then create your tool to save level data defining where walls, doors, enemy respawn points, whatever, into a scripting file like .xml or a custom format. Using your own level editor would make your life much easier. This way, you can put the relevant data in the right places upon load time. smile.png

Shogun

agreed. also, potentially, for a 2D game, creating a level editor might be a learning experience or help give ideas for how to structure the game proper.

a few questions to try to answer in advance:
does it use tiles or polygons? what sorts of things can go on in the world? will it be side-view, top-down, or isometric? how will things like enemies spawn? ...

blueshogun96 , I really liked your idea of creating a level editor but could everything be done within 2 months .

well the game will contain 3d objects viewed from top and have orthographic projection and the movement will be in 2d smile.png sorry , my mind gets mess up when I think whether i call it 3d or 2d game . it but yeah that's the type of game i am creating ryt know .

Well, if you're using "3D in 2D", a level editor wouldn't hurt either, but it's up to you. I just like the idea of being able to fully design and layout my maps instead of hard coding things. smile.png

You can go ahead and use blender if you are comfortable with it. I recommend it and have been learning to use it myself.

Shogun

This topic is closed to new replies.

Advertisement