Java-Gaming.org    
Featured games (91)
games approved by the League of Dukes
Games in Showcase (581)
games submitted by our members
Games in WIP (500)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Java 3D Games Programming Chapters online  (Read 3135 times)
0 Members and 1 Guest are viewing this topic.
Offline Andrew Davison

Junior Member


Medals: 2



« Posted 2003-05-21 15:56:48 »

Dear All,

I've been working on a book tentatively called:
 
Java Programming Techniques
for 2D, 2.5D, 3D, and Network Games

I've just placed the 10 chapters on Java 3D (including source code) online at:

  http://fivedots.coe.psu.ac.th/~ad/jg/

Please download it, try it. I'd like comments.

Thanks,

 Andrew

Dr. Andrew Davison
Dept. of Computer Engineering
Prince of Songkla University, Hat Yai
Songkhla 90112, Thailand
Offline Kevdog

Junior Member





« Reply #1 - Posted 2003-05-22 18:02:26 »

I'm reading the articles now and they are very nice.  The code that goes along with them is also very good (except the styling... ugh... but to each their own Cheesy ).  Still on ch 9, but read ch15 first Smiley

One thing that puzzles me, why do you say that J3D uses the Y axis as vertical?  I've always used the Z axis as vertical in J3D.  I haven't seen anything in the API which restricts the "ground" to xz and "vertical" to the y.  If your checkered tiles went along the xy axes rather than xz, then z would be "vertical".

There are only 10 types of people, those who understand binary and those who don't!
Offline Herkules

Senior Member




Friendly fire isn't friendly!


« Reply #2 - Posted 2003-05-22 18:09:34 »

That is just a matter of convention. But we use an y-up as well.

This way the xy-plane forms your screen and you are looking down the z-axis.

HARDCODE    --     DRTS/FlyingGuns/JPilot/JXInput  --    skype me: joerg.plewe
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Kevdog

Junior Member





« Reply #3 - Posted 2003-05-22 18:31:08 »

That's kinda what I figured, but the way it's written sounds like you're restricted to a y-up configuration.  I would add in something like "by convention in J3D the y axis is up".

I personally prefer z-up and it makes sense to me to match the modelling software.

But it's flexible and you can do it however you choose and I guess that's my point.  A newbie might feel restricted to a y-up when there's no reason to be.

There are only 10 types of people, those who understand binary and those who don't!
Offline Breakfast

Senior Member




for great justice!


« Reply #4 - Posted 2003-05-22 21:25:27 »

I've always found y-up is more natural.
Offline rreyelts

Junior Member




There is nothing Nu under the sun


« Reply #5 - Posted 2003-05-22 22:13:49 »

I've always found y-up is more natural.

I think it's pretty much the standard convention everywhere. For example, the OpenGL redbook is written with the Y-axis as up.

God bless,
-Toby Reyelts



About me: http://jroller.com/page/rreyelts
Jace - Easier JNI: http://jace.reyelts.com/jace
Retroweaver - Compile on JDK1.5, and deploy on 1.4: http://retroweaver.sf.net.
Offline zingbat

Senior Member




Java games rock!


« Reply #6 - Posted 2003-05-23 00:09:14 »

Quote
That's kinda what I figured, but the way it's written sounds like you're restricted to a y-up configuration.  I would add in something like "by convention in J3D the y axis is up".

I personally prefer z-up and it makes sense to me to match the modelling software.

But it's flexible and you can do it however you choose and I guess that's my point.  A newbie might feel restricted to a y-up when there's no reason to be.


3dstudiomax uses both. The z-up is called screen coordinate system like vrml and java3d, the z up is called world coordinate system, used in the perspective view. Like you probably know already if you use 3dstudio.

I allways found the 3dstudio naming much more simple to understand than the right hand rule or something like that mentioned in the java3d specification.
Offline zingbat

Senior Member




Java games rock!


« Reply #7 - Posted 2003-05-23 00:34:59 »

Quote
Dear All,

I've been working on a book tentatively called:
 
Java Programming Techniques
for 2D, 2.5D, 3D, and Network Games

I've just placed the 10 chapters on Java 3D (including source code) online at:

  http://fivedots.coe.psu.ac.th/~ad/jg/

Please download it, try it. I'd like comments.

Thanks,

 Andrew



That was great of you.

There are some cool things that would be a great help if you want to research it or add it to your book.

To name just a few:

Non-expensive programming of games in java3d.

Realistic terrain rendering like in the vt.org site or geovrml adapted to games. Nothing like that fustrum culling limitation. Realistic size terrain with realistic distance fog. Im talking about 10 of kilomteters until the terrain starts fogging.

3d clouds that cast shadows in the ground.

How to implement night/day cycles in games.

How to implement weather changes in terrain textures like snow or ash changes, etc.

Rendering ocean and rivers realistically. The best ihve seen is in Ashgan from Silmarilis (old game).

Good AI like the one that is going to be in Half-Life 2 and Deus Ex 2. Quoting "the npcs allways check if there is a cool thing they can do, then do it with style" or something like that.

Morphing.

Blending animations.

Procedural textures receipts.

Assigning material information to geometry like tagging that a certain wall type can be climbed or something is inflamable.

Physics that uses the previous info.

And of course every wanabe gamer/programmer needs to do its own editor. Knowing good programming techniques is not enough if a person doesn't know how to put everything working together. And that means knowing how to use knowledge  in a working sequence.

Animations editor. Script editor. Properties for objects. Assigning textures, collision data,  placing and displacing objects in a world view. Dialog editor. Etc...
Offline rreyelts

Junior Member




There is nothing Nu under the sun


« Reply #8 - Posted 2003-05-23 00:35:07 »

I allways found the 3dstudio naming much more simple to understand than the right hand rule or something like that mentioned in the java3d specification.

Seems to me that naming "right-hand, left-hand" comes from math, as I have heard it termed that way from everybody in the math/physics disciplines.

God bless,
-Toby Reyelts

About me: http://jroller.com/page/rreyelts
Jace - Easier JNI: http://jace.reyelts.com/jace
Retroweaver - Compile on JDK1.5, and deploy on 1.4: http://retroweaver.sf.net.
Offline Andrew Davison

Junior Member


Medals: 2



« Reply #9 - Posted 2003-05-23 02:36:36 »

Zingbat,

Thanks for the great (and long!) list of possible extras.
Some of these things are already around. A great
starting point is:
http://www.j3d.org/sites.html

j3d.org has quite a bit on terrain rendering, which
I mention at the end of chapter 17 "Fractal Land".

Morphing is used to animate the figure in the tutorial
"The Little Purple Dude Walks" by Ben Moxon at
http://www.gamejug.org/tutorials/.

As I mention in the intro chapter, section 2.3.2,
a good technique is to search sourceforge and
other game/coding sites.

- Andrew

Dr. Andrew Davison
Dept. of Computer Engineering
Prince of Songkla University, Hat Yai
Songkhla 90112, Thailand
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline zingbat

Senior Member




Java games rock!


« Reply #10 - Posted 2003-05-23 23:40:06 »

Quote

j3d.org has quite a bit on terrain rendering, which
I mention at the end of chapter 17 "Fractal Land".


Yup i checked this link out already. Its possible to render a vast piece of land or even an entire planet with some advanced lod algorithms they mention.

What puzzles me is how to lod behaviours. For instance a great city being watched from the top of a far away mountain. There are hundreds of small lights going back and fort (cars), airplanes landing, people walking and doing a great number of different things (lots of people).

Doing this by representing everyone and every actor by a single object would require much more than any personal computer can handle.

But if the player can't interact with that great city at the distance then we can "fake" the looks of a great city when looking at it from a "safe" distance.

When the player gets near the city then pieces of it start  to unfoald and the player finally starts to interact with the individual parts when they start being loaded into memory.

This is the kind of behaviour lod that i never seen in the net. If you could find some solution or at least an half solution to this it would be great for us wanabe game makers.

I can't remenber anymore cool things right now.
Grin
Offline Andrew Davison

Junior Member


Medals: 2



« Reply #11 - Posted 2003-05-27 02:04:12 »

Making a "LOD behaviour" isn't that hard if you think
of the behaviour being modified based on the current
location of the player.

In my FPS examples, there's a KeyBehaviour object
that converts user keypresses into moves of the
viewpoint. It knows the current position of the
viewpoint and could pass that information on to other
behaviours.

When a 'LOD behaviour' is triggered it could first
do a test on the user's current position to decide
what behaviour to exhibit.

- Andrew

Dr. Andrew Davison
Dept. of Computer Engineering
Prince of Songkla University, Hat Yai
Songkhla 90112, Thailand
Offline Bombadil

Senior Member





« Reply #12 - Posted 2004-04-04 07:35:01 »

Thanks for the draft version of the book. :-)
Offline cyber101

Junior Newbie




Java Graphics Programming Rocks! -


« Reply #13 - Posted 2004-04-07 23:35:26 »

I get an error for Ben Moxon's example ( I downloaded the example and then tried compiling it by "javac *.java" ):

BasicWalkDude.java:13: package com.glyphein.j3d.loaders.milkshape does not exist

import com.glyphein.j3d.loaders.milkshape.*;
^
ClimbDude.java:13: package com.glyphein.j3d.loaders.milkshape does not exist
import com.glyphein.j3d.loaders.milkshape.*;
^
FollowcamDude.java:13: package com.glyphein.j3d.loaders.milkshape does not exist

import com.glyphein.j3d.loaders.milkshape.*;
^
ShowDude.java:14: package com.glyphein.j3d.loaders.milkshape does not exist
import com.glyphein.j3d.loaders.milkshape.*;
^
Theres other errors, but I think those errors are because those packages don't exist. Anyone know how to fix the problem / where to get the package?
Offline Andrew Davison

Junior Member


Medals: 2



« Reply #14 - Posted 2004-04-08 02:12:22 »

For best results, you should post to a more relevant
topic, or make your own. The online book is written
by me, not Ben Moxon, so he may not read your
message.

You might also consider mailing to the Java 3D
interest list, and perhaps searching its archive:
http://www.mail-archive.com/java3d-interest@java.sun.com/

Your diagnosis is right -- no Milkshake loader.
You can get it from
http://home.earthlink.net/~kduling/Milkshape/

Moxon's tutorial can be found at:
http://www.newview.co.uk/e/tutorials/java3d/index.jsp

- Andrew

Dr. Andrew Davison
Dept. of Computer Engineering
Prince of Songkla University, Hat Yai
Songkhla 90112, Thailand
Offline cyber101

Junior Newbie




Java Graphics Programming Rocks! -


« Reply #15 - Posted 2004-04-08 05:25:27 »

Thanks for the help.  Wink
Offline Leppy

Senior Newbie




Java games rock!


« Reply #16 - Posted 2004-04-28 01:23:40 »

hmmm, seems to be down right now, I was looking at it earlier though, it looks great! Now sure if it's just me, but I want to keep reading!
Offline Andrew Davison

Junior Member


Medals: 2



« Reply #17 - Posted 2004-04-28 06:26:18 »

Power failure. We're back now.

Dr. Andrew Davison
Dept. of Computer Engineering
Prince of Songkla University, Hat Yai
Songkhla 90112, Thailand
Offline Leppy

Senior Newbie




Java games rock!


« Reply #18 - Posted 2004-04-28 11:03:04 »

Great! Grin
Pages: [1]
  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.

xsi3rr4x (55 views)
2014-04-15 18:08:23

BurntPizza (53 views)
2014-04-15 03:46:01

UprightPath (66 views)
2014-04-14 17:39:50

UprightPath (49 views)
2014-04-14 17:35:47

Porlus (66 views)
2014-04-14 15:48:38

tom_mai78101 (90 views)
2014-04-10 04:04:31

BurntPizza (151 views)
2014-04-08 23:06:04

tom_mai78101 (246 views)
2014-04-05 13:34:39

trollwarrior1 (204 views)
2014-04-04 12:06:45

CJLetsGame (211 views)
2014-04-01 02:16:10
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
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!