Wanting to Dive into Java3D

Ok, I want to begin diving into Java3D. But I don’t know where to start, I never programmed 3D before.

Ok, first off:
Which API is the fastest/best to use. - Whichever API I use, I need great tutorials, so I guess Java3D api is fine?

I need tutorials, I do not know where to start, I also want to use OpenGL.

I especially want to have landscapes, geometry, model loaders, and textures, and lighting effects.
Well, I’d like to start off simple, but the hugest concern is when it comes to collision detection in 3D.

Thank you all for your help! I would like to use 3D acceleration!!

Ok, I’ve been looking at various engines.

I want to MAYBE start off creating a simple, but nice fps. I have looked at various engines, I am not sure which is the best AND easiest to use. I have seen screenshots of the jmonkey engine, and it looks nicer than lwgl, but that just maybe the products being produced. I looked at xith3d, it looks nice too, but seems like little documentation or support atm. And lwjl doesnt seem to have nice examples, but then again i guess they arent showing the potential.

What you’re looking for are game engine libraries like jME (Java Monkey Engine). Java3D is simply a 3D scenegraphy engine, I don’t believe it’s intended for games although you can easily make games in it.

But, jumping straight into that arena will only be a waste of time, since I assume you don’t have any 3D programming fundamentals.
Learning 3D game programming is a very long and a steep process, don’t expect it to take 1 month, or even a year. This is a field where you don’t stop studying, it’s that B_I_G.
Ok, enough with the scary part, if you made it past my warning then here is what you should do:

  1. Pick up a book that talks about 3D Computer Graphics (using OpenGL). That book should cover:
  • OpenGL library
  • Basic Linear Algebra math
  • Camera stuff
  • etc. (not very GAME-specific though)
  1. Then you should pick up a book that talks about game engine design, such as scenegraphy game engines (that Java3D and jME are)
  2. After that you’ll spend eternity reading up on all those nifty algorithms and techniques that actually make games what they are.

You also need to understand what the purpose of all those different API’s are,such as; OpenGL, Java3D, LWJGL, jME, Xith3D, JOGL, etc. For instance, jME uses LWJGL :slight_smile:

darn, i was afraid of this, well im going to ignore that warming for now.

So which engine? At least get me started :stuck_out_tongue:

i wouldnt mind starting off making a game that looks like counter-strike one.

Oh, what a modest approach for a beginner. What about a spinning cube instead?

Then, for a ‘simple CS’, get acquaintaned with BSP or other PVS systems, animation systems, IK … and start writing a bunch of good tools (after buying a modeler and learn how to use it).

For this is a Java3D forum, people here are supposed to propose Java3D. Anyway jME is a good choice for a game. Go for that. And take a look at Xith3D, too.

Or take another perspective: what data do you have? Model format? Scene format? Than look for a 3D engine supporting that format. That’s the way I came to Java3D (although those days jME and Xith3D didn’t yet exist).

I would say Java3D is a good starting point. It is quite well documented and there are some online tutorials and even several books about it. You can easily switch to Xith3D from there later, since it is very similar in concept. I would skip learning all the basics like the different APIs for now. I am more for a “top down” learning approach: first create something higher level (using Java3D) and later dive in the details, to keep you motivated. On the other hand you will have to learn linear algebra math quite soon or you’ll get stuck with the rotating cube :wink:

From what I see on the feature and example list, jME seems to be the most mature 3D games engine for java so far, but I haven’t used it till now.

Sorry for under-estimating the counter-strike one thingy, yet i KNEW it would be HARD to program, i was saying that, that was an ultimate goal, meaning i didnt have to worry about real shaders or serious physics.

I dont know linear algebra, im in pre-calculus in high school!

Working throught the official java3d tutorial maybe a good starting point: http://java.sun.com/developer/onlineTraining/java3d/index.html
A quick google search for “vector math primer” resulted in this tutorial: http://triplebuffer.devmaster.net/file.php?id=5&page=1

  1. Work through all chapters of the Java3D tutorial
  2. Understand the vector math tutorial and try to use the new knowledge by modifying the Java3D tutorials code
  3. Invent an own simple 3D program (maybe some rooms with furniture exported from a modelling program)

Go through this steps in the given order and think of a counter strike clone after accomplishing all tasks :wink: Come back and ask questions, if you need assistence.

Good Luck!

For tutorials,

 I recommend the book [url=http://fivedots.coe.psu.ac.th/~ad/jg/]Killer Game Prigramming in Java[/url]. Has many chapters for Java3D and the code is online.

thanks guys.

for some reason, i plan to dive into c++ instead, sorry for being un-patriotic.

You’ll find no things simpler there my friend.

i know, but i need serious rewards.

I did the same once and had a very hard time. After all, the only thing I have learned was to avoid C++. If you want to learn C++, it’s OK to do so. If you want to write a somewhat advanced game engine while learning C++, you will probably fail.

Some advice:

  • Use virtual destructors
  • Implement decent copy constructors when allocating and deallocating memory in your class
  • In fact, learn every aspect you can about copy-constructors!
  • Although arrays and pointers are simililar in usage, they have to be treated different in memory deallocation
  • Use pure virtual classes to immitate interfaces where possible
  • Avoid multiple inheritance where you can (use ^ interfaces instead)
  • Learn every aspect you can about memory debugging tools (for searching memory leaks and unwanted memory deallocation)
  • Buy and read The C++ Programming Language from Bjarne Stroustrup (C++ inventor)

Good luck and may the Segfault be with you :wink:

You don’t seem to have an idea what you’re getting yourself into, but whatever. You’ll fail anyway, and then come back to these forums.

If I wanted to create something that was feasible, would potentially reach a large audience and might give me an inroad into the industry I wouldn’t really be thinking in terms of languages- I’d be looking at writing a mod rather than starting a game from scratch.

I’m not diving into C++ DirectX for a long time. I just haven’t seen Java using the latest tech when it comes to 3D. And you know, the overall C syntax turns me on more.

Just a food for thought: The latest in 3D is neither written in C or Java, since it runs on the GPU…
And for your liking of the overall C(++) syntax - believe me: you will be cured :wink:

ok, i am cured.

i switched back to java again. mainly because i still need to be dedicated towards it for school, and ya…

ROFL

…but I still say its ‘better.’