Gaming
 

Landscape

From Neverend

Landscape is dynamically alterable. This is done by having "base blocks" of land that are culled together, and given slight variations in shape and texture. These blocks are simplistic to the server and client, with coordinates and a few stats for variations in size and texture. Similar blocks form a model continuity with each other, so that blocks arranged as a pyramid will have the continuity of a sloped hill, while blocks side by side will have the continuity of a natural land wall. Blocks also have attributes to determine the type of land they represent- dirt, gravel, stone, beach, etc.

These blocks have an overlay that covers them, a sort of textured blanket. Since placing a solid plane over a pyramid of blocks would look too flat, random variations in the "texture blanket" are made to show lumps and crevices in the land, instead of a flat polygon surface.

Landscape is prefetched to the client, and cached. The general vicinity of the player will cached within a generous number of units, and rechecked for changes on the fly. As a player walks from one place to another, caching will be in effect for the diameter around the player's origin, so that walking or travelling will always leave a generous buffer space for travel in any direction. In the case of extreme lag, the player would find the edge of the perimeter, and encounter "unloaded" space, which is to be avoided. Caching should detect simple landscape and structure blocks first, then details including type and texture.

To the server, all things are simple coordinates with attributes. Landscape and structures are represented as blocks, while players and monsters are compasses. Visual effects are done client side, but all clients must see the same data in the same way. Visual animations and effects must be in synch between all clients.