Procedural Terrain Mesh

Community Forums/Showcase/Procedural Terrain Mesh

Banshee(Posted 2005) [#1]
Latest Version:
Dragon Rage Procedural Terrain
----

As some of you might know I have a fascination with procedural world creation. Normally I make expansive worlds and then see how densely I can populate them with objects but this time I decided to make a conventionally sized map and see if I could make it really densely populated. Satisfied with the result I thought I would show it.

I'd be interested to hear how well it runs on other computers.



Dragon Rage Procedural Terrain

Generating a world can take a few minutes especially on a low end computer, high resolution textures and dense grasses will particularly effect the world creation time. Grass generation seems to pause at 72%, this is normal, it (probably) hasn't crashed.


Scott Shaver(Posted 2005) [#2]
Runs very nice on my work machine. Windows XP - Radeon X300 - 3.19 Ghz 2 Gigs RAM

45 to 65 FPS using the defaults, the terrain following is excellent, very smooth.

The frame rate goes way up, over 100 in the less populated areas. I'd make the trees a lot bigger and the grass and bushes shorter. Feels a bit like being a midget. Not that there is anything wrong with midgets.


puki(Posted 2005) [#3]
I was getting 170-200+fps. That's while running other software in the background.

"Rosebud" me and you should team up to make a RPG - hand over the source code and I will evaluate you.


Banshee(Posted 2005) [#4]
Cheers Scott & Puki,

lol Puki, you really should try and unshackle yourself from that lethargy and see what you can do once in a while :)

I might even make an RPG using some terrains made in this, or maybe an outdoor Quakette game with bows & arrows...


puki(Posted 2005) [#5]
Can we get married?


Banshee(Posted 2005) [#6]
You'd have to sign a prenuptual not to steal my source code ! :)


puki(Posted 2005) [#7]
How about you use me for sex and I get the code?


Picklesworth(Posted 2005) [#8]
What in the blazes...

Errr. puki... the moderators...

Looks good. Nice texturing on the terrain.


Anatoly(Posted 2005) [#9]
Nice. Got 58 - 85 fps depending on where I look.


xlsior(Posted 2005) [#10]
73-96 FPS, or up to ~120 or so when walking into the barren parts of the map.

Looks pretty nice, although the loading times may be a tad prohibitive... It seems to take a couple of minutes to load the map initially.


Mark Judd(Posted 2005) [#11]
I was getting between 15fps (on the battlements) through to 30fps (chasng the wood nymphs, err sorry i mean walking through the valley)

Specs :- P4 3.2, XP Pro, PCI Radeon X300 (64Mb), DX 9.0c

Took around 1 1/2 mins to create the landscape.

cheers

Funky Frank


Zmatrix(Posted 2005) [#12]
took me about 3 min to generate the landscape in 2048
fps was nearly unreadable it was changing so much, between 60 and 300+ , fraps showed a near constant 118
Im probably Cpu limited here, athlonxp 2200 & 6800gtoc

mighty nice little demo :)


Zmatrix


Grey Alien(Posted 2005) [#13]
Wow, I must say that is really cool. A few years ago that would have competed with Daggerfall! I only get 15fps on this crappy laptop with no 3D card but it's still playable! The castle is nice but maybe there would be more atmos if it was ruined! I also went up a tower, would like lower crenellations so I could see the lovely view. The sky and background landscape are great too, how did you make them?


Banshee(Posted 2005) [#14]
Awww thanks guys.

@Grey - the skybox is from Octane: http://www.octanedigitalstudios.com/page4.html

Very nice of you to pick up on a bit I didn't do eh ! :) hehe

@Zmatrix - I wish it generated the high res texture in 3 minutes on mine! That's the downside of procedural mapping, but I plan to use this is a modeller not as a game engine.


mrtricks(Posted 2005) [#15]
Around 90fps for me, very nice!


Grey Alien(Posted 2005) [#16]
Yup, the sky and background looked cool, and I wondered if you'd used a tool (med) to make it or coded it (hard), or got it for free (easy!)


BlackJumper(Posted 2005) [#17]
got a MAV.

ATI Mobility M9000 in a Dell Inspiron 8200 (2.2GHz P4M)


Zmatrix(Posted 2005) [#18]
How are you handling the Surface count Becky?

becuase thats an impressive amount of entitys for b3d to throw around.
Are the entitys merged into a meshes? (thats how I do heavy foliage)

Zmatrix


Banshee(Posted 2005) [#19]
"Yup, the sky and background looked cool, and I wondered if you'd used a tool (med) to make it or coded it (hard), or got it for free (easy!) "
The hardest thing of all is to admit you cant do something yourself. I an can ca can ca ... cant make a skybox.*

*not with my current tools anyway.

See, even though i've admitted it to myself I still cant fake a full public admission !

"got a MAV."
Oh :/ ... Can you try it on a 256x256 texture with just 10% grass and tree density and see if it works please? I wonder if it's a video memory issue because of the mobile graphics card ? The machine should be high enough specced if that graphics card runs other Blitz software.

"How are you handling the Surface count Becky?"
I imagine you are referring to the grasses and not the terrain, there are 275 single surface entities used, divided into a 10x10 visual portal. Entities outside of the visual range are hidden every second, those near to being shown with entityAutoFade are shown, in this solution I have not forwarded the epicentre of the hide/show check although there is a check to see if an entity is already shown hidden because I heard somewhere that effected speed - but i've not taken the time to prove it myself.

Tree are handled differently because the trunks are collision objects and the branches are not (atm their pick modes are setup (thus effecting fps) but I wanted to play with the built in collision stuff that i've not used before I implemented horizontal collision - normally I do my own with linepick). However in terms of visualisation the trees operate using an identical (and partly integrated) data portal system. When I do the collision I will correctly portalise the pick modes too which might save a few fps.

I think it looks particularly good with around 300% grass density - but it can take a while to generate and on my (mid range) PC it can drop to 15fps at times with high grass counts. Over 300% didn't seem to make much visual difference to me.


Red Ocktober(Posted 2005) [#20]
38 fps on a lowly Radeon 9200 WinXP @ 1024x1024

not tooo shabbby :)

--Mike


BlackJumper(Posted 2005) [#21]
Can you try it on a 256x256 texture with just 10% grass and tree density and see if it works please?


... still MAVing.


Falelorn(Posted 2005) [#22]
fantastic

512x512
300+ fps

1024x1024
230+fps

still playing around


Matty(Posted 2005) [#23]
Pleasantly surprised that it ran on my old system and I think it looks better with less foliage than you have shown in your screenshots. Quite impressed with the terrain lighting/texturing. It ran between 15fps and 19fps on my old 500MHz AMD with a Geforce 2 MX 32 MB and 256 MB System RAM. Although I did set the texture size to 256x256 and % for foliage (both grass & trees) to 10. I'd hesitate on my machine to try with the settings any higher.


ckob(Posted 2005) [#24]
this is awesome looking are you planing on selling the system or strictly in house?


Banshee(Posted 2005) [#25]
Thanks guys, sorry it doesnt work for you BlackJumper and thank you for trying. I wish I had a clue where to start in solving it.

@ckob: people would actually want to buy something that I made? Blimey. You're all mad.

I've been toying with the idea of taking this further, I just dont know if I want to make it a level editor, an RPG, or if I want to code something else. I'm not a very serious developer really, I just make things that interest me and I often make terrains of some sort or other.


EOF(Posted 2005) [#26]
Runs here just fine at ~72FPS using defaults.
PC: P4 3Ghz, ATI X600Pro - 256MB.


Ricky Smith(Posted 2005) [#27]
Runs great here 70-85 fps with all default values using AMD Athlon 2.6Ghz nvidia 5700 128 mb.
Very impressive work - I hope you develop this further.


Sledge(Posted 2005) [#28]
9-19 fps on my doddery ol' Celeron (1Ghz, with a Ti4200), rising to 34 or so when climing a hill facing towards the edge of the "terrain". Looks nice.


polygoon(Posted 2005) [#29]
38-76 fps

P42.8a (no ht), 2Gb, NV fx5900xt 128mb

Probably hit the vsync limit, as it was very, very smooth at all times.

If only I could add my own greyscale altitude map and directx models with JS contols! I'd have my very own heli flight sim then! ;O)

Interesting prog.


Banshee(Posted 2005) [#30]
I have released a new version:
Dragon Rage Procedural Terrain (version Alpha 3)

This update has a few new features. It exports generated maps so if you specify the same world seed again it will perform the much faster process of loading the files rather than generating a new terrain.

The texture generation process can be quite long, so I decided to start letting the user explore the terrain whilst it is still generating. I've created a routine that gradually fills the map in ever increasing detail - without going over bits it has already done.

This texture generation process is controlled by an automatic throttle control which handles the speed of the texture generation, when you are moving it cuts back on the creation process and when you stand still it takes over more of the processor.

The texture isn't saved until the whole process is complete so if you load a world seed that is already generated but for which there is no texture file the program detects this and starts generating the texture afresh.

-*-

I would really like to know how the throttle control performs when generating the texture, I hope it maintains at least 10fps whilst moving on older and mid-range systems, so any feedback of this part of the program is appreciated.

Thank you.


Bouncer(Posted 2005) [#31]
I get mav. I see a gray terrain and it generates something what seems to be some kind of castle... then MAV.

I have Fujitsu-Siemens laptop with Win Xp and Radeon something...

[EDIT] The first version seemed to work... about 30-35fps on this 1.8ghz laptop... Wonder what crashes in the version 3...


Banshee(Posted 2005) [#32]
Thank you for testing, I just realised I added cube mapping for an effect but I forgot to put in an alternative mode for cards that do not support it. I will remedy that in a later release.


Braincell(Posted 2005) [#33]
Whoa!! This is just so amazingly cool! I mean the "art" and textures are so basic but the concept and results are really really impressive. You may have picked this up before, but I'm also into progressive environment creation. I didnt "make" anything but i'm very interested in it, and this is just inspiring! I see you used simple spheres to model the terrain and then added noise?

Btw the version 3 works fine (didnt try v1), but its a bit on the slow side. I get low FPS but im sure thats because the viewdistance on the grass is HUGE. I can see grass miles away (i have AA on).

I've been prospecting the possibility and time requirement for my big "civlike game" for the past two months, and procedural 3D terrain generation is definitely on the list. Will you be releasing any code for free? What if i ask nicely?

ROFL @ your sig Becky! :)
I really don't see why gender should matter in programming, or cause any prejudice, etc. Maybe for the "furstrated" few... You seem to be very active on the forums and what you do (coding), its just great. I know one lady who's been into coding since C64, she works on big govt projects, and i haven't met a more accomplished coder in my life. Keep the moral up!


Banshee(Posted 2005) [#34]
Thank you. Once the texture finishes generating and is saved out the fps should be unleashed.

I plan on using this for a multiplayer first person team deathmatch game - I was going to use Psionic's Elven bowman model and put spells in too and then just play it for a giggle.

I don't plan on releasing the code to this one, because i'm still working on it and hoping to take it further.


Mark Judd(Posted 2005) [#35]
Becky,

Was getting around 15fps whilst wandering around and throttle had dropped to 5-10% as textures were ummm ... textured.

Specs as before :- P4 3.2, XP Pro, PCI Radeon X300 (64Mb), DX 9.0c

The one small query i have is more to do with my ignorance than anything else, what actual use is this ?

Say i am designing a game and want to load a level, i wouldn't want the player to see the level being built as they play it. Am i missing the point here ?

This is not intended to be a flame, just hoping to learn something !

cheers

Funky Frank


Banshee(Posted 2005) [#36]
It's fair comment Frank.

I plan on including a number of pre-generated levels all ready and saved to disk, but some levels can add quite a lot of filesize so I thought if the players want a new map they can just make it by specifying a few paramets and a world seed. To save time loading i'll let the textures generate after the start (and possibly the grasses too), which in a multiplayer deathmatch game is usually when everybody is getting connected, so the advantage of this system is it lets the players connect whilst the level is still "loading".

Having that system coded also allows me to make changes to the landscape during the game from spell effects and have the texture regenerate without hitting the framerate too hard.

I'm going to take a look at the texture generation routine soon because i'm using slow commands (getColor, colorRed() etc) and I want to replace them with faster readPixel, writePixel commands. I also think I can reduce the number of calculations a little and still achieve the same standard of result.


Mark Judd(Posted 2005) [#37]
Becky,

I think i see where you're coming from, although you could still alter the landscape and textures in-game using a 'pre-built' level couldn't you ?

I could see this method being used to have dynamically changing seasons say, where plants grow and die and foliage changes colour, density and so on.

One aspect bothers me though, the lighting (i.e. shadows, etc). A level built on the fly is surely never going to look as aesthetically (sp?) pleasing as a pre-rendered one.

(Not that I can talk with my pre-made levels....)

cheers

Funky Frank


Xzider(Posted 2005) [#38]
The coolest thing in the world


Banshee(Posted 2005) [#39]
A level built on the fly is surely never going to look as aesthetically (sp?) pleasing as a pre-rendered one

That makes sense when we're talking dynamic landscapes but this is a static landscape. Being procedurally generated runs the risk of it looking bad if the rules that make the landscape are not good enough, but I think this system is looking reasonable - if there is a problem here it is framerate during the creation process, but it already supports full speed pre-rendering if you want to wait and then dive in to a finished landscape (press F1 to suspend the mainloop and render the texture - this will be a menu option eventually).


Braincell(Posted 2005) [#40]
Ohhhh, now i get it. The level was _still_ generating? That took long! I'm going to hit F1 and wait and see how it goes.

and possibly the grasses too


Will you stop with your grasses? Its "grass", or do i not get the joke. :)


xlsior(Posted 2005) [#41]
Will you stop with your grasses? Its "grass", or do i not get the joke. :)


It's 'grass' if it's all the same type of grass, 'grasses' if there are multiple types. Technically speaking.


Braincell(Posted 2005) [#42]
Looks like you're right xlsior.

http://dictionary.reference.com/search?q=grasses

Still sounds weird to me :)


Banshee(Posted 2005) [#43]
That's at least the third time this year somebody has 'corrected' by use of the word "grasses". It's to do with apostriphication of words ending in s, but i'll spare the full English discussion because it's only my second language (after BASIC).


BlackJumper(Posted 2005) [#44]
That's at least the third time this year somebody has 'corrected' by use of the word "grasses". It's to do with apostriphication of words ending in s, but i'll spare the full English discussion because it's only my second language (after BASIC).


Corrections:
=========
That's at least the third time this year somebody has 'corrected' my use of the word "grasses". It's to do with apostrophication of words ending in s, but I'll spare the full English discussion because it's only my second language (after BASIC).

Thought I would make your day ;-)


Banshee(Posted 2005) [#45]
oh veri funnee


John J.(Posted 2005) [#46]
Very nice! Those screenshots look pretty amazing. I'm downloading it now.

I'd like to know where you got all the nice textures for the grasses. Did you make them? Buy them?

Anyway, good luck with your system! It looks very nice!


Doggie(Posted 2005) [#47]
"Tranny whore"??? I find that a bit offensive unless, of course, you ARE transgendered and feel entitled

If you're a genetic girl, then you should realise how offensive that is. Just making a note of it, not baiting or flaming...just expressing.

Thanks

Doggie


Banshee(Posted 2005) [#48]
"Tranny whore" is a quote from the Blitz IRC channel and is just one of the many homophobic "you must be a man" things some members of this community have called me in some of the numerous deleted posts about me.

The full signiature in context is pointing out how silly those members of the community are in the way they act toward women who can program. It is not intended to cause offense to transsexuals or working girls.


Bouncer(Posted 2005) [#49]
IMO putting comments about your arguments with some of the forum members in your sig is childish... Why constantly remind everybody that you're a girl?

Bottom line...

The more you talk about yourself on forums, the more people comment on your personal things. If you never tell anyone your gender / religious beliefs / any private information... then nobody picks on you. Simple.


Banshee(Posted 2005) [#50]
At the end of the day if I sign my name in the credits of something i've done (which I think is fair play for me to do) then the same thing would happen regardless of forum handle.

I like a bit of banter as much as the next person but there is a limit to how much I can take. The "shemale" abuse i've been getting over an extended period *only* on these particular programming forums (and i've had quite a catalogue of it) is as malliscious to me as it is to lots of transsgendered folk who have done nothing wrong to these people except challenge a medieval view of what gender is.


puki(Posted 2005) [#51]
No picking on "Rose-bud".

Don't forget to email me the code and stuff.


Doggie(Posted 2005) [#52]
I wondered if that were the case. And that being the case I'd not see the quote as offensive , but I didn't know...anyways, I'm all about reducing the polarities and that's why I thought it worth saying something.
And it occurred to me that if it might be mistaken in it's intent that I was willing to bet you'd prefer I say something about rather that just be offended needlessly....or something like that.
"tranny" doesn't bother me, it's the making it out to be something derogatory or of "lesser" value that irritates hell outta me.

and yes Puki, quite aware that this is somewhat off topic but you draw the chalk circle where the body lies...


Banshee(Posted 2005) [#53]
Oh well, at least I got something for my war diaries, it's been too quiet for a few days and I had nothing to write about :)


Chroma(Posted 2005) [#54]
Doggie, I got about halfway through this line "And it occurred to me that if it might be mistaken in it's intent that I was willing to bet you'd prefer I say something about rather that just be " in your last post and couldn't bear to continue. Sometimes it's better to use bigger words and get to the point. ><

Just spit it out!


Banshee(Posted 2005) [#55]
>>Just spit it out!
The user Doggie withdrew their state of horrified offense whilst at the same time ensuring that the cause for said state of horrified offense by the misunderstanding of the aforementioned post was without a doubt, unequivocally and beyond all reasonable doubt clearly the blame of persons other than the canine inclined user in question.


Doggie(Posted 2005) [#56]
uh...Chroma...I was just trying to politely say that it wasn't anything personal...I have a fair amount of genus dysphoria, mind you....

;)


Banshee(Posted 2005) [#57]
That's OK, you may think your a dog but that's hardly laughable around here - most of these guys think they're programmers ;)...


Bouncer(Posted 2005) [#58]
I think I'm a whale... a BIIIG whale...