I’ve been working on some of the scene management features for Been There Game. Mostly, I’ve been working on terrain optimization. I currently have a ROAM algorithm that works very well. It renders a one square mile chunk of land with pretty decent detail. However, I want the game to have a HUGE environment. With modern hardware, I don’t think ROAM is the best approach anymore. A lot of CPU is used in order to vary the detail of the terrain map based on the viewer’s location. Today’s hardware can handle large lists of polygons a lot better than before. I really hate to waste all of these clock cycles, when the GPU can actually handle it. Also, it’s not very easy to stitch together multiple chunks of adaptive terrain into a seamless landscape.
I plan on slicing the world up into a grid of terrain blocks. These blocks will be loaded and unloaded as needed, based on the viewer’s current position. All of the scene objects associated with the land blocks will be loaded and unloaded automatically as well. This will theoretically allow me to make the world as large as I desire! The plan is to start out with a map that is roughly 400 square miles. There is no way I could have done this easily with ROAM!
This is fun stuff, I hope to have it ready soon!