A lot of progress has been made when it comes to rendering the exterior world of Daggerfall.
DaggerXL now supports the seamless world map. The way it works is that the game tracks which map cell the player is in (a map cell is the same size as a City block, so for example Daggerfall is 8×8 cells) and the player’s coordinates within that cell. DaggerXL reads the location data from disk and stores 2 different hashes which are keyed from the map tile coordinates, one stores the location data – the location name, number of blocks, name of the blocks, etc. and then one stores the loaded block data itself (which I call “tiles”). As the player moves and changes tiles, the relative coordinates are adjusted accordingly and then the tile locations are updated. New tiles are loaded or unloaded as necessary based on the location map, and neighboring tiles are rendered or collided against based on the tile map (which has loaded tiles only). In this way tiles are loaded from location data as needed, the coordinate system is tile relative so there are no precision issues regardless of the size of the world, collision only occurs on neighboring tiles and terrain is rendered everywhere where no tile exists (or is not loaded yet). So I can travel around the Daggerfall region and go to any location. All the cities are showing up as well as ruined castles, temples, graveyards, dungeon entrances and more.
Secondary objects and flats are now being rendered within city blocks. Things like wagons, horses, signs, fountains and other decorations. In addition, during night times hours, lighting is working on the appropriate objects. Unlike, Daggerfall however, the lighting effects the ground and terrain. In addition, even though the environment gets dark around the player at night – just like Daggerfall – lights can be seen from a long distance.
Finally foliage is also supported, as seen throughout the cities. Exterior terrain tiles also get random foliage, where 1 tile away from a location the density is 30% of normal (to ease in from no extra foliage to full forests). The random seed is tied to the actual tile location in the world, not the relative location, so you’ll also see the same plants in an area even though it’s random. Of course this is just a quick first pass – the demo following this one will have better terrain and foliage distribution.
Finally the screenshots:
Nighttime lighting (before foliage was implemented):
Foilage, flats and objects:
If you look closely, you can see a town in the distance through the trees…