Re: Xith3D Features

how does xith3d compare with ogre4j and jme in terms of reliability, features, performance, and ease of use? i’m looking at jpct as well for the ability to have both a desktop and web version (though the performance of both seem to lack). is the latest java3d performing better now to consider using it for a game, especially when 1.4 becomes stable? idx3d seems to be a nice software-based renderer, though lack of open source and commercial licensing kills it. there seems to be many others out there as well. open mind seems to be competitive too on the hardware-based engines.

i’m also looking at the audio, server-side physics modeling, animation, and the ability to use swing on top of a hud (don’t care for most widget packages, especially native ones—i’m actually impressed too when a game allows you to tab between fields on login dialogs too). i’m not sure whether to use a simple multi-threaded tcp approach and add udp when performance needs to improved for movement or going with a canned udp solution, tcp multiplex, or tcp/udp solution. odejava seems to be part of the solution though i’m sure server physics could be accomplished other ways as well.

Don’t know about ogre4j or jme

For me…

o I have never had a Xith function error / exception

o There have been a few Xith / Java3D comparisons, mainly by Javacooldude. The Xith examples were alwyas faster. Xith is inherently faster simply because you have access to the render loop, behaviors on the other hand are…err…abstratct suggestions that something may happen some time in the future. Java3D is designed with multi threaded access in mind, there are most likely (I don’t know for a fact) numerous symchronize blocks of code…performance drop…

o idx3d (is that peter wesslers work??) is not a scene graph, I have used it in the past but found the limited documentation frustrating.

o audio is most likely comparable. I use it in my game without a problem.

o swing works on top and there is a limited swing rendered to Xith GUI capability that I use. croft in his work uses swing huds

o when you examine various aspects please consider how active the group is, xith has several daily posts and periodic demos and upgrades. New users come and go but most leave something new in the system

thank you for the comments.

i’m finding ogre4j might be lacking. ogre3d is great, but the java bindings just aren’t there yet.

i had someone else give a suggestion to look at jME for what I’m trying to do. the latest release of jME seems to address a lot of issues. they seem to have reorganized a lot of things, separating BUI and an eclipse-like editor. it sounds like Xith3D and jME are in tight competition.

i wonder if the annoited java 3d would be more viable if they implemented a single-threaded and a multi-threaded back-end to be chosen by the api.

just curious why some people would favor swt for games since games really want a custom look-and-feel rather than a native look-and-feel. i can understand why a game writer would want to use a simplified UI over Swing though Swing is designed to give you that ability to customize it, at the expense of complicated the API and possible performance issues. any simplified UI toolkits you would recommend that are easier to use than Swing? i know writing custom UI widgets can be time-consuming, since i’ve already gone down the path of creating one for j2me.

i’m always impressed by a game that allows you to tab between the username and password fields.

I looked at ogre4j, my thoughts are this: With Java, you want to try and push the native code as far down the stack as possible. The reason is that bugs in the native code are a great deal more nasty than java ones. With Xith3D we have pushed the native code as far as possible - right down to the interface with the graphics card. IMHO this makes Xith3D a better API for Java, at least in an engineering sense.

jME and Xith3D are in competition, though we do have different goals. For example, one goal of Xith3D is to provide abstraction to the underlying rendering API insulating you from these changes.

Swing is quite nice for pre-game menu’s, especailly where performance is no issue. I am contemplating taking this route myself. Especially now that it looks like our swing package will be maintained again.

Will.

I dove into writing the game with jME. The dialog at the start is nice, as well as having prebuilt game abstractions. However, I’m finding that I’ll still want to customize those things and that will require me building my own anyway. As a consequence, I’m finding that Xith3D might be the better route. I can always steal from jME to write the game abstractions in Xith3D.

I like the OO abstraction to Xith3D as well being a long-time Java programmer. The jME abstraction has that SPHIGS feel to it, making Javadoc useless, and is one reason why I didn’t pursue 3D graphics before now. The documentation for both is scattered at best, but at least with Xith3D the architecture isn’t confusing, making even a weakly documented javadoc useful.

The route to making money from jME and Xith3D might be writing the book. I’m guessing that is how Sun makes money off Java.

A few questions. Can Swing or AWT overlays be used in Xith3D ran under LWJGL? Can Xith3D do full-screen ran under LWJGL? Are textures loaded with NIO buffers? How fast is the model loader compared to the jME loader? I’m seeing ASE support, which are text files. Is there built-in binary loader? Sorry for the newbie questions.

By all means, steal away :slight_smile:

I like it too, though most of the credit must go to the Java3D designers. No point reinventing something that works very well though…

The thought has crossed my mind I agree. Maybe after I’ve finished my game :wink: Like the game money wouldn’t be the main objective (I doubt just how much it would sell).

I havn’t tried AWT overlays with LWJGL. LWJGL does have an AWT version lately but Xith3D does not yet support that feature (it is one we can potentially add though).

Yes Xith3D can do full screen with LWJGL, and it works very nicely thank you.

Make sure you use TextureLoader2 (not the old TextureLoader) and you should find your texutres are pretty fast at loading. Be warned that some model loaders may not yet use this new loader themselves.

The ASE loader is slower than I would like. When my game is more advanced I plan to re-implement the loader using regex (which is blazingly fast) for parsing.

There are quite a good number of Xith3D loaders now, all in the toolkit. I suggest running some tests of your own.

Cheers,

Will.

My thoughts are that a text-based (or XML) format for the models might be good since it can be used well with CVS (though I would hate to run a merge on a model), and then, use some batch convert in the ant build scripts to a format that quickly loads at run-time. This would require some experimentation to see which model format retains the most information and loads the quickest. They’re suppose to have a 4 year degree almost complete in 3D modeling so I’ll use whatever format they put into CVS and wait on optimizing load times at a later time.

I think Swing overlays for LWJGL would be highly desired since it would allow switching from JOGL to JWJGL or for quickly prototyping of UI elements. I’m using a Swing-based frame to start the game to login, change basic settings, and display a Web page, but for the rest of the game, I’ll probably use custom UI components rendered in a 3D scene for performance reasons. Both Swing and custom components take time to customize, it is just Swing allows for quick prototyping.

The fullscreen mode in LWJGL does work very well.