Java User Group Presentation

Howdy,



I’m going to be presenting jME at my Java User Group (JUG) in March. Actually I hope to do a series of presentations, starting with an introduction to the major architectural aspects of jME, then following up with more detailed presentations for each sub-system.



If all goes well and there is still some interest from the JUG, I want to do another series that goes through the development of a modeler/level builder based on jME, taking it from requirements and use cases to detailed class diagrams.



I’ll be posting links to the first presentation here, as I develop it, for review, criticism, suggestions, and general feedback from the jME experts. Hopefully some of it can be used for jME documentation.



I will post an outline in a few days. Any and all feedback is welcome.



Thanks,

Gregg

Sounds exciting. I’ll give all the help I possibly can. Just let me know what I can do, if you need any other help other than reading the presentation.

Wow. I’m impressed. That sounds really cool, Gregg. Of course, I’ll do whatever I can to help. This might be just what we need to generate “critical mass” for jME.

A rather minor quibble, I realize, but isn’t “scenegraph” one word? Truth be told, I’ve seen it both ways but I prefer the compound. Another thing: I’d consider the orange and blue rows to be one architechtural “unit”. Perhaps you disagree, but I’d colour the all the elements the same. Apart from that, it looks great and I wish you the best of luck in your presentation.

Looks good Gregg. I’m not sure if it’s scene graph or scenegraph either. I just looked it up in 3D Game Engine Design and he uses two words. No idea which is correct.



Looking forward to the rest of the presentation.

Thanks for the feedback.

Hi Mark,



I would like to add some ‘history’ and ‘future plans’ information to the presentation I’m working on.



So, when you have time, I was wondering if you could answer some questions for me? Let me know if you already have this information posted some where and I can get it from there.



When did you start working on jME?



What motivated you to start working on it?



When did you offically start the project?



Why did you choose to make it open source?



Why did you choose BSD licensing?



Do you plan to develop a game with jME?



Is there anything else you would like for me to mention, opportunites for participation, future plans, etc.?



Thanks,

Gregg

When did you start working on jME?


I began jME as a idea in June of 2003. I began the rewrite (scene graph based) in September of 2003. I realized that the older jME is not robust at all, I thought it'd be a good idea for individual objects to handle rendering themselves, but soon realized that it did on allow for any optimizations in the rendering pipeline, did not allow for pluggable renderers, and I was writing the same rendering code for multiple things. So I started over.

What motivated you to start working on it?


The Monkey Engine was originally a C++ project. I started it just to play around a little bit. I had gotten as far as having models running around terrain. Since I work with Java every day, I was curious about what was available for 3D graphics in the Java world. I had played with gl4java years before, but didn't really like it. I then found LWJGL and started playing around with it some. I was suprised to find that there were no (at the time) major game engines using Java with a great tool like LWJGL. I then happened upon David Eberly's book. I found it to be unbelievably difficult to understand but unbelievably powerful once I did get it. So, I thought why not and started my own game engine. Of course, since then JOGL appeared, Xith3D appeared, etc. I didn't really promote jME early on and the Xith3D crew really pushed it on Javagaming.org, so they got the "official" support I guess you could say. However, when I realized they were basically porting Java3D, I stuck it out with jME, because I think David Eberly's design is cleaner.


When did you offically start the project?


jME became part of the dev.java.net middleware in October of 2003. I initially went to Sourceforge at the same time, but their CVS was down, and I didn't want to wait.

Why did you choose to make it open source?


A couple reasons. 1. I wanted to help out where I could. I knew that alone I wouldn't make something that had all the features people wanted. I knew I needed help, and the open source community was where I could find it. I was just doing this for my own learning and enjoyment, so I thought it would be fun to do it with others.

2. I wanted to fluff up my resume some. :) So, making it open source, writing things as clean as I could, would give prospective employers something to look at.


Why did you choose BSD licensing?


To tell you the truth, I didn't care about licensing at all. But I knew I should put SOMETHING on there to protect myself. Plus, a part of me didn't want anyone ripping me off (legally anyways). So, I chose the least constraining license I could, just to get my name on the source, and let users do whatever they wanted to with it.

Do you plan to develop a game with jME?


Possibly. I've been asked this before. For some odd reason, I enjoy writing the boring stuff. The junk behind the interesting things. I find myself getting wrapped up in data structures rather than game play. Now that I have an opportunity to write a game professionally, using a pre-exisiting engine (RenderWare) this will give me a view from the other side, and I might very well tackle a game. A tech demo for jME if nothing else.

Is there anything else you would like for me to mention, opportunites for participation, future plans, etc.?


Everyone is free to participate, join, contribute, etc. If you can code, and you want to help, I'm not going to turn you away.

Future plans are not set in stone. I want to finish the core scene graph (terrain pages, spatial partioning (BSP, portal, etc), some basic effects), then I'll add whatever I want to add or what someone requests. This is fun for me, so I'm not going to treat it like a job. If there is something cool to add, I'll add it.

There are still lots of opportunity to help build up the engine. Specifically in the physics and AI realm. If I get bored with graphics, I might try my hand at those.

well said mojomonkey, well said! gets a standing ovation

reads like a nice magazine interview. I sense a taste of things to come. :wink:

Thanks Mark! This is some good stuff to add to the presentation.



Gregg

Howdy,



I’m going to be focusing on finishing my JUG presentation for the next week or so. The JUG meeting is a little less than two weeks away. I hope to have a draft of the entire presentation done soon enough so anyone on the forum that cares to critique it, can do so.



I just want to say that all you guys working on jME are providing me with a very impressive system to show off at the Fort Worth JUG. Everything from the WebStart stuff and the demos, right down to the jME architecture. It’s all very cool!



Thanks for doing an incredible job! :smiley:



Gregg

Great Gregg. I hope the presentation goes well, and I’d love to see what you got going. We’ll try not to break the webstart stuff on the day of your presentation. :slight_smile:

Hello,



I working the scene graph part of my presentation. I’m using Eberly’s book as a reference and using jME to show some implementation details.



Can anyone recommend one or more of the demos as good examples of scene graph mechanics in action?



Something that demonstrates the main categories: Transforms, bounding volumes, render state, and animation state.



Thanks,

Gregg

Hi Gregg,



Well, I guess we’ll just have to give you the demos you need. First of all, let me know exactly what you’d like to see, and let me know when you need it by. I’ll make sure to make those demos the priority so you can meet any deadlines. Just give me what you need to see.

Hi Mark,



Sorry for my blatant fishing for a volunteer. ://



Would it be possible to create a scene with a few simple geometrics, like a cube, cone, or sphere?



Then be able to click on the geometrics to toggle different things on a sub-tree like a light state or the visibility. It might be cool to transform a sub-tree without affecting another sub-tree.



I would like to show how it’s possible to change the state of one sub-tree without changing another sub-tree. Or being able to change both sub-trees if I click on a higher node.



It doesn’t need to be fancy, just simple toggles would be sufficient.



I give the presentation on March 18th, so if I had it by the 17th that would be plenty of time to get it in.



If it’s to much trouble don’t worry about it. I hate having deadlines. :slight_smile:



Thanks,

Gregg

I’ll get on it. That’s a demo that should be there anyway. I’ll work on that this week.

I decided to go ahead and post what I’ve got so far for the presentation. So, if you want to, take a look at it and then critique away.



http://www.synthaworks.com/jme/presentation/IntroTojME.pdf



Also, I’m building this thing with OpenOffice so, Mark, if you want me to put it CVS when I’m finished with it I can. That way it can be updated by the community as jME matures.



Gregg

I just read through your presentation, Gregg. I’m really impressed! I’m sure this will turn out to be an excellent presentation; you’ve certainly put a lot of effort into it.



One small thing: it appears that some UML diagrams are cut off a bit on the bottom edge, such that the lower border is missing. Not a huge deal, just something that caught my eye.

Thanks for pointing that out, I hadn’t noticed it.



Gregg