How to procedurally generate an infinite terrain using perlin noise
Rather than dynamically load and unload chunks of terrain just move displacement mapping of a fixed static subdivided plane.

The displacement should be made from mix of blender procedural textures (if you mix multiple clouds and musgrave textures you can get mountains, rivers, etc.)

The plane should be big enough so you can't see its borders.

And the character, camera and ground will be obviously static except of some local animations. The movement would be done with rotating and offsetting (the order is important) the displacement and texture of ground.

The resolution of the ground plane should be detailed around character and less divided to the borders. If the ground will be too low res you will see the geometry "float" over the displacement. You can see how that looks here.

If you know how normal mapping works you can generate procedural normal maps to accompany the procedural displacement and procedural textures of the terrain. This would minimize the floating.

So the ground is sorted.

Any objects the character would encounter on it's journey must be instanced and moved around. The height of such objects (to sit on terrain properly) can be rigged the similar way as a box floats on an ocean.

You could also make the displacement mapping use world coordinates and move the plane under a character, but if you will walk huge distances I would rather keep everything close to the scene origin.



Here is done dynamic loading and unloading of terrain tiles, but it uses heavy scripting and is totally out of scope of this site.



You might want to use a different engine than BGE for this kind of application. I would use BGE only for some basic arcade platformer, not for an open world project..