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

Post by ultramedia »

pera wrote:And there was a board with writing on it saying something like: "bravo, you really jump well."
Lol :)
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Post by ultramedia »

Hey everyone,

Got some rough sketches/schematics I thought people might be interested in that explain (a little) the technique I'm developing to do terrain themes and variations in the eden engine - the idea is to be able to have a wide range of different "ecoregions" scattered around the land masses.

If you haven't heard of ecoregions before, have a look at :
http://www.nationalgeographic.com/wildw ... trial.html
(you can click on the regions to see a popup with information and photos)

Basically the idea is to start with a bunch of tetris like blocks, some are mountainous terrain (shaded in the examples below), some are hilly country and some flat coastal areas. Then I get rid of the rectangular simcity look by displacing the block corners randomly. Then I replace the block edges with fractal lines (just a couple of rounds of midpoint displacement should do it). Then I "crop" the ecoregion patchwork using a libnoise generated coastline mask. (I originally thought of the technique for doing procedural cities, but only today realized I could scale it up to handle ecoregions).

Image

One *extremely* nice feature of this system is that it gives me a simple way of doing (faking) water networks - something I had not been able to figure a nice easy way of doing (up until now).

Each exposed edge of a mountain block 'emits' a water thread, if the thread reaches the edge of a block it looks left and right for a free grid space inside the same block. If it can't find one, it uses the underlying libnoise coastal mask to figure out which of the neighbouring blocks is lower in altitude and crosses over into that one. Water threads terminate when they intersect another water thread or reach the libnoise determined coastline.

As far as applying all this to the LOD sphere goes, the idea is that the data structure is used to generate texture and height maps for the LOD tiles in the eden sphere that you can see working in the youtube videos above.

Anyways, hopefully theres one or two people who still find all this interesting, if you can see any potential problems - or better yet, how to handle them - I take all the help and suggestions I can get...
Last edited by ultramedia on Sun Jan 16, 2011 4:02 am, edited 1 time in total.
BlindSide
Admin
Posts: 2821
Joined: Thu Dec 08, 2005 9:09 am
Location: NZ!

Post by BlindSide »

Thats a beautiful idea, keep up the good work. I hope it is not too hard to implement.
ShadowMapping for Irrlicht!: Get it here
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
torleif
Posts: 188
Joined: Mon Jun 30, 2008 4:53 am

Post by torleif »

I'm amazed by your work ultramedia. I hope you open source your code, I'd love to take a sniff at it. I also like your sphere LOD, I tried to make a dynamic custom sphere mesh yesterday but gave up shortly because of laziness.

One thing I was wondering about was: what format are you going to use to store the data of the positions/ sizes etc?

A great idea would be to use a random number, then when the user wants to customize an area he can use bitmaps to describe where water/ trees goes.
fmx

Post by fmx »

really awesome idea ultramedia, can't wait to see it in action!
keep up the excellent work!
Dorth
Posts: 931
Joined: Sat May 26, 2007 11:03 pm

Post by Dorth »

o.O
I am really swept off my feet by your recent work m8. Keep it up. The longer you stay amongst us, the better it'll be for us all ^^
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Post by ultramedia »

Hey everyone,

Thanks for all the kind words, it's nice to see there are other people out there interested in stuff like this.

Not sure what to do with the license to be honest. At the moment I'm leaning towards the idea of keeping the engine open source so other people can contribute to it, and so I can just do what I want on it whenever I want with no pressure. The flipside is that if you can find a way to make money from something like this then you can work full time on it (instead of part time as a hobby). That would mean dev could happen a lot faster, and also I could be doing something more creative/enjoyable than web dev for a job :)

So for now - especially as I've only really just started to scratch the surface - I think the best plan is to keep the engine open, but then use it to develop a closed source game and sell that instead. The huge benefit of this is that if I sell the engine I'll get swamped in an avalanche of support requests, but if I just sell a game made from it, all it has to do is work. And I've got a LOT of ideas about how I'd do a game that would knock everybodies socks off. Well, everyone like me. Damn. Can't be too many like that... Lol.

For me, the ideal game would be a hybrid of Oblivion IV and Elite : First Encounters. It would be an RPG, but not an MMORPG cause I don't like being tied to realtime (especially in an engine like this where such vast distances are involved). I also really like the squad based tactical take cover type game play from full spectrum warrior. And did I mention I really liked firefly? So I guess a good name for my game would be "Elite : Full Spectrum Oblivion Firefly". Hahahahah. But seriously, the title I'm thinking of going with is "TerraStellar" and you can get a bit of an idea of of the story from this tagline:

"In the year 2037, mankind sent 12 colonies to the stars. Three generations later those colonies had lost contact with the humans they knew, and made contact with the ones they didn't."
BlindSide
Admin
Posts: 2821
Joined: Thu Dec 08, 2005 9:09 am
Location: NZ!

Post by BlindSide »

Man that really reminds me of my dream project, I wrote a story about it a while back.

I haven't touched it in a long time, it's kind of hard to get motivation to work on something that you know will take atleast a few years to finish. :P You seem to be doing really well though, the main reason I want to make a game like this is because none really exist and I really want to play it. So if you finish your game than I'm a happy man.
ShadowMapping for Irrlicht!: Get it here
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
kingdutch
Posts: 76
Joined: Tue Sep 02, 2008 7:01 am

Post by kingdutch »

Some legal/licensing advice, when allowing anyone to contribute, make sure you do it in such a way that you don't have to rip out all their stuff to be able to make it commercial :lol:

Looking really good :D
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Post by ultramedia »

not dead btw, just stuck in job prison for a bit (do not pass go, do not collect 200$...)
benny53
Posts: 131
Joined: Fri May 26, 2006 10:21 pm
Location: Ohio

Post by benny53 »

Wow, I hadn't really read into this that much before, but looking at it now, I was just about to start designing my own. But seeing as you already have some done, I may just want to follow this libraries progression. Very good work so far. I'm very impressed.
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Post by ultramedia »

Woohoo :)

Ok, first up, apologies for resurrecting a thread nearly a year old. But I have a good excuse... I've been able to resurrect/unstick the project.

The problem it was stuck on was the positioning of the vertices on the sphere, the algorithms I was using had inaccuracies in them and I couldn't figure out how to make them work properly so it basically got put on the shelf.

After tinkering with it till 3am this morning, I've discovered the normalize method of the vector3df data type and BOOYAH it's working properly now!!!

* does happy idiot dance * (you don't want to see it)

There's still a little drama with the the player getting sucked into the north or south pole which then causes freaky things to happen, but I don't think that'll be as much hassle to fix.

I'll try and upload an update somewhere this afternoon for anyone who might still be interested in this sort of thing. I am a bit rusty with C++ again after a year though so I might need a little bit of help/advice with redistributing an irrlicht project.
shadowslair
Posts: 758
Joined: Mon Mar 31, 2008 3:32 pm
Location: Bulgaria

Post by shadowslair »

It`s really nice hearing that you`re still working on the project. And you bet there`s plenty of people interested in your project- some of curiosity (like me- I like everything s.o. put many efforts in), some other for game dev and on. It`s a nice idea and there`s some decent realization, which is splendid. Keep up the good work! :wink:
"Although we walk on the ground and step in the mud... our dreams and endeavors reach the immense skies..."
06casswp
Posts: 1
Joined: Sat Dec 11, 2010 10:42 am
Location: Glasgow, UK/Melbourne, AU
Contact:

Post by 06casswp »

Not sure as to whether ultramedia is still pursuing this or not, but I am attempting something similar. Im up to the stage of trying to deal with the scale issues. Having trawled through the infinity game forums, I found how it has been solved in infinity. He handles all mesh and vertices in doubles and then when it comes to rendering, translates the whole coordinate system down to normal 32 bit floats.

In which case I am after seeing how anyone suggests I handle the vertices in double or whether it will take modifying the game engine and if that is the case, any help in what would be required in terms of suggestions or relevant sections of the engine that would need modification.

I am experienced in C and am picking up C++ very quickly but im not completely proficient yet.

If this is done, the engine should be able to handle significantly larger game worlds on a solar system scale which is generally all that is really needed.

Project information:
Funnily enough, about 7 or 8 years ago I came up with a game concept whereby you would have a procedurally generated universe based on a set of terrain tiles etc. I had named it then Eternity luckily or i would be needing to change it now, given the other option was infinity!

The game would feature both ground and space play and incorporate as much as possible as many game genres as would be feasible.

The game would be a cloud computed MMO with a central universe backup server of the generated universe data. It would also feature a single player offline mode and be free. Its also designed to be highly customisable and in-depth.

So the last technical problem I have in designing the game engine is the scale one, I have not taken the time as of yet to see what I can manage in that respect but any help or suggestions to assist me in working out 64 bit coordinates and their support in irrlicht would be very helpful.

To see the scale that results from being able to utilise a 64 bit coordinate system, there is a nice tech demo at:
http://www.infinity-universe.com/Infini ... &Itemid=93

Depending on responses/progress, I will post a proper project announcement and will try to keep it updated with my coding progress in terms of the gfx side of things at least.

Edit:

I have added new core functions to deal with doubles and am in progress of modifying the attributes and mesh handling. My plan is to keep the 32 bit and 64bit stuff separate and in the drivers add in the conversion to 32 and load the data to the GPU alongside the 32 bit float stuff. Again, any advice as to the best way to be doing this, I would be very grateful for. I'll upload the revised engine when the modifications are complete and its tested.
Post Reply