Games for the Web with Java3d with VRML
----------------------------------------
http://www.frontiernet.net/~imaging/games_with_java3d.html
| > is there an example anywhere of a
| > 3D game in production that uses Java3D ?
|
| Yo Dave!
|
| http://www.cosm-game.com/ or
| http://www.swordsandsorcery.com/
| are links to the same game. Also, have a look around
| http://www.fullsail.com or
| http://www.javagaming.org/.
| On the front page of the latter is a huge
| collection of comparative screenshots of a Formula 1
| racing game.
|
| -- Justin Couch http://www.vlc.com.au/~justin/
|
| Java Architect & Bit Twiddler http://www.yumetech.com/
| Author, Java 3D FAQ Maintainer http://www.j3d.org/
|
http://archives.java.sun.com/cgi-bin/wa?A2=ind0202&L=java3d-interest&P=33680
http://archives.java.sun.com/cgi-bin/wa?A2=ind0202&L=java3d-interest&P=33577
|
( Justin's reply to David Marshburn post in Java3d-interest )
Justin, you should also tell people you can ...
--- and people have --- made games with
___ Java3d & VRML ___ using the VRML Loaders
created by Sun & donated to Web3d.org
| > Hey, what sort of crack are you on ?
| >
| > That codebase didn't even support
| > protos let alone H-anim.
|
| -- Justin Couch, consultant to Aaron Walsh's Prentice Hall book.
|
|
http://www.web3d.org/WorkingGroups/h-anim/hypermail/2001/0197.html
http://archives.java.sun.com/cgi-bin/wa?A2=ind0106&L=java3d-interest&P=17838
That's a lie Justin, that code was written by Sun engineers
and it works well and I don't understand why you would
claim that you need to be on crack to use it effectively.
I understand that you and Aaron Walsh tried and failed
to animate H-Anim Avatars with it, but just because
you failed Justin, it doesn't mean that other can succeed with it.
I realize once Prentice Hall prints your contention
that it can't be done, some might try to stand by the
false statments, but being honest would probably be better.
Games with Java3d & VRML : ( March 2000 )
| Well, to keep on the tradition (very good in my opinion),
| here another project goes - a realtime game Driving Simulator.
| The link is http://www.arcadia.spb.ru/java3d/
| It actually could easily be run both as an applet and
| as an application, ... check this out yourself. ...
| it has been written almost entirely by myself and
| there definitely is much to improve there
|
| --[ Vladimir Olenin, Russia, March 6, 2000 ]
|
http://archives.java.sun.com/cgi-bin/wa?A2=ind0003&L=java3d-interest&P=R4469
http://www.arcadia.spb.ru/java3d/DrivingSimulator.htm
http://archives.java.sun.com/cgi-bin/wa?A2=ind0202&L=java3d-interest&P=11903
Ah, Stuff that works ( VRML & Java3d ). I like it.
Learn how to do Human Animation for Games &
and educational Finger Spelling applications with
Java3d, VRML & Web3d's H-Anim standard.
Join the H-Anim Mailing list:
----------------------------
http://www.web3d.org/WorkingGroups/h-anim/hypermail/2001/
http://h-anim.org/hypermail/
Java3d works with H-Anim, in a browser, on Linux
and Java3d on Linux is smooth, reliable, productive & fun.
Java3d & VRML: It Works
-----------------------
http://www.frontiernet.net/~imaging/java3d_and_vrml.html
-- Paul, Java Developer & Web Animator
-----------------------------------------------------
"Imaging the Imagined: Modeling with Math & a Keyboard"
> is there an example anywhere of a
> 3D game in production that uses Java3D ?
I'm just taking part developing a 3D-PACMAN using
Java3D. It's an universitary practical, a proof-
of-concept; not a "real" project. We aren't finished
yet, but there are some nice screenshots at [1].
The game uses Java3D for rendering & scene-stuff,
and vrml- and 3ds-files for importing modells.
Levels are encoded using a xml-language. There is
multiplayer-support and a level-editor.
But don't expect to much - it's not too fast... :)
Greetings from Frankfurt/Germany,
Fabian Wleklinski
[1] http://www.stormzone.de/uni/Hauptstudium/CGPR/
Labyrinth/doc/makingof/
Pack-Man in Java3d: 3 Views: Doom, 3d, & Classic & etc.
------------------------------------------------
http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/doc/images/pac2k_3views.jpg
http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/doc/images/screenshot_large_nologo.jpg
http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/doc/makingof/2001-12-09_labyrinth_mit_pacman.png
http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/doc/makingof/
http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/src/_current/pacman3d/
http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/src/_current/pacman3d/Game.java
[ Fabian Wleklinski wrote to comp.lang.java.3d ]
Yes, I think it's always a good idea to start simple.
Get something simple that works,
improve, improvise, build on something that works,
learn from your successes ( and mistakes, if any ).
You use both VRML models and 3ds files ?
Wouldn't using just one be easier and simpler,
and isn't VRML good enough ?
Where do you think VRML is lacking ?
And I'm curious, some of the files are HUGE ( 17 Megs ):
http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/src/_current/models/pacman/Moriya/models_pacman_Moriya.rar
http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/src/_current/models/pacman/models_pacman.rar
[ note: the above ".rar" file is large: ] 11-Feb-2002 00:46 17.5M
What exactly is the ".rar" file, I haven't used them,
the above one seems to contain some VRML ( .wrl ) files.
Does it run on the web ?
Do you have a .tar or .zip archive of all the files available ?
What loaders do you use ?
Do you know if it would run on Linux ?
( Java3d can, but OS specific things can creap in )
I'm guessing you could make the 3d data files
to be 100 or a 1,000 times smaller ...
sometimes things like 3ds stores things as huge
meshes when smaller, simpler Spheres & Cylinders
would work ... do you think that might be the case ?
Making the walls flat, rather than curved, would
probably make it run faster ( on systems doing the
rendering in software ) ... Right ?
Tired of these questions yet ?
Thanks for sharing and showing you've done,
and what can be done done.
Could you make an intro page of screen shot,
links to the models, some models, kind of like
this ( which just happens to be one of mine ):
Game with VRML & Java3d: Web Demo, Source, Resources
----------------------------------------------------
http://www.frontiernet.net/~imaging/games_with_java3d.html
- Battle Ship Game, Racing Simulator, NIST Workspace above.
Hey, you wrote it in Java-German, and not Java-English ;^(
http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/src/_current/pacman3d/
http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/src/_current/pacman3d/Game.java
One possible ( probable ) downside to doing Pac-Man:
If it works nicely on the web, you'll probably get a
nasty letter from a lawyer telling you to take it down.
I would hope, if it's good, they'd also send a job offer. ;^)
Nice Job & thanks again.
Good luck & Have fun.
-- Paul, Java Developer & Web Animator.
> Wow, Thank you, we have a 3d Pac-Man in Java3d from Germany:
>
>
> Pack-Man in Java3d: 3 Views: Doom, 3d, & Classic & etc.
> ------------------------------------------------
>
http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/doc/images/pac2k_3v
iews.jpg
>
http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/doc/images/screensh
ot_large_nologo.jpg
The two pictures above are _not_ taken from our game, sorry, they
are taken from a different game, developed in c++, as far as I know.
We have used that pictures as inspiration ;-)
But the other pictures are taken from our game:
>
http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/doc/makingof/2001-1
2-09_labyrinth_mit_pacman.png
> http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/doc/makingof/
Sorry for the inconvenience.
> You use both VRML models and 3ds files ?
Yes, we started using VRML models, but began to use 3ds files
as well, because they caused fewer problems.
> Wouldn't using just one be easier and simpler, and isn't VRML
> good enough ?
I suppose VRML _is_ good enough, but maybe the loader isn't ;-)
> Where do you think VRML is lacking ?
It's not VRML, it was our loader :-) There were some problems with
textures and normals.
> And I'm curious, some of the files are HUGE ( 17 Megs ):
Yes, indeed, they are ;-) We have placed them for our internal use,
not for distribution. We'll bundle a downloadable package if we've
finished out work - a few weeks still to go.
But because you asked for a Java 3D game, I decided to show them
to you ;-)
> What exactly is the ".rar" file, I haven't used them,
> the above one seems to contain some VRML ( .wrl ) files.
There are some models in the .rar-file. We will definitively
make them smaller in future, so you may download them.
> Does it run on the web ?
I haven't tried yet, but may be it runs on the web if you use
Sun's "java activator" - IE / Netscape doesn't support Java 3D
right out of the box, as far as I know.
> Do you have a .tar or .zip archive of all the files available ?
Not yet, but it will be available as soon as we've finished the
development.
> What loaders do you use ?
We use "StarfireExt.jar - version 2.00" and NCSA's "portfolio".
> Do you know if it would run on Linux ?
> ( Java3d can, but OS specific things can creap in )
I don't know this, haven't tried yet.
> I'm guessing you could make the 3d data files to be 100 or
> a 1,000 times smaller ...
Yes, I hope so too! :)
> sometimes things like 3ds stores things as huge
> meshes when smaller, simpler Spheres & Cylinders
> would work ... do you think that might be the case ?
May be, yes. We haven't spend time into optimization until now.
> Making the walls flat, rather than curved, would probably make
> it run faster ( on systems doing the rendering in software ) ... Right ?
Hm, the walls are flat, as far as I know ;-)
> Tired of these questions yet ?
No, never! :)
> Could you make an intro page of screen shot, links to the models,
> some models, kind of like this ( which just happens to be one of mine ):
Yes, we'll create an intro website. With downloads, screenshots,
documentation, some xslt sheets for the levelfiles, and the whole stuff ;-)
> Hey, you wrote it in Java-German, and not Java-English ;^(
>
>
http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/src/_current/pacman
3d/
>
http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/src/_current/pacman
3d/Game.java
Yes, we did not expect that anybody would ever see this code ;-)
Some code is written in english, some in german.
> One possible ( probable ) downside to doing Pac-Man:
>
> If it works nicely on the web, you'll probably get a
> nasty letter from a lawyer telling you to take it down.
May be yes, may be no. It is no commercial project, it's an academic one.
I don't hope that anybody is interested in making trouble ;-)
Your problem with the VRML was with the VRML loader ...
You used the NCSA Loader mentioned in j3d.org FAQ which
has many known problems : which ironically is why it's in
the j3d.org FAQ :^(
Have you tried the VRML Loaders written by Sun
( the 'old' loaders ), or the 'new' VRML Loaders ?
I assume this is yours ( I see the Java Logo & etc. ):
http://www.stormzone.de/uni/Hauptstudium/CGPR/Labyrinth/doc/makingof/2002-01-27_morya_pacman-1.jpg
I've been using the Sun VRML Loaders since the 1900's
and they always worked well for me, they don't do everything
but they reliably load the Web3d H-Anim Avatars and
a bunch of other things with textures, PROTOs, interpolators,
TouchSensors & TimeSensors.
The Sun Loaders have been used for several games already:
Games with Java3d & VRML: Sun VRML Loaders work & Work Well
-----------------------------------------------------------
http://www.frontiernet.net/~imaging/games_with_java3d.html
What can I do to get you to switch to Linux ?
Suse is a very fine distribution of Linux from Deutchland.
I've been creating interactive VRML animations with
Java3d, on Linux, with the Sun VRML Loaders, and Sun's
( free ) Forte Java SDK and I found it a nicer environment
than Windows. Sun has become very linux friendly.
I've spotted the friendly penguin here: http://www.sun.com/linux
I've already noticed I have to change the ".bat" files:
the slashes go 'the wrong way' -- I'm pretty sure
Unix precedes both Windows & DOS.
About the "curved walls" ... I was looking at
wrong pictures ( as you said ).
Thanks for the two replies, I am still looking at
the files.
If you switched away from the NCSA VRML loaders you
may find the project is much easier.
Someone in the Java3d list will be happy you're using
the StarFire package.
Why don't you join us ?
Java3d - interest Group: Does Windows, the Web & More.
-----------------------
http://archives.java.sun.com/cgi-bin/wa?A0=java3d-interest
http://java.sun.com/products/java-media/3D/forDevelopers/interest_group.html
-- Paul, Java Developer & Web Animator.
---------------------------------------
( Replying to threads on comp.lang.java.3d & java3d-interest-list )
http://groups.google.com/groups?hl=en&selm=CB53BCFB407B835F.0DE32D0ACD45317C.6FFA97BAC1D53676%40lp.airnews.net
http://archives.java.sun.com/cgi-bin/wa?A2=ind0202&L=java3d-interest&P=33680
http://archives.java.sun.com/cgi-bin/wa?A2=ind0202&L=java3d-interest&P=34069
at almost the same time as well..
If we are talking about state-of-art first person shooters then you are
right. But these engines does not scale really well. AFAIK for both of
them you have to precalculate a lot of stuff for levels. This will not
fit well very dynamic games.
For example MMORPGs, which seems to be always a generation behind
first-person shooters, seems to be perfect market for java3d. You
probably know magicosm (http://www.cosm-game.com/) - not same class as
quake III (or even more, doom III) as far as single location is
concerned, but they have really vast areas for you to walk around
(dimensions are 'real', meaning comparable to avatar sizes and AFAIK
there is 12.5x12.5 zones of seamless terrain...). I doubt if you could
do something like that with unreal or quake engine.
As for the VRML, I don't know - when I have used it 4 years ago it was
slow and ugly. But same was java :) Now java3d CAN be used for quite
sophisticated games. Once again - not quake/doom III, but a lot better
than some popular MMORPGs...
Artur
Jake the old fart
On Mon, 25 Feb 2002 16:11:26 -0800, "Mark J. Young" <ma...@vizmo.com>
wrote:
Also amazing is the waste of information to get minimal effects in this
games...
> Java3d and VRML are very useful
> but not for high quality 3D games by current standards.
"Current standards" in 3D games are often Megabytes of Textures.
Java3D and VRML are designed for distribution over the net.
You simply can not afford to bring this amount of Bytes via the network.
Or would you wait, till all of the visualisation
http://www.csv.ica.uni-stuttgart.de/vrml/vrml_benz/kurve_benz_maximum.wrl
would be loaded ? 8-)
If you can wait, use a viewpoint with a long name....
> but those platforms are huge handicaps compared to
> specialized engines if your primary goal is a kick-ass game.
Your argument is very valid for the old time gameengines.
This games used a lot of optimization that is based on:
- what you can show
(e.g. some object must have angles of 90 degree in some places (doom1))
- restriction of the cameraposition
(you can use a avatar without a face cause you only see the rear side
(e.g. some versions of the laura croft game))
- "wall based" optimization
(you know, there is at least one wall in 5 units distance (most dungeon
games)).
As hardware improves, when games come out of the dungeon, cameramovement
becomes free and objects are not longer raw blocks with nice pictures on it
the advance in optimization of the game engines compared to a generic
approach like in VRML go down. The faster networks become, the more textures
are possible in a Web3D standard.
Especially VRML97 is old, some of the newer developments in computer graphics
are not available for it. But new standards (VRML200x, X3D) are in sight.
so long
MUFTI
--
Dann waehlen Sie einen Klang, durch das Klicken gerade in in der
Scheck-Kiste zur Linke des Klangs zu befestigen.
(aus einem Softwarehandbuch, Stichwort: checkbox)
> Or would you wait, till all of the visualisation
>
> http://www.csv.ica.uni-stuttgart.de/vrml/vrml_benz/kurve_benz_maximum.wrl
>
> would be loaded ?
well - yes:
DSL, ~ 40 secs,
gForce2: ~100 frames/s
the only obvious problem is:
you cant shoot :)
h./
Agreed, the games developed by large professional
teams with multi-million dollar budgets are better
than the efforts by individual students, or small
groups of students working on a class project.
But the math is the same, and you have to start
somewhere. The "first flight" of the Wright brothers
was short and not impressive from a 'comercially
viable' metric, but from an engineering viewpoint:
it proved the fundamentals were right, and they
just had to scale, modify & extend what they had.
If networked games is your ambition, Java is
a viable solution, and even if you were to
later move to another language, the knowledge,
skill, insights, and experience developing in
Java would be great foundation for future endevors.
But don't sell simple & elegent short and
keep in mind the little, meek GameBoy Advance
hand held game machine is selling in huge numbers,
and games will be, are now, in some cell phones,
PDAs, and TV Set top boxes, and Java games are
there, so again, Java is a good language to use.
| If we are talking about state-of-art first
| person shooters then you are right.
| But these engines does not scale really well.
| AFAIK for both of them you have to precalculate
| a lot of stuff for levels. This will not fit well
| very dynamic games.
|
| For example MMORPGs, which seems to be always a
| generation behind first-person shooters, seems
| to be perfect market for java3d. You probably know
| magicosm (http://www.cosm-game.com/) - not same
| class as quake III (or even more, doom III)
| as far as single location is concerned, but they
| have really vast areas for you to walk around
| (dimensions are 'real', meaning comparable to
| avatar sizes and AFAIK there is 12.5x12.5 zones
| of seamless terrain...). I doubt if you could
| do something like that with unreal or quake engine.
|
| As for the VRML, I don't know - when I have used
| it 4 years ago it was slow and ugly.
| But same was java :)
|
| Now java3d CAN be used for quite sophisticated games.
|
| Once again - not quake/doom III, but a lot better
| than some popular MMORPGs...
|
| Artur
|
http://groups.google.com/groups?hl=en&th=633cad20c2cbbe47&seekm=a5g8rm
Well I have a "First Person Shooter", a Darts Game ...
First Person Shooter ( VRML ): Dart's Player ;^) Finger Spelling
--------------------------------------------
http://www.frontiernet.net/~imaging/shout3d/models/H-Anim/chess_player_H-Anim.wrl
http://www.frontiernet.net/~imaging/shout3d/models/H-Anim/asl_H-Anim_x3d.wrl
Alright, I know you wanted a realtime gun game, I do have
a Tank battle game (not on the net, but it works on the net ).
Sun does ( or did ) have a 3d ping-pong game in the
demo programs with the some of the Java3d documentation,
I can put that on the web, and Nokia has a simple ping
pong game, in Java, for their phones.
Their are lots of capabilities & opportunities.
Games, if you can't be fast, do Chess, Darts, Battleship 3d
-----------------------------------------------------------
http://www.frontiernet.net/~imaging/games_with_java3d.html
http://www.frontiernet.net/~imaging/H-Anim_Avatars.html
http://www.frontiernet.net/~imaging/java3d_and_vrml.html
http://www.frontiernet.net/~imaging/java_games.html
| "Current standards" in 3D games are often Megabytes
| of Textures.
|
| Java3D and VRML are designed for distribution over
| the net. You simply can not afford to bring this
| amount of Bytes via the network.
|
| Or would you wait, till all of the visualisation
|
| http://www.csv.ica.uni-stuttgart.de/vrml/vrml_benz/kurve_benz_maximum.wrl
|
| would be loaded ? 8-)
| If you can wait, use a viewpoint with a long name....
|
| [ Joerg Scheurich wrote to comp.lang.java.3d ]
|
http://groups.google.com/groups?hl=en&th=633cad20c2cbbe47&seekm=a5g8rm
| well - yes:
| DSL, ~ 40 secs,
| gForce2: ~100 frames/s
|
| the only obvious problem is:
| you cant shoot :)
|
| [ Hendrik Wendler wrote to comp.lang.java.3d ]
|
http://groups.google.com/groups?hl=en&th=633cad20c2cbbe47&seekm=a5g8rm
The Sun VRML Loaders let you
load & render VRML with animation & TouchSenors work,
I've done it ( links above ), including H-Anim Avatars.
-- Paul, Java Developer & Web Animator.
--------------------------------------
"Imaging the Imagined: Modeling with Math & Keyboard"
I do indeed seriously consider these to be real games. Take a look at
Brawler, Jamid (both by FullSail), or GetAmped! (by Cyberstep, not
Java3d but java going to an OpenGL binding). These games are very
fast, smooth and responsive action games.
Our Magicosm responds easily as well as a DAoC or EQ, and at 40-50fps
on a GeForce2 w/32 mb on pc with a 1.4 ghz intel cpu. Java3D just
works, and works well, and uses the same OpenGL or Direct3D api that
you would otherwise use directly, so you take full advantage of
hardware acceleration. I dunno about VRML.
Also, FullSail had a FPS demo that ran at 140 fps when unclamped from
the video refresh rate.
What it boils down to is that the vast majority of 3d games are bound
by the video card. Our Java3D games are bound by the video card. If
you're bound to by the video card (and again, we are), running in a
language that reduces your cpu load by 20% doesn't make your game run
any faster. In other words, I'm saying that even if we had written in
assembler, I can't imagine any way in which the video would be more
responsive, since we're already shoving textures and models out to the
card faster than it can accept them.
Bobby Martin
Magicosm Server Developer and Team Lead
www.magicosm.net