Ok. I can program my game in two ways. I can program every polygon and load each texture (grass, wood, stone, water) individually to represent the structures in a scene. Alternatively, I can represent each scene as a single bitmap and simply load this “BIG” texture to represent a game scene.
Doing it the first way would make the game much smaller, maybe 60 megabytes total. Doing it the second way, makes the game much bigger (600 megabytes), but is a lot easier and faster to do.
Exactly what’s your question?
What do you think is better to do? Should I render an entire scene using one bitmap that contains my entire scene OR should I load several bitmaps containing different textures and apply each texture to the appropriate polygon(this method requires me to program every polygon individually and apply each bitmap texture to each of the polygons. Polygons are drawn to represent the front of a house, grass, a castle ect…)?
What genre is that game? For following text I assume that it is point & click adventure or Comandos/Diablo like isometric RPG. If the size is acceptable depends on method used to distribute the game (CD or download). With the the prerendered images your game may look better so unless the size is issue you may wish to go that route. Note that there is card dependent limit on size of texture in OGL so you have to split really big textures into several textures.
This game is similar to A zelda III: Link to the past, or FINAL FANTASY II. Where 3d objects can be represented 2 dimensinally. Here is a pic…www.geocities.com/zadeh1979/grass
*NOTE THat that this bmp contains a compilation of textures, and It is possible for me to simply load it onto a QUAD to represent the scene. This method is far more efficient than having to specify the polyogons required for the house and loading the two textures needed onto those polygons(Grass and house textures)
God help me, I love those games. Zelda3 really brings back some memories. I’ve never had a stab at a game like this. It seems like it would be a blast to work on one.
Are you planning on using any kind of lighting or other effects that would depend on geometry at all?
How are Diablo and the like created? Is that geometry or just 2D artwork. Diablo2 had some parallax effects going, so I can only assume that’s geometry at work, or perhaps some weird layering curmudgeon.
It does seem as though one could simply stream textures in a never ending parade of 2D artwork, quite efficiently.
Use several little textures and use repeat parameters. And use ‘smart’ texture coordinates on quads and sub textures. It will be much much much smaller like that…
… if I understood correctly what you meant.
What? The image isn’t loading?
ACTUALLY, come to think of it, I should use JPEGS BECAUSE They seem to be about 8-10 times smaller than BITMAPS. UNfortuantely, I need to find a JPEG loader
What do you mean from 600 MB? Do you want to load 600 mega bytes in the video texture memory?
Remember that graphics cards have a limited texture memory. You can not load a very big texture at once. It’s better that you use from small textures .You can load some textures when the user can see them and unload textures when the user don’t see them.As an example assume we have 2 rooms. Each of them have many textures.When we move to room 1 we should load the texture data of room 1 to the video memory.In this case we free the associated texture data of room 2. Note that the texture data of room2 are still in the client memory(RAM).
//in your init function Load all texture data in the clieant memory(RAM),
//In the render function
//We are in room 1
if( !ROOM1 )
glDeleteTextures( 1, &room2 );
glGenTextures( 1, &room1 );
glBindTexture( GL_TEXTURE_2D, room1 );
glTexImage2D() // Copy texture data of room 1 to the video memory
ROOM1 = true;
//Draw room 1
//We are in room 2
glDeleteTextures( 1, &room1 );
glGenTextures( 1, &room2 );
glBindTexture( GL_TEXTURE_2D, room2 );
glTexImage2D() // Copy texture data of room 2 to the video memory
ROOM2 = true;
//In your clear function clear all the data from video memory and client memory.
Some games like Silent Hill 4 use from a black scene -As an example, using a volumetric fog - between the rooms to load/unload data.
You should always consider the limitations.
Hello, due to the BMP size i created a JPEG version and hosted it on imageshack.us
feel free to substitue the .bmp
better for non xDSL connection and board overload
Now i can see the picture of your game.It’s better that you use from the GL_REPEAT symbolic constant to make your scene. DO NOT LOAD A BIG TEXTURE.