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 »

yeah, sorry - you have to have the microsoft c++ redistributable files installed.

http://www.microsoft.com/downloads/deta ... laylang=en
Mirror
Posts: 218
Joined: Sat Dec 01, 2007 4:09 pm

Post by Mirror »

ultramedia, in case you're not make sure to compile the apps with /MT flag ( project properties->configuration properties->C/C++>code generation->runtime library )
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Post by ultramedia »

Mirror wrote:ultramedia, in case you're not make sure to compile the apps with /MT flag ( project properties->configuration properties->C/C++>code generation->runtime library )
When I do that I get linking errors (that I don't understand) :

Code: Select all

1>Linking...
1>msvcrt.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
1>msvcrt.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _malloc already defined in LIBCMT.lib(malloc.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _free already defined in LIBCMT.lib(free.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _iswspace already defined in LIBCMT.lib(_wctype.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: __errno already defined in LIBCMT.lib(dosmap.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _realloc already defined in LIBCMT.lib(realloc.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _memmove already defined in LIBCMT.lib(memmove.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _iswalpha already defined in LIBCMT.lib(_wctype.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _iswdigit already defined in LIBCMT.lib(_wctype.obj)
1>msvcrt.lib(dllsupp.obj) : error LNK2005: __except_list already defined in LIBCMT.lib(exsup.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _exit already defined in LIBCMT.lib(crt0dat.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: __strdup already defined in LIBCMT.lib(strdup.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _calloc already defined in LIBCMT.lib(calloc.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _iswalnum already defined in LIBCMT.lib(_wctype.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _abort already defined in LIBCMT.lib(abort.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _isalnum already defined in LIBCMT.lib(_ctype.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _isalpha already defined in LIBCMT.lib(_ctype.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _isdigit already defined in LIBCMT.lib(_ctype.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _isspace already defined in LIBCMT.lib(_ctype.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _strchr already defined in LIBCMT.lib(strchr.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _setlocale already defined in LIBCMT.lib(setlocal.obj)
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _tolower already defined in LIBCMT.lib(tolower.obj)
1>LIBCMT.lib(crt0init.obj) : warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
1>main.obj : error LNK2001: unresolved external symbol "public: void __thiscall wxStringData::Free(void)" (?Free@wxStringData@@QAEXXZ)
1>D:\My Documents\Visual Studio 2008\Projects\c++\irrlicht\eden_v02\Release\editor.exe : fatal error LNK1120: 1 unresolved externals
Dorth
Posts: 931
Joined: Sat May 26, 2007 11:03 pm

Post by Dorth »

simply put libcmt in the ignored libs
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Post by christianclavet »

Hi, Ultramedia.

I've tested your latest build. It seem to work well (using a sphere). I see a problem when moving on it. At a certain point, it goes in a gimble lock. Are you using EULER rotation or quaternions angle rotations?

It still didnt wanted to run on the XP workstation at school. I've checked the redistributable C++ and installed from your link.

Your redistributable files does not work for your application (your link point on 2005, you need the 2008 redistributable file installer:

http://www.microsoft.com/downloads/deta ... laylang=en

Once Redistributable C++ 2008 was installed, it worked.
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Post by ultramedia »

yeah, current movement is using a cheap nasty hacky technique. I'm 75% done setting up proper trigonometry based movement which should fix all the gimble lock issues. Fwiw, I've made sure the calculations include variable altitude relative to the planets pivot so that it'll be very easy to use for flight simulator type apps as well.

P.S. thanks for putting up the 2008 link christian, my bad :oops:
dlangdev
Posts: 1324
Joined: Tue Aug 07, 2007 7:28 pm
Location: Beaverton OR
Contact:

Post by dlangdev »

"Once Redistributable C++ 2008 was installed, it worked."

Wow, that's probably what my users should do as well, this is great.

Thanks.
Image
Mirror
Posts: 218
Joined: Sat Dec 01, 2007 4:09 pm

Post by Mirror »

i have the impression that he is compiling in managed code ( .net ) and that's not a good solution IMO because everyone who is going to use it must have the redistributables. IMO he should compile with /MT ( unmanaged code ) so that the .exe can run everywhere without any external dependencies.
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Post by ultramedia »

Ah, ok - ta, I didn't know what that was about... I'll see if I can't make the next release non distributable dependant...
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Post by ultramedia »

Still going... just crawling through stinky hard bit for a while is all... Because of the enormous range of scales involved in planet simulation, a fair bit of fakery/trickery is required to make a seamless transition from 'oh look theres a planet the size of a golf ball' to 'oh look theres a golf ball'...

Also, spherical vectors suck harder than a tornado at a vacuum cleaner convention, but now that I've tried about five different ways of achieving the same result, I seem to be getting fluent with the maths (trig) involved.
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Post by christianclavet »

Hi, Ultramedia.

I've been able to compile a source with the /MT flag and indeed it compile without the need for runtimes. My binary was about 30k and now is 109k but there no dependancy to those runtime anymore. Mirror was right. I'm trying to convert myself on using MSCV express since I used DEV C++ before.

I've had to dig a little inside the MSVC interface. Here where I found them on MSVC Express 2008:

Project --> Properties ->Configuration properties -> C/C++ -> code generation -> Runtime library: select Multithread /MT

Once it's set the generated code will have to dependancy to the runtime.
note: I've based my words on translated french (I've got the MSCV EXPRESS 2008 french edition), should be the same or very similar.

For the errors you have there seem to be a mix of MSCV 2005 and MSCV 2008 in your machine. Here it compile without any probs. (I've only installer MSCV express 2008 in my system.
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Post by ultramedia »

Hi Christian,

Thanks heaps for that, I'll be making that change in my next release. When that'll actually happen is hard to say, the way I'd like to do the positions affects the LOD, and both of these things need me to figure out how I'm doing my texture splatting, and doing texture splatting on a spherical surface is HARD. (for me anyway).
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Post by ultramedia »

Ok, I think I figured out how to get unstuck... while making the LOD tiles lock together into a spherical surface was (in my mind at least) the logical way to go, it leads into a bucket load of maths that I'm just not clever enough to figure out.

So, now I'm basically just going to do a simple sphere with a libnoise based planet texture on it, and just slide my 2D planar version of my LOD tiles along the surface of it (when your altitude is low enough to see them), and have them suck up the texture from the sphere surface underneath the tiles and detailing it up with custom texture splatting.

Of course that will still be a bunch of coding to do it, but doing it this way, at least I can see what needs to be done, the spherical stuff just had me in a complete deadlock - which is a shame - but oh well, whatever works.
ultramedia
Posts: 175
Joined: Wed Dec 20, 2006 12:04 pm

Yay!!! Update!!! (ok it's a small one, but it's an update)

Post by ultramedia »

Hey everyone,

Been a couple of months since I last posted here. Things got real busy in other areas, but I've been able to squeeze out a slight update this weekend on the eden engine. Speaking of which, as cool as "the irrth engine" is as a name, I think I'll go back to calling it the eden engine so it can stand on it's own two feet.

Last release was basically a spherical mesh, it actually had the LOD system in place but wasn't doing anything because I had to rebuild it so spherical positions were stored with double accuracy not just f32.

For now, I've just put up two new videos at youtube:
http://www.youtube.com/watch?v=fW6LZy2OG5g&fmt=18
http://www.youtube.com/watch?v=SR8LHUlx37g&fmt=18
pera
Posts: 460
Joined: Wed May 14, 2008 1:05 pm
Location: Novi Sad, Serbia
Contact:

Post by pera »

so the game terrain would be a large sphere? you can go around the world? this is idea that could overcome invisible walls and high mountains all round the game level.

I once jumped over a really high wall in gothic 2 that was placed there to stop you from leaving level map. On the other side was great plane, and then - end of the world. And there was a board with writing on it saying something like: "bravo, you really jump well."
Post Reply