Irrlict and *.max files as scrolling backgrounds

You are an experienced programmer and have a problem with the engine, shaders, or advanced effects? Here you'll get answers.
No questions about C++ programming or topics which are answered in the tutorials!
Post Reply
Berty
Posts: 2
Joined: Thu May 20, 2004 2:59 am
Location: Australia

Irrlict and *.max files as scrolling backgrounds

Post by Berty »

Hi,

I have been making some progress with my Shmup project now and have started to think about how i should do the backgrounds.

I was thinking about creating my scrolling background in 3d Studio Max by firstly creating all of the poly's etc then creating a camera and move it along the pathway that i want. I also wanted to use the seamless worlds code to help optimize loading and rendering load on the system.

So if i do this, then i will have a large file with lots of poly's as well as textures etc. Here are my questions..

1. Obviously, is this feasable?
2. Has anybody ever attempted to import a *.max file using irrlicht?
3. Any recomendations?

I want to only load sections of the file into memory as they are needed. As the player has NO control over the camera this shouldn't be that hard?

I only want to be rendering what is visible to the player

I also want to be able to encorporate some collision detection with the 3d backgrounds.
disanti
Posts: 367
Joined: Sat Jan 17, 2004 1:36 am
Location: California, US
Contact:

Post by disanti »

All I can say is, good luck. Discreet hasn't released ANY details on the .max file format. I highly doubt you will be able to do this.
________
Vaporizer review
Last edited by disanti on Tue Feb 22, 2011 8:09 am, edited 1 time in total.
Domarius
Posts: 178
Joined: Thu Mar 11, 2004 9:51 am
Location: Brisbane, QLD, Australia

Post by Domarius »

Well, this isn't the way commercial games do it, so you shouldn't either.

They make their own level data format, that consists of polygons generated when the level is compiled or loaded, and pre-built 3D files, like .3DS, .MD2, etc.

In your case, I have 2 suggestions. Both will most likley require you to make your own level editor - which may be as simple as editing a text file, or probably having a graphical interface.

SIMPLE BUT RESOURCE HUNGRY
Build your world in chunks - load a chunk before it's needed on screen, delete a chunk when it leaves the screen totaly. There's your "seemless world programming" right there in 1 sentence. Your level file could be a text file that is a list of chunks in order of appearance, and possibly their size, so the "game engine" you make, will know when to delete one, and when to load a new one.

COMPLEX BUT RESOURCE EFFICIENT
Build your world in RE-USABLE parts - same concept of how 2D games use "tiles" and re-use them to construct an entire level (eg. tiles for where water meets sand, tiles for grass, tiles for making dirt paths in any direction)

Except you will make 3D files in 3D studio, that you will peice together in your custom made level editor. And they wont' have to nessecariy be all of a uniform size, and you can place them anywhere you want. (Unlike tiles in 2D games, which have to be all of the same square dimensions, and placed on a grid.)
Disanti knows what I'm talking about, he made a level editor that works that way.

For example, if you're scrolling through a futuristic hallway, the hallway looks like metal plates and pipes repeated regularly. So you'd make one 3D model of metal plates and pipes, and have the game place them one after the other in a row. And then you want some sort of machine in the hallway, so you make a machine in 3D studio, and use your level editor to place the machine at some point in the hallway.
Your "game engine" loads the peices as needed. To do this, you might make your level in "rooms" at a time, so it works like the first example, except instead of loading one big mesh, you load lots of little ones together, with specific positions for each.

You would want to make a level editor that simply lets you place 3D mesh files at any point in 3D space, and then record the filename and position of each mesh, so they can be loaded again that way when the game runs.


BTW This is more of a "General Game Programming" topic, not Irrlicht specific.
Post Reply