Raydium 3D Game Engine

Official forum for everything about Raydium, ManiaDrive, MeMak, ...
It is currently Tue Mar 19, 2024 7:59 am

All times are UTC




Post new topic Reply to topic  [ 32 posts ]  Go to page Previous  1, 2, 3  Next
Author Message
PostPosted: Wed Jan 21, 2009 3:08 am 
Offline

Joined: Sun May 04, 2008 3:40 am
Posts: 27
Location: Canada
I am not sure when I will actually get around to finishing this, but here is a question: What version of ode should i have my configure script fetch and install? I've managed to get it to work with several (7, 9, and 10). There is one issue: when compiling, if there is a different version of ode installed by ports, the other version's ode.h and other header files will be found and used, which creates issues on compiling. I suspect there is a way to hide these files from the compiler, or prefer the local (downloaded) versions. But another solution, which seems better to me, is to use the same version of ode which is in the ports tree already. That is ode version 9.

Matthew


Top
 Profile  
 
PostPosted: Wed Jan 21, 2009 8:31 am 
Offline

Joined: Sun Oct 09, 2005 10:46 pm
Posts: 759
Hello,


Official raydium ode version is 0.9

First release of .10 raise lot's of problem and need to add an initOde() to avoid some problems.

For now i think it's better to get all plateform version of raydium sync, with 0.9

Ode 0.10 progress quite quickly and i think that we will swap to 0.10 during this year (if everybody agree).

St have already use ode 0.10 within his port, as you do.

Hope this is usefull.
Have a nice day.
Ouille


Top
 Profile  
 
PostPosted: Wed Jan 21, 2009 6:20 pm 
Offline

Joined: Sun May 04, 2008 3:40 am
Posts: 27
Location: Canada
Hi. Thanks for the reply. I think I will try to use version 0.9.

Yeah, I found out about that problem with initOde(), and added the freebsd condition around it like the apple condition.

Also, I was getting a bunch of normalization errors, but I think this is helping: adding
Code:
j = contact[i].geom.depth;
      if(j <= 0.f)
         {
         continue;
         }


in the function raydium_ode_near_callback in the for loop, after:

Code:
e1=dGeomGetData(contact[i].geom.g1);
e2=dGeomGetData(contact[i].geom.g2);


and before

Code:
if(e1==NULL || e2==NULL)
     continue; // Deleted, or not one of our elements


, or somewhere around there. So far I havn't seen that error again after doing that.

Matthew


Top
 Profile  
 
PostPosted: Tue Feb 17, 2009 12:24 am 
Offline

Joined: Sun May 04, 2008 3:40 am
Posts: 27
Location: Canada
Hello,

I now have a pretty good freebsd version of raydium and mania drive, along with a (seems to be) working config script.
I had to change stuff in ostatcomp.sh and odyncomp.sh to make it work, so I hope nothing is broken.

There are probably little problems in my script that will have to be dealt with - I don't feel very sure about it.

One issue especially is that I get my php from here:
http://snaps.php.net/php5.2-latest.tar.gz
and my ode from here:
http://downloads.sourceforge.net/opende ... g_mirror=0
Those don't look like 'official' links, though. Maybe there is a better place to point the configure script to?

Also, openal seems to work different in my version - the car engine is very quiet in the external view, and very loud in the internal view.

Anyway, it is working pretty well for me anyway. Any thoughts on what I should do with the stuff now? (upload, etc.)

Thanks for all your help.

Matthew


Top
 Profile  
 
PostPosted: Tue Feb 17, 2009 10:40 am 
Offline

Joined: Tue Jul 08, 2008 2:37 am
Posts: 181
WOW, that sounds wonderful! :D Thanks for your hard work.

mdg583 wrote:
One issue especially is that I get my php from here:
http://snaps.php.net/php5.2-latest.tar.gz
and my ode from here:
http://downloads.sourceforge.net/opende ... g_mirror=0
Those don't look like 'official' links, though. Maybe there is a better place to point the configure script to?
The current configure script also uses the latest PHP 5.2 snapshot available. As Ouille already said, ODE version 0.9 should be a good choice for now. I've already written that I'm using the latest stable versions of the libraries for the Apple stuff. Perhaps you can create some kind of a dependencies package with all the things you had to build yourself from scratch, that are not available on your operating system within the package management in their specific versions and with the needed build options.

mdg583 wrote:
Also, openal seems to work different in my version - the car engine is very quiet in the external view, and very loud in the internal view.
Seems that OpenAL is implemented slightly different on different platforms. Perhaps we're able to tweak this a bit. I think I've also seen a tweak for the Windows OpenAL parts of ManiaDrive.

mdg583 wrote:
Any thoughts on what I should do with the stuff now? (upload, etc.)
Yeah, great idea. You could upload a patch with all the changes you have made. First, please be sure you're on the current Subversion revision R826 using the following command within the Raydium base directory (trunk):
Code:
svn up
If you have new files you want to include you should add them using:
Code:
svn add mynewfile
After that you are ready to create the patch using:
Code:
svn diff > freebsd_r826.patch
You're pleased to upload the patch to:
Code:
ftp://ftp0.cqfd-corp.org/uploads/
After the finished upload the file will be available for us here: http://ftp.cqfd-corp.org/freebsd_r826.patch


Top
 Profile  
 
PostPosted: Tue Feb 17, 2009 10:44 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Quick note here:
The current Linux configure script currently use ODE 0.7 using http://freeway.raydium.org/data/stable_ ... 0.7.tar.gz and that's the version we "officially" support currently.

If we decide to switch to ODE 0.9 (I think we're all OK with this idea, isn't it ?), we should make all needed tests (on each target, I mean), create a new "stable mirror", update configure script(s) and post an announcement about this.

Just another TODO thing :)


Top
 Profile  
 
PostPosted: Wed Feb 18, 2009 3:16 am 
Offline

Joined: Sun May 04, 2008 3:40 am
Posts: 27
Location: Canada
Okay, I uploaded the patch and tested it. (thanks for the detailed instructions.) It didn't work for me the first time - dInfinity wasn't defined. I can't figure out why. I ran configure again with --force-ode-install, and then everything worked.

As for a dependencies package, there were no dependencies which weren't available for freebsd. However, ode and php are still downloaded and compiled with a different set of options.

Matthew

-actually, there may be a bit of a mixup - I simply did svn diff on a older version of raydium - I may have to look at this again another day.


Top
 Profile  
 
PostPosted: Wed Feb 18, 2009 9:46 am 
Offline

Joined: Tue Jul 08, 2008 2:37 am
Posts: 181
Xfennec wrote:
If we decide to switch to ODE 0.9 (I think we're all OK with this idea, isn't it ?), ...
I'm currently using ODE version 0.10.0 for all of my Apple target architectures (Intel, PowerPC and ARM). I can report that this version works very well for me so far. I don't really want to switch to an older version, but I can also understand the idea about the uniformity on all targets.
As of the initial beginning of the Mac OS X port I've tried to use an older ODE version. As far as I can remember this was ODE version 0.7. Don't know exactly the reason why I switched quickly to the newest available, I think there were build problems. Somewhere on this forum I've read a discussion about ODE versions, that there are some problems with the newest ODE version 0.11.0 that are Raydium related and the best thing should be to wait for a new ODE version. Perhaps we can unify the ODE version on all targets in the future.

mdg583 wrote:
Okay, I uploaded the patch and tested it.
Impressive! The patch contains lots of new code and significant comment lines. :D

I don't use the configure script and Makefile myself, but I think the GNU/Linux people, that have applied this patch, will get some problems. Perhaps we can distinguish the FreeBSD related parts from the others instead of replacing them using some conditions like "if [ "`uname`" = "FreeBSD" ]; then ... fi" for the configure script and "ifeq ($(shell uname -s),FreeBSD) ... endif" for the Makefile. Or we could provide different files for each platform (e. g. "make -f Makefile.FreeBSD").

mdg583 wrote:
I simply did svn diff on a older version of raydium.
Seems to be Raydium revision R821 or older. It removes some parts that have been added recently. :roll:


Top
 Profile  
 
PostPosted: Thu Feb 19, 2009 10:10 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
st: ODE 0.10.0 is right too, of course. I was mainly talking about the idea to update our "official" ODE

It's a good start for some BSD support, mdg583. Currently, as st pointed out, there's a few issues with the diff that I may list here :
- it breaks things for Linux in Makefile, compilation scripts and configure ! :)
- it's reversing things we've changed lastly
- it's adding new functions (interesting ones, but that's not the point of this patch)
- the whole "mu" thing may break compatibility for existing applications, we must check all this and do another patch for this
- it's cleaning files (same as above)
- it's adding comments in various C files

Don't get me wrong, your job is good, I'm only trying to help you preparing a future commit about BSD support :)


Top
 Profile  
 
PostPosted: Thu Feb 19, 2009 4:32 pm 
Offline

Joined: Sun May 04, 2008 3:40 am
Posts: 27
Location: Canada
Okay, I will try to work on those things and upload a new patch.

Matthew


Top
 Profile  
 
PostPosted: Mon Mar 02, 2009 10:15 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Nice !
Can I suggest a new thread for all this ? Somewhere in the "Devel" topic, perhaps.


Top
 Profile  
 
PostPosted: Sun Mar 15, 2009 11:34 pm 
Offline

Joined: Sun May 04, 2008 3:40 am
Posts: 27
Location: Canada
Hello, I hope you are all well.

I just put up freebsd_r833.patch and Makefile.FreeBSD.

I cleaned out a bunch of stuff, etc.
Hopefully this works. I left the patch to change double equals to single. I hope this is okay.

Hopefully it will work in Linux, but I am not sure of this.

Also, how to you make Makefile.FreeBSD? I could only test it by renaming this file.

Matthew


Top
 Profile  
 
PostPosted: Mon Mar 16, 2009 10:29 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Please, take a look at my previous post about creating a new thread ... All this is not ManiaDrive related at all :)

I've read quickly the patch, and I still see strange things. For instance :
Code:
-   if [ ! -f "raydium/ode.tar.gz" ]; then
+   if [ ! -f "raydium/ode-0.9.zip" ]; then

Sure, It will break things for Linux, since we use "ode.tar.gz" filename ! :)
You should try to make this patch as small as possible, to ease the maintaining work. In this example, why not downloading the tar.gz version of ODE on sourceforge, for instance ? You may then use the same local filename (ode.tar.gz) with wget.

In other words, there's still too much FreeSB specific conditions in this patch for me to valid it. We should make our best to make this new port as simple as possible. Another good example: we can't have huge bunch of things like:
Code:
+if [ "`uname`" != "FreeBSD" ]; then
+    gcc -g $1 -Wall -o test -static-libgcc \
+    -Wl,-dynamic-linker=/libexec/ld-elf.so.1 -Wl,-Bstatic -L/usr/X11R6/lib/ \
+    -lm -lXi -ljpeg \
+    -Iraydium/ode/include/ raydium/ode/ode/src/libode.a \
+    -lGLEW -lXmu -lXinerama -lopenal -lalut -lvorbisfile -lvorbis -logg \
+    -Iraydium/php/ -Iraydium/php/main/ -Iraydium/php/Zend -Iraydium/php/TSRM raydium/php/libs/libphp5.a \
+    -lcrypt -lssl -lcrypto -lidn -lresolv -lz -lcurl -lxml2 -lssl -lcrypto -lidn -lstdc++ -lm -lX11 -lXext \   
+    -Wl,-Bdynamic -lGL -lGLU -lasound -lpthread   
+else
+    gcc -g $1 -Wall -o test -static-libgcc \
+    -Wl,-dynamic-linker=/libexec/ld-elf.so.1 -Wl,-Bstatic -L/usr/X11R6/lib/ -L/usr/local/lib/ -I/usr/local/include/ \
+    -lm -lXi -ljpeg \
+    -Iraydium/ode/include/ raydium/ode/ode/src/libode.a \
+    -lGLEW -lXmu -lXinerama -lopenal -lalut -lvorbisfile -lvorbis -logg \
+    -Iraydium/php/ -Iraydium/php/main/ -Iraydium/php/Zend -Iraydium/php/TSRM raydium/php/libs/libphp5.a \
+    -lcrypt -lssl -lcrypto -lidn -lz -lcurl -lxml2 -lssl -lcrypto -lidn -lstdc++ -lm -lX11 -lXext -lintl -liconv \
+    -Wl,-Bdynamic -lGL -lGLU -lopenal -lpthread
+fi

... it will be a complete nightmare to update :) (just because iconv is missing ...)


Top
 Profile  
 
PostPosted: Tue Mar 17, 2009 10:59 am 
Offline

Joined: Tue Jul 08, 2008 2:37 am
Posts: 181
mdg583 wrote:
I just put up freebsd_r833.patch and Makefile.FreeBSD.
Nice! Thanks for working on this! I'll set up a FreeBSD environment to test the final patch, because my plan is to own an environment for each target Raydium officially supports.
By the way, you could include the Makefile in the next patch, so we have everything summarized in one file, using:
Code:
svn add Makefile.FreeBSD

st wrote:
I've no more time to proceed and maintain another Raydium operating system port, but I'll try to help you ...
Finally, this seems to be a lie, because the port for the iPhone OS is now public. :twisted:

mdg583 wrote:
How do you make Makefile.FreeBSD? I could only test it by renaming this file.
I've already written the answer to this question here. :)
st wrote:
"make -f Makefile.FreeBSD"
Alternatively, you could read the man page using "man make" to get detailed help.

Xfennec wrote:
Creating a new thread ... All this is not ManiaDrive related at all :)
Perhaps we could move the thread and rename the subject to something more significant like "FreeBSD port" or "Raydium goes FreeBSD".


Top
 Profile  
 
PostPosted: Wed Mar 18, 2009 12:05 am 
Offline

Joined: Sun May 04, 2008 3:40 am
Posts: 27
Location: Canada
How do I move this thread? Or do I just start a new one in the other area?

Yeah, I figured all the extra code in the scripts wouldn't be very good. I will try to change that a bit, but I really am not able to put much time at all into this, and it will be even less after one month.

I think with most freebsd ports, it seems like people download linux sources for a program (or generic sources that don't work on freebsd), and then have a freebsd-specific patch to make it work on freebsd. This could be an option, if a freebsd-specific patch could be made that does break raydium for linux. That way the regular raydium code wouldn't get wrecked at all. Would this be a better option?

Otherwise, I will just try to slim down the patch, getting ode.tar.gz instead of ode.zip, etc. If it is better, I could also use ode 7 and take out some of the code that is just to make ode 9 work.

ode 0.9 seems to only be provided on sourceforge in zip format (here). st, do you know how difficult it is to use ode 0.10? Is there any other changes that need to be made? I will try that for now.

Matthew


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 32 posts ]  Go to page Previous  1, 2, 3  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 7 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group