Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (524)
Games in Android Showcase (127)
games submitted by our members
Games in WIP (593)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: 1 [2]
  ignore  |  Print  
  JOODE: documentation  (Read 6575 times)
0 Members and 1 Guest are viewing this topic.
Offline Marvin Fröhlich

Senior Devvie




May the 4th, be with you...


« Reply #30 - Posted 2007-05-04 00:44:58 »

@Tom: I'm really highly impressed of how much work and effort you put into the project these days. Thank you very much for that. I wish, I had the time to play around with physics a little more.

Hey, don't you want to ask Kevin or Chris, if you could get Moderator rights in this forum? then you could split this thread, since it has become a little off topic Wink.

Marvin
Offline arne

Senior Devvie




money is the worst drug- we should not let it rule


« Reply #31 - Posted 2007-05-04 11:16:24 »

yeah - Eulerstepper seems to run very well with it Smiley

great work Smiley - I think Joode is now finally in a state, which we could really call useable Smiley - It's damn time for me to create a first version of the Joode tutorial Wink

About this mu-thingi: I think for most simulation it is ok to have non mu-friction, but It'll be a nice thing to have.

cheers,
Arne

:: JOODE :: Xith3d :: OdeJava ::
Offline t_larkworthy

Senior Devvie


Medals: 1
Projects: 1


Google App Engine Rocks!


« Reply #32 - Posted 2007-05-04 16:03:26 »

Nah, I want mu friction. If you put the surface parameter "mu" to infinite, the objects get stuck in each other. Its a well documented behaviour ODE suffers from (but they have the solution, I want it too!).

Cheers for the support guys.

PS I don't want moderator rights, I have enough work to do as it is!


Runesketch: an Online CCG built on Google App Engine where players draw their cards and trade. Fight, draw or trade yourself to success.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline arne

Senior Devvie




money is the worst drug- we should not let it rule


« Reply #33 - Posted 2007-05-06 17:51:14 »

I think it's time to get this thread "on topic" again Wink

I've committed the first version of the documentation into the svn. You can find it in doc/joode-intro. How can we also put it on our Joode-webpage, so newbies won't have to hassle with svn?

btw. I don't like the title of the document I've created very much yet. So I'm open for renamings Wink Actually I'm not yet quite sure, what we want to put inside it, too.

I'll be away till next thursday, so don't expect me to answer till then Wink

cheers,
Arne

PS: And yes - Joints are yet missing in the document.

:: JOODE :: Xith3d :: OdeJava ::
Offline Marvin Fröhlich

Senior Devvie




May the 4th, be with you...


« Reply #34 - Posted 2007-05-06 22:36:31 »

OK, I'm currently reading your document. And I will write about my floating impressions...

  • Doesn't JOODE mean "Java Object-Oriented ODE" .> "Java Object-Oriented Open Dynamics Engine"?
  • Weren't ODEJava's problems with native libs solved recently?
  • Gravitation -> Gravity Smiley
  • Triangle Mesh (list entry) should be annotated with the postfix "(TriMesh)", since this Word will be found in most documentations (and should be used in this doc).
  • I would not write, that ODEJava should be faster than JOODE, because it uses native libs. Java can be faster than C(++) even for number cruncher code (Java isn't that bad Wink). So ODEJava might be slower just because it has to handle the JNI overhead. But, yes, benchmarks are to do Smiley.
  • In the very first example you should move line #32 between lines #38 and #38 (and #43 after it), since the canvas is needed first there and if errors occurr while scene setup, OpenGL would not yet have been initialized and would not be hard-destroyed. This is not the best thing for finished games, but the best for testing.
  • The step() method should be called like this:
1  
2  
3  
4  
5  
6  
7  
@Override
protected void prepareNextFrame(long gameTime, long frameTime)
{
    super.prepareNextFrame( gameTime, frameTime );
   
    w.step( frameTime * 1000L );
}
    Well, maybe we should provide the frameTime in nano seconds in xith.[/li]
  • I guess, your addGeom() method should take a NodeGroup instead of a BranchGroup. A BranchGroup is solely for the root of the scene (a RenderPass). And I guess, you want to add the Geom to any place in the scenegraph.
  • You should use a Monospace Font for the code examples. I think, it would be good to use a background color for the code blocks like in XIN.
  • EDIT: The RenderLoop method prepareNextFrame() is meant to be used aith the super call as the first one. The renderNextFrame() method should have the super call as the last one. Thsi should be used like this in the documentation. It is not always used in the JOODE test in SVN. Maybe this should also be changed, if it wasn't made by intent, was it?

After all it is a good beginning of a great documentation. I finally begin to understand, how JOODE works Wink. Keep it up Smiley.

Marvin
Offline Marvin Fröhlich

Senior Devvie




May the 4th, be with you...


« Reply #35 - Posted 2007-05-11 00:04:13 »

The step() method should be called like this:
1  
2  
3  
4  
5  
6  
7  
@Override
protected void prepareNextFrame(long gameTime, long frameTime)
{
    super.prepareNextFrame( gameTime, frameTime );
   
    w.step( frameTime * 1000L );
}

Well, maybe we should provide the frameTime in nano seconds in xith.[/li][/list]

I've changed Xith appropriately and compiled and added new xith jars to the JOODE SVN trunk. Now you can simply call
1  
renderLoop.setTimingMode( TimingMode.MICROSECONDS );

Then the frameTime will be passed in microseconds to these methods. And then you can simply call
1  
2  
3  
4  
5  
6  
7  
@Override
protected void prepareNextFrame(long gameTime, long frameTime)
{
    super.prepareNextFrame( gameTime, frameTime );
   
    w.step( frameTime );
}


Should be a useful improvement for JOODE, isn't it Smiley?

Marvin
Offline t_larkworthy

Senior Devvie


Medals: 1
Projects: 1


Google App Engine Rocks!


« Reply #36 - Posted 2007-05-12 22:22:13 »

Sorry. Have been sick this week. I will get my comments on documentation etc. as soon as I can.

Runesketch: an Online CCG built on Google App Engine where players draw their cards and trade. Fight, draw or trade yourself to success.
Offline arne

Senior Devvie




money is the worst drug- we should not let it rule


« Reply #37 - Posted 2007-05-22 10:38:35 »

OK, I'm currently reading your document. And I will write about my floating impressions...

Doesn't JOODE mean "Java Object-Oriented ODE" .> "Java Object-Oriented Open Dynamics Engine"?
nope, then it would have been JOOODE Wink
Quote
Weren't ODEJava's problems with native libs solved recently?
dunno - it's ugly anyways Wink
Quote
Gravitation -> Gravity Smiley
done
Quote
Triangle Mesh (list entry) should be annotated with the postfix "(TriMesh)", since this Word will be found in most documentations (and should be used in this doc).
you've got a point - done
Quote
I would not write, that ODEJava should be faster than JOODE, because it uses native libs. Java can be faster than C(++) even for number cruncher code (Java isn't that bad Wink). So ODEJava might be slower just because it has to handle the JNI overhead. But, yes, benchmarks are to do Smiley.
changed the should to might Wink
Quote
In the very first example you should move line #32 between lines #38 and #38 (and #43 after it), since the canvas is needed first there and if errors occurr while scene setup, OpenGL would not yet have been initialized and would not be hard-destroyed. This is not the best thing for finished games, but the best for testing.
I don't understand you here. How can I move something between one line. And what am I supposed to do with line 43 Huh
Quote
The step() method should be called like this:
1  
2  
3  
4  
5  
6  
7  
@Override
protected void prepareNextFrame(long gameTime, long frameTime)
{
    super.prepareNextFrame( gameTime, frameTime );
   
    w.step( frameTime * 1000L );
}

Well, maybe we should provide the frameTime in nano seconds in xith.
I didn't made those frameTime dependent step sizes, because for now I prefer a stable simulation - jumps can have strange effects in physics simulation
Quote
I guess, your addGeom() method should take a NodeGroup instead of a BranchGroup. A BranchGroup is solely for the root of the scene (a RenderPass). And I guess, you want to add the Geom to any place in the scenegraph.
mmh - yeah, but I won't change that now, because than I would also have to change that XithBinding stuff.
Quote
You should use a Monospace Font for the code examples. I think, it would be good to use a background color for the code blocks like in XIN.
no - When latex gives me Java syntax highlighting, why not use it?
Quote
EDIT: The RenderLoop method prepareNextFrame() is meant to be used aith the super call as the first one. The renderNextFrame() method should have the super call as the last one. Thsi should be used like this in the documentation. It is not always used in the JOODE test in SVN. Maybe this should also be changed, if it wasn't made by intent, was it?
changed

thanks for the feedback Smiley

new version is in the svn now.

Arne

:: JOODE :: Xith3d :: OdeJava ::
Offline Marvin Fröhlich

Senior Devvie




May the 4th, be with you...


« Reply #38 - Posted 2007-05-22 16:34:40 »

I don't understand you here. How can I move something between one line. And what am I supposed to do with line 43 Huh

Please compare these two snippets and you will see, what I meant. (Of course two times #38 was my fault Wink).
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
public Example ( ) {
    super ( 128 f ) ;
   
    // first we’ll setup Xith (we want to show our results somehow , right ?)
    Tuple3f eyePosition = new Vector3f( 10.0f, 10.0f, 5.0f );
    Tuple3f viewFocus = new Vector3f( 0.0f, 0.0f, 0.0f );
    Tuple3f vecUp = new Vector3f( 0.0f, 1.0f, 0.0f );
   
    Xith3DEnvironment env = new Xith3DEnvironment( eyePosition, viewFocus, vecUp, this );
    canvas = Canvas3DFactory.createWindowed( 800, 600, ”My empty scene” );
   
    this. getInputManager().registerKeyboardAndMouse(canvas);
   
    BranchGroup bg = new BranchGroup();
    env.addPerspectiveBranch( bg );
   
    env.addCanvas( canvas );
   
    this.begin();
}


1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
public Example ( ) {
    super ( 128 f ) ;
   
    // first we’ll setup Xith (we want to show our results somehow , right ?)
    Tuple3f eyePosition = new Vector3f( 10.0f, 10.0f, 5.0f );
    Tuple3f viewFocus = new Vector3f( 0.0f, 0.0f, 0.0f );
    Tuple3f vecUp = new Vector3f( 0.0f, 1.0f, 0.0f );
   
    Xith3DEnvironment env = new Xith3DEnvironment( eyePosition, viewFocus, vecUp, this );
   
    this. getInputManager().registerKeyboardAndMouse(canvas);
   
    BranchGroup bg = new BranchGroup();
    env.addPerspectiveBranch( bg );
   
    canvas = Canvas3DFactory.createWindowed( 800, 600, ”My empty scene” );
    env.addCanvas( canvas );
   
    this.begin();
}


You will see, that the Canvas3D is created after the scene has been set-up. So when there's an unhandled exception in the scene set-up code and the app will crash, it doesn't leave an uncleaned OpenGL context.

Of course when the app (game) is finished, there should not be any exception of this kind and you might want an OpenGL rendered loading screen or what ever. So you will need the Canvas from the beginnig on. But you might see my point.

I didn't made those frameTime dependent step sizes, because for now I prefer a stable simulation - jumps can have strange effects in physics simulation

OK, I understand. But I guess, there should be a comment in the code snippet or in the doc-text or where ever, that says, how it should be done in a real game (just as for the canvas thing).

no - When latex gives me Java syntax highlighting, why not use it?

Doesn't it give Java syntax highlighting with an alternative font?


thanks for the feedback Smiley

Any time Smiley.

Just another thing to mention:
  • The overridden onFPSCountIntervalHit() method should get a super call, since otherwise some other things won't work.


Marvin
Offline arne

Senior Devvie




money is the worst drug- we should not let it rule


« Reply #39 - Posted 2007-05-22 17:19:14 »

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
public Example ( ) {
    super ( 128 f ) ;
   
    // first we’ll setup Xith (we want to show our results somehow , right ?)
    Tuple3f eyePosition = new Vector3f( 10.0f, 10.0f, 5.0f );
    Tuple3f viewFocus = new Vector3f( 0.0f, 0.0f, 0.0f );
    Tuple3f vecUp = new Vector3f( 0.0f, 1.0f, 0.0f );
   
    Xith3DEnvironment env = new Xith3DEnvironment( eyePosition, viewFocus, vecUp, this );
   
    this. getInputManager().registerKeyboardAndMouse(canvas);
   
    BranchGroup bg = new BranchGroup();
    env.addPerspectiveBranch( bg );
   
    canvas = Canvas3DFactory.createWindowed( 800, 600, ”My empty scene” );
    env.addCanvas( canvas );
   
    this.begin();
}


this won't work, because
1  
this. getInputManager().registerKeyboardAndMouse(canvas);

needs the canvas to be created already. But at that point it is still null. Or is that canvas argument not needed? Wink

Quote
Just another thing to mention:

    * The overridden onFPSCountIntervalHit() method should get a super call, since otherwise some other things won't work.

might also be the same in XIN Wink

Arne

:: JOODE :: Xith3d :: OdeJava ::
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Marvin Fröhlich

Senior Devvie




May the 4th, be with you...


« Reply #40 - Posted 2007-05-22 23:51:13 »

this won't work, because
1  
this. getInputManager().registerKeyboardAndMouse(canvas);

needs the canvas to be created already. But at that point it is still null. Or is that canvas argument not needed? Wink

Oh, yes. This line must be after the canvas creation.

might also be the same in XIN Wink

I will check it Smiley.

Marvin
Pages: 1 [2]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

toopeicgaming1999 (16 views)
2014-11-26 15:22:04

toopeicgaming1999 (15 views)
2014-11-26 15:20:36

toopeicgaming1999 (7 views)
2014-11-26 15:20:08

SHC (24 views)
2014-11-25 12:00:59

SHC (24 views)
2014-11-25 11:53:45

Norakomi (24 views)
2014-11-25 11:26:43

Gibbo3771 (22 views)
2014-11-24 19:59:16

trollwarrior1 (36 views)
2014-11-22 12:13:56

xFryIx (74 views)
2014-11-13 12:34:49

digdugdiggy (52 views)
2014-11-12 21:11:50
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!