Game Development Community

dev|Pro Game Development Curriculum

IGHTC (In-Game Huge Terrain Creator) HEAD

by Darrel Cusey · 02/16/2007 (9:20 am) · 2 comments

Download Code File

This zip file includes the patch file that can be applied to the LAST CVS version of TGE before TGE 1.5 to provide the integrated AreaManager and PatternManager classes. This is the LATEST (potentially unstable) version of the IGHTC AreaManager and PatternManager.

If you are interested, instead, in the IGHTC STABLE version, that can be found here

A sample 4x4 mission and terrain file set for this HEAD patch can be found here

After applying this patch, you will need to recompile your project. This patch file will update the VC7 project, but not the other versions. A sample mission file and terrain block file set will be included in a separate post.

I should note as well that the terrain will look "blocky" in the test terrains due to the fact that the smoothing algorithm in the PatternManager isn't very complex. However, there's plenty of room for improvement there :)

#1
02/14/2007 (1:34 pm)
Since Darrel suggested that I should try out this resource instead of the STABLE one, I took the plunge and applied it. it does work - but not if you use TLK.

It crashes in SceneLighting::TerrainProxy::light() on the call to lightVector(light);
In there, the call terrain->getNormal(pos, &pNextNormals[i]) causes troubles in AreaManager::getNormal on the last line of the function, where it calls TerrainBlock::getNormal().

In TerrainBlock::getNormal(), the following crashes:

if (gs->flags & BlockData::GridSquare::Empty)
return false;

The reason is that gs is null when the function findSquade is called with x=-256 and y=512

Trouble is, this call stems from TLK. I freely admit that I don't have a deep insight into that. While I could remove TLK, I don't really want to do that. Any clues, pointers, etc. would be appreciated, especially from people who got this to run on their TLK-enhanced 1.4 engine.



When I disable the call to lightVector(), the map loads, but it's mostly flat except for a few raised "pillars" that are roughly 50x50 meters in size. I have no holes in the terrain though. Thoughts?
#2
02/16/2007 (1:53 pm)
Update: I just patched a clean 1.4.2 TGE (and made sure that all the textures are present), but it crashes on the exact same spot: TerrainBlock::getNormal(), on the line where gs->flags is tested in an if-statement.

I think I can say, with reasonable confidence, that this resource is b0rked ATM. The patch file worked fine, mind you. Oh and I did not add worldManager.* nor layerHeights.* to the project because that does give me compile errors, obviously.

So TLK is not to blame, apparently.