Overlord (Terrain System)

Community Forums/Showcase/Overlord (Terrain System)

Banshee(Posted 2006) [#1]
Hi

I've been playing with landscapes again, this is my latest one:








Cursors to move
F1-F6 Select Map

First entry to a new map creates cache textures so returning to a map is much faster.

http://www.bansheestudios.com/overlord.rar


puki(Posted 2006) [#2]
I can probably tidy this up - email me the code.


OrcSlayer(Posted 2006) [#3]
Puki could you possibly be a little subtler in your attempts to steal other peoples work? :-P


Zethrax(Posted 2006) [#4]
I'm getting an error when the program starts.

The screen shows 'Base texture 0/64' and the error window shows 'JPG Save Failed GFX\Cache\600.jpg'.


impixi(Posted 2006) [#5]
This is really impressive, Rebecca. What are your plans for this?

Two notes:

1. On both my test systems, I noticed some stuttering when moving around. Things are smooth for a few seconds, then stuttering, then smooth again, repeated. Systems' specs: Notebook computer - Centrino 1600, 512MB DDR2, 128MB ATI Radeon Mobilty X700. Desktop computer - Athlon 64 3200, 1024MB DDR, 256MB GDDR3 ATI X800, Windows XP Pro SP2.

2. The distribution RAR is missing an empty 'cache' directory under the 'GFX' directory. I received a file creation error until I manually created the 'cache' directory.

I've been working on a similiar landscape generation engine for use in a 'casual RPG'. I'm a little envious: Your terrain texturing technique is far superior to mine. Any tips?


@Bill: You need to create an empty directory called 'cache' in the GFX directory.


Banshee(Posted 2006) [#6]
Thank you for the heads up impixi i'm uploading a fixed archive now :).

On the stuttering, this is the grass system and would be because the processor is a touch on the light side for the amount of grass i'm putting in on some of the maps. I have made it so mid-to-slow systems can run less grass but I havn't put a front end in to select it at this time.

In regards to the how, well there's two big tips: Firstly if you are making a big map a single texture just isn't detailed enough, also a big texture file takes longer to move over the computer's bus every time it is needed unless you store it on vram which wastes a lot of resources. It's better to use lots of smaller files which is why my landscape is comprised of 8x8 meshes, rather than a single mesh, each with a 512^2 texture.

The texture is assembled from a very DBP matrix style source texture file but each pixel is actually comprised of a cross-fade of two textures based upon altitude. Also I apply a different texture when the angle of slope is too great giving the system cliffs.

The downside the current system has is the transitions can appear a bit cubic as for speed I have used the vertice height, but there the texture resolution has more texture pixels than vertices and this gives it a slightly cubic look, smoothing this out would require 4 vertice height checks and some calculation and greatly reduce the speed of generation.

The most important thing when making maps though is not to make a big map without any content. If the map is mostly empty then it may aswell be small. Systems like BlitzGrass/BlitzTree just dont give you dense enough foliage for large maps. My grass is placed fractally so that I do not need to store any information or check through a big stack of data to place it, yet returning to an area gives the exact same grass placement, other flora is composited to a single "mesh per area" before entering the world so that the Blitz 3D Engine's frustrum culling is best optimised. A bug in tree magik's trunk prefab prevents the bottom vertices on each tree from hugging the ground at the moment, but I plan to fix this.


Banshee(Posted 2006) [#7]
I'm uploading an update which distributes the grass update over a number of frames, this should enable mid range systems to run the full amount of grass without any choppyness, I hope :).


Banshee(Posted 2006) [#8]
Oh I forgot to say, regarding my plans for this: Havn't a clue :) - I just felt like making it. If I could model characters I have an idea, but I can't, so it's a moot point :).


jfk EO-11110(Posted 2006) [#9]
I like this very much. I guess if you add a LOD system for the plants, that will replace trees etc. by a simple quad as soon as they are rendered from a certain perspective, it would be possible to have even more dense vegetation.

The fractional placements sounds familar to me, I used to write an eternal random landscape once upon a time, using the cluster index as random seed. But the frequent creation of the surrounding terrain clusters was a little slow.


Banshee(Posted 2006) [#10]
The range to the furthest displayed flora mesh isn't that great which means a LOD system would start to effect the mid-distance. If I did this it would start to LOD-pop like Oblivion. My engine may not be as pretty, but I swear i'll never produce an engine as sucky as Daggerfall "Earthquake" Oblivion with LOD pop in the mid-distance :).


puki(Posted 2006) [#11]
Mmm, I don't think that email made it to me - try it again "Rose-bud".


Banshee(Posted 2006) [#12]
Forgive me for not laughing, i've heard that joke perenially over the last couple of years. All from you actually :) !


puki(Posted 2006) [#13]
Ah, playing hard-to-get are we?


ShadowTurtle(Posted 2006) [#14]
spend her money ;)


Banshee(Posted 2006) [#15]
I dont have any.


impixi(Posted 2006) [#16]
Rebecca,

With the latest version, I noticed much improved performance on both my systems - the stuttering effect has been virtually eliminated. There is, however, now an issue with the distant flora appearing momentarily up in the air before 'snapping' onto the terrain. Possibly you are showing/unhiding the sprites before they have been repositioned?

Also, the issue with the gfx/cache directory is still present. Possibly your compression software is set to ignore/not include empty directories?

Thanks for the tips - they've been of great help.

I must say again, I'm very impressed with your 'Overlord' terrain system...


Banshee(Posted 2006) [#17]
I found an old 'Space Marine' model so i've put it in and he's running, jumping and crawling around. So now i'm putting in multiplayer.

I think perhaps I will have each player in the game control a squad because it is such a large map and this will give the game more players to fill it with.


jfk EO-11110(Posted 2006) [#18]
impixi - some Unpackers will ignore empty folders. I've seen this with ZIP and I guess it may also happen with some unRARers. A quick solution would be to add a dummy file inside the folder.

Banshee - well it's only a matter of smart implemetation to prevent the LOD pop in artefacts. At least, when you climb up a hill, you'll see the land with vegetation. That's what I'm missing with most outdoor engines.

BTW. try to equalize the saturation of the various leaves and plants textures.


Banshee(Posted 2006) [#19]
There is no way to LOD the grasses or bushes as they are already ultra-low poly, infact any attempt to reduce them to a single billboard would cause more overhead in processing that what would be saved by rendering.

In the case of the grasses & bushes there is a decision to make between density and range, and I think the balance I have is pretty good because both the range and density are better than some games.

The only thing I could LOD would be the tree's as these are higher poly, they could be billboard to a double-sided X board with a render from the 4 key directions on each facing. However a lot of the base optimisation would be lost by decreasing the size that each foliage mesh covers. This loss of optmisation would impact not only rendering, but the collision detection, and the result would be more base system overhead from the decreased efficiency of Blitz's own frustrum culling, which currently the system is in balance with.

In short, I believe that taking a LOD route with the trees would impact visual quality without enough of a return to justify the process.


Doggie(Posted 2006) [#20]
Looking good. ;)


Ross C(Posted 2006) [#21]
Looks technically great. I have tried this out before, or something similar to it. Very interesting stuff. Would look better visually, if you had some better textures :o) The contrast and saturation looks a bit out. However i do realise this is a technical showing off, so great stuff :o)