Search This Blog

22 June 2009

Ardor3D on OpenSolaris

I noticed earlier today that Sun finally changed the licensing on Darkstar, as per my request. Before going and working on my design, I decided to see what the status of DarkMMO was. Jeff has picked it back up, and has started porting it to Ardor3d.

Ardor3d? I hadn't heard of that...

Apparently, Joshua Slack has moved the development from jMonkeyEngine to Ardor3d. The little bit of research I did seems to indicate that there is a bit of a rift with that -- but that Ardor3d is more current.

Ok, well, can I get Ardor3d working on OpenSolaris?

I go and check out their 'getting started' and was very disappointed to see references to Eclipse. Yes, I know many of you out there like Eclipse; but I am a purist and so have been against it since day 1. Besides, I really didn't like IBM's deceptive practices regarding its launch.

Oh well, let's see if this project is worth using after all. I download the source (subversion, yay!) and go to compile it (maven, yay!)... First failure is obvious... I needed to add a mirror to their nexus repository inside mine.

Try again...

Ok, well now the ardor3d-swt is failing. As much as I hate to, I decide to troubleshoot why it isn't building. As could be expected from a non-java library, the problem was caused by their repo not having the native libraries (yes, native - that's the main reason I despise SWT -- whoever heard of requiring native libraries for a java app intentionally?).

Ok, screw it. I commented out the ardor3d-swt module and then added an exclusion for **/*Swt*.java to the compiler in the top level pom. Ok, now everything else builds.

Now to run the example... hmmm... well that's annoying, I don't really want to have to find all the jars to test it... So I copied the dependency plugin configuration from ambrosia's pom into the top level pom and rebuilt.

Good. Now I have all the runtime dependencies for the examples in one place. I added all of them (why is the Java6 -classpath directory not working?) to the classpath, as well as the auto-generated ardor3d-examples-0.6-SNAPSHOT.jar.

Try again. Close.
export LD_LIBRARY_PATH=/export/home/malachi/work/Ardor3Dv1/ardor3d-lwjgl/lib/lwjgl/native/solaris:$LD_LIBRARY_PATH

Try again. Ok this time it runs. Can't use JOGL in the popup because there isn't a native library for it. Can't use 8 samples, because then it complains about GLX13 configuration. Can't use fullscreen -- well, that's a bit harsh. I *can* use fullscreen but it looks like crap because it changes to 320x240 and has severe artifacts. However, 4 samples, LWJGL, 1152x864 looks pretty good. Colors look a LOT better on 1024x768 though.

So not sure how much time I will spend on it. Definitely appears that it will be a bit of work to make it usable on OpenSolaris. Then again, maybe I should retry on Windows since my Emotiv Epoc won't run on anything else right now anyways.

BTW: To run the example after setting up the classpath and LD_LIBRARY_PATH...
java com.ardor3d.example.basic.BoxExample

5 comments:

  1. Hey Malachi, thank you for your ticket and I'm sorry to hear you had so much trouble getting Ardor3D working! Your environment is, as you note above through your asides about eclipse, etc., notably different than what we develop on so I'm glad you made the effort. I am sure our community would benefit greatly if you would spend some more time with us on Trac and the forums helping us improve things irt OpenSolaris and just in general.

    Best,

    -- Josh (Renanse)

    ReplyDelete
  2. Sure, I can assist as time permits.

    ReplyDelete
  3. So I did some testing on the other box...

    I installed Eclipse; installed /usr/eclipse/plugins/org.eclipse.swt.gtk.solaris.x86.3.4.0.HEAD.jar as my swt.jar; and then modified the ardor3d-swt/pom.xml to reference it for solaris-x86 5.11...

    Compile works at that point for the entire project, but I was unable to run the sample as above due to an LWJGL exception (Unable to choose visual).

    I will try on the home machine when I get a chance.

    ReplyDelete
  4. ardorlabs posted an update on the ticket.

    The swt library can be downloaded for Solaris here. Installing that into the repo and then modifying the pom will allow the swt bits to work.

    I believe we will have the project updated shortly.

    ReplyDelete
  5. This is now working with 0.6-SNAPSHOT

    ReplyDelete