Eden : terraformer [update - ecoregion design]

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Eden : terraformer [update - ecoregion design]

Post by ultramedia »

Hey everyone,

I am starting a project to build a game engine based on irrlicht which I am calling "The Eden Engine". While I want to do something that is flexible enough to do different types of games, my main interest is in oblivion style RPGs (although I'm much more interested in futuristic stories than medieval ones). Because setting up an entire game framework is such a big job, my plan is to tackle it in stages, and the obvious place to start is to build a terrain rendering system.

Now I have a couple of pet hates when it comes to trying to do terrain in a game engine:
- only being able to do blurry blending between three or four textures.
- shader based solutions that don't work on older computers and are viciously difficult to learn.
- not being able to flatten procedural terrain on slopes for roads or houses
- only being able to do terrains that are only slightly bigger than a snow globe
- and last of all, the mars syndrome (i.e. zero or very minimal vegetation)

So - my goal is to make a terrain system that can:
- be very big by breaking the terrain into tiles (that get lower in detail as they get further away)
- use as many textures as you like by baking them together for each tile as it's made (with no shader requirements)
- let you draw out vector based roads that flatten the terrain under them and add their texture to the texture baking above
- let you quickly (or even automatically) designate areas for large quantities of tree billboards.

Anyway, enough yabber, here is what I've got so far:
http://www.youtube.com/watch?v=XQPNzFPMhEk

There are a few errors in the way the tiles wrap around and interlock at different levels but overall, it's pretty stable. Each ring of terrain tiles uses the same number of polygons as the next one inside but covers twice the space, and you can specify as many octaves (rings) as you poor little graphics card can handle (about 8 octaves for 100 fps on my computer). Once I fix the bugs, I'm pretty much going to tick off item one on my list above and move onto the per tile texture baking.

If enough people find this project interesting, I might make a little website for it (my current site is at www.ultramedia.com.au but its not overly impressive). Also, for a bit of a laugh, check out my other youtube videos at http://www.youtube.com/user/ultramediaAustralia (they are mostly from a contiki trip that me and kazza did last year).
Last edited by ultramedia on Tue Sep 16, 2008 12:06 pm, edited 6 times in total.
MasterGod
Posts: 2061
Joined: Fri May 25, 2007 8:06 pm
Location: Israel
Contact:

Post by MasterGod »

Good luck! I like the video - cool stuff.

I'd very much like to see a website of the engine and I hope you do spend some time and effort on it :wink: - I like good sites.
Image
Dev State: Abandoned (For now..)
Requirements Analysis Doc: ~87%
UML: ~0.5%
monkeycracks
Posts: 1029
Joined: Thu Apr 06, 2006 12:45 am
Location: Tennesee, USA
Contact:

Post by monkeycracks »

That's an impressive, large terrain in your video. Hope to see more of this.
lostclimategames
Posts: 331
Joined: Sat Sep 02, 2006 4:11 am
Location: Michigan
Contact:

Post by lostclimategames »

sounds cool, the one issue id have is what you said for foliage, even up close trees are going to be billboards? thats going to be a bit difficult to make look nice imo.
___________________________
For all of your 3D/2D resource needs:
Image
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Post by ultramedia »

Hey everyone,

re a site, to start with I might just do a section at www.ultramedia.com.au but I think I need to at least get something going with the texture baking before I do that. Re the foliage, yeah you're right lost, billboard only trees have sort of past their use by date, so that'll be exciting and I'll definitely try and arrange for the engine to be friendly to klaskers procedural trees.

Righto, now lets see about fixing that interlocking and getting an executable online...
BlindSide
Admin
Posts: 2821
Joined: Thu Dec 08, 2005 9:09 am
Location: NZ!

Post by BlindSide »

Now I have a couple of pet hates when it comes to trying to do terrain in a game engine:
- only being able to do blurry blending between three or four textures.
- shader based solutions that don't work on older computers and are viciously difficult to learn.
- not being able to flatten procedural terrain on slopes for roads or houses
I don't agree,

1. You can do blurry blending between any amount of textures, it just needs some creativity ;) . For example, check out fake bilinear filtering using fract(). I'm gonna release something soon that can do blurry blending between up to 32 unique textures using a texture atlas.

2. Theres not many pcs these days with an MX440, and even laptop integrated intel chips have SM 2.0 support. Viciously difficult sounds like you haven't tried yet because if you have you would find it viciously easy. :P

3. You're the one creating the terrain here, it wouldn't be difficult to create an algorithm that does that for you, or just flattening them manually by checking slope/position.

Cheers, nice video btw.
ShadowMapping for Irrlicht!: Get it here
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Post by ultramedia »

BlindSide wrote: 1. You can do blurry blending between any amount of textures, it just needs some creativity ;) . For example, check out fake bilinear filtering using fract(). I'm gonna release something soon that can do blurry blending between up to 32 unique textures using a texture atlas.
Cool, that sounds wicked. I'm still going to chase texture baking though, cos I've got some very specific things I want to be able to do, and I don't think other ways will let me do em. I wasn't going to get into gorey details about this until I get the tiling cleaned up.
BlindSide wrote: 2. Theres not many pcs these days with an MX440, and even laptop integrated intel chips have SM 2.0 support. Viciously difficult sounds like you haven't tried yet because if you have you would find it viciously easy. :P
Well, I have tried. I've got rendermonkey and FX composer 2 here, and I've gone through the examples trying to figure out their code but it all just looks like alien math to me. Also I've surfed all over the web for intro to shader tutes for newbies, but everyone always seems to start explaining at the half way mark and I have no idea what they're talking about.

Also, I have a little TC1100 tablet pc which I love to bits and it runs shader model 0.00 :)

But I know I'll need to get on board sooner or later, if you could recommend any beginner tutes that don't start with a hardware schematic that looks like the london tube map I'd be very grateful.
BlindSide wrote: 3. You're the one creating the terrain here, it wouldn't be difficult to create an algorithm that does that for you, or just flattening them manually by checking slope/position.
Yep, thats exactly the numero uno reason why I'm building it from scratch, not just using someone elses. I'm extremely interested in the procedural mass creation of urban environments, and flattening terrain for roads and property lots (for buildings) is crucial to this. On that note, if you haven't seen it already, check out the ultra cool work being done at http://www.citygen.net
BlindSide wrote: Cheers, nice video btw.
:) Thanks, I wanted to make sure I had something worth showing before launching into a big talk fest (as I'm prone to doing) about what I wanted to do.
lostclimategames
Posts: 331
Joined: Sat Sep 02, 2006 4:11 am
Location: Michigan
Contact:

Post by lostclimategames »

best place to start learning shaders, its meant for post processing but the theory still applies:

http://www.facewound.com/tutorials/shader1/
___________________________
For all of your 3D/2D resource needs:
Image
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Post by ultramedia »

Thanks lost! You're right, that is a good one - that's first time I've seen someone explain it in a way I could understand. I'll need to read it again a few times I'm sure, but thats a huge help thanks :)
lostclimategames
Posts: 331
Joined: Sat Sep 02, 2006 4:11 am
Location: Michigan
Contact:

Post by lostclimategames »

your welcome, its the one i started with, the only issue is that it doesnt cover vertex shaders.
___________________________
For all of your 3D/2D resource needs:
Image
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Post by ultramedia »

Hey everyone,

I've got an update on my terrain code, its going to have to be source this time as I seem to have some sort of major stupid to shake off when it comes to compiling (that's right, irrmasters more newbie posts on the beginners forum MWOO HAR HAR HAR).

Ahem, anyway, these are the updates:
- the incorrect interlocking/overlapping issue between tiles has been resolved
- added a quick and nasty heightmap (with quick and nasty terrain following)
- switched from wireframe to a quick and nasty grass texture.

Keep in mind this is completely unpolished, the total focus at the moment is getting the LOD tiling working properly. On that note, if you can tell me how to overcome that stupid blinking that happens when the tiles in each octave wrap around (snap around?) I'll quite happily do two rounds of the idiot dance for you.

Controls : right click and drag to orbit, w/a/s/d to move, esc to exit
http://www.ultramedia.com.au/multimedia ... 080526.zip
MasterGod
Posts: 2061
Joined: Fri May 25, 2007 8:06 pm
Location: Israel
Contact:

Post by MasterGod »

It would be easier to get a binary file (.exe)... :?
Image
Dev State: Abandoned (For now..)
Requirements Analysis Doc: ~87%
UML: ~0.5%
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Post by ultramedia »

yeah, I know. Unfortunately when I build a realease version, it goes nuts. I'm going to work an a stable build tonight after work, if I can't get it going, I'll make some youtube videos showing the debug and release versions on my machine.

*edit* if you do want to have a play with it before then, the only files you need to add to your project main.cpp and config.cpp
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Post by ultramedia »

Hey everyone,

Has anyone else had trouble moving scenenodes in vectors with setPosition? When I tried to change from a dynamic array to a vector in my terrain code, all a sudden all the terrain nodes in it were stuck at 0,0,0. If I used setPosition to move them they wouldn't move, but if I used getPosition, it returned the changed coordinates I'd just put in with setPosition (even though were still stuck at 0,0,0).

(I've heard on the web that my release building dramas may go away if migrate from dynamic arrays to vectors).

*edit* vectors as in <vector>

*edit2* yikes! don't answer :oops:
I had : std::vector <CterrainNode> myTerrain(0);
Now : std::vector <CterrainNode *> myTerrain(0);

At least I think thats what it was, and it's working now... unfortunately it hasn't solved my build problem. When I do a release build from MSVC2008 it runs fine, if I go and run the exe from its folder it goes spastic. And googles telling me I have to go and check every variable for proper initialization *smacks forehead*.

Another horrible thought, what if everything IS initialized properly? Then I have no idea where to look...
Last edited by ultramedia on Mon May 26, 2008 11:44 am, edited 1 time in total.
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

Well, I hope it's a vector of pointers to scene nodes? IF you copy them into the vector there's no chance to update the real nodes. But maybe you have some actual code at hand?
Post Reply