Current development:

Published July 26, 2008
Advertisement
Currently, I am developing the new file format that I will create. This first prototype will only contain textured polygons, and will be used as a proof of concept. This is how the concept works:


Firstly, I create the mesh as usual in the modelling application. The mesh may be rather large and unwieldy, but this does not matter. It is not distributed with the game.

Then, my loader will load the data and sort it into a 3d grid of chunks of uniform size. Each chunk will contain an octree.

Then, I will serialise all the data in those chunks into a std::string, so there is one string per chunk. These strings will be quite large, so I may break them down depending on requirements.

Once that is done, I will create a file header and calculate where in the file each chunk of data will go. The header allows the loader to open the file, and skip to the location of the appropriate chunk. This header is written to file, followed by the strings containing the binary data for the polygon info.

On loading, the loader will be provided with a "start position". it will load all chunks into memory that are within a certain radius of that start position. It will be frequently notified of the current position of the focal point.
The physics system will then be required to create a single triangle mesh for each chunk that is in memory.

When there is a change to the position of the focus, the loader will automagically load the new chunks from disk, and disguard the old chunks. The renderer and the physics system will be notified of this change and will "forget" the chunks that went out of focus. Poof. Gone.
0 likes 0 comments

Comments

Nobody has left a comment. You can be the first!
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement
Advertisement