SpaceRocks/VR ------------- INTRODUCTION SpaceRocks/VR is an interactive 3D graphics tribute to the classic Asteroids arcade game. Built with Sense8's WorldToolKit, SpaceRocks/VR is available in versions that take advantage of either Direct3D or OpenGL accelerators. The real-time graphics are rendered with image textures from NASA's Hubble Space Telescope. SpaceRocks/VR is an example application using Sense8's popular WorldToolKit development library. It not only demonstrates a wide variety of WTK's features, but is actually fun to play! WorldToolKit features that are highlighted in this application include: Real-time 3D graphics Utilizes hardware acceleration Hierarchical Scene Graph Transparency Animated textures Dynamic material definition Switch Nodes Collision detection Selectable texture filtering Multiple rendering modes Spatialized 3D sound Cross Platform (WinNT/Win95/SGI/Sun/DEC) Performance independant motion Cascading Menus Dialog Boxes (cross platform) Performance monitor Object Oriented design Per Object Data 2D/3D text 3D points 2D/3D lines User (re)defined sensor model (ie myMouse) Stereo viewing options Support for multiple sound devices Support for popular VR peripherals Models modifiable at runtime Reads VRML files across the internet Sensors modifiable at runtime Sound modifiable at runtime Special Effects Network enabled (coming soon) Multiple simultaneous viewpoints Dynamic window creation Polygon-level manipulation DEVELOPMENT This game was developed over the course of multiple weekends/late evenings. In total, about 40 hours have gone into it's development. It contains about 2500 lines of C code. Source code will be made available as soon as it has been "cleaned-up". Models were built mostly with Sense8's WorldUp modeller, a little of MultiGen's ModelGen, and an ASCII text editor. ALSO: The background textures are actual images from the Hubble Space Telescope and the asteroids are textured with images from real asteroids! OBJECT OF THE GAME The object of the game is simple: Use your missiles to clear out all of the space rocks (otherwise known as asteroids) in your section of the universe. Also, avoid the "annoying space alien" who appears from time to time spaying random, but deadly, missile fire. In network play (coming soon), help your fellow rock hunters clear the area. (Missiles are configured with IFF - Identify Friend/Foe. Don't worry about shooting your buddy...but watch out for the alien!) POINTS 100 - SpaceRocks 500 - Annoying space alien OTHER STUFF SpaceRocks has a 2D mode as well as a 3D. While the objects are still rendered in 3D, in this mode all motion is confined to the XY plane. This makes play more enjoyable from the "outside" viewpoint and play is more like the classic "Asteroids" game. The corner "arrow" heads up display (HUD) element also act as shield level indicators. KEYBOARD COMMANDS 'f' fire missile 'v' viewpoint toggle (inside/outside) 'R' toggle auxiliary viewpoint '+/-' adjust sensor sensativity '3' toggle 2D/3D motion 'b' space brakes 'p' pause (toggle) 'w' switch to wireframe 's' switch to shaded 't' switch to textured 'u' display usage 'E' increase rotational velocities 'e' decrease rotational velocities 'd' toggle display (score) '' adjust parallax (for 3D viewing modes) '[/]' adjust y-blank (for 3D viewing modes) '?' this display 'q' Quit. ARROW keys - pitch/roll SPACE - speed up ----MOUSE---- 'left' fire missile 'middle' space brake 'right' accelerate ----DEBUG---- 'z' zoom all 'r' reset ship position/viewpoint 'n' zoom view closer to ship 'A' make an alien ship 'C' toggle colision detection method 'T' stop motion of Space Rocks 'S' redefine 3D star positions/turn stars on 'P' print scene graph COMMAND-LINE OPTIONS Usage: rocks [options] Options: -a(1,2)[1..n] for Ascension Bird. For a flock, specify which unit. -b(1,2) for Fake Space Boom on port 1,2 -c use CrystalEyes Stereoview -d use CrystalEyes Stereoview (force V-split) -S use two window stereo -W use stereo in window (SGI only) -R use Red/Blue stereo -B borderless window -L disable cockpit detail -M Sound: use WinMM -K Sound: use DiamondWare -G Sound: use SGI -V Sound: use VSI -C sound: use CRE -D sound: use DirectSound -e(1,2) Virtual i-O i-glasses! head tracker on port 1,2 -f(1,2)[1..4] Polhemus Fastrak. Specify unit number after port. -g(1,2) Geoball on port 1,2 -h(1,2) SpaceWare Spaceball SPACECONTROLLER on port 1,2 -i(1,2) Insidetrak (unit 1 or 2) -j(1,2) joyserial 1,2 (uses gameports, not serial ports) -k(1,2) Logitech Space Control device on port 1,2: (on SGI, use spaceball driver (-s) for this device) -l(1,2) Logitech tracker on port 1,2 -m mouse (default) -n(1,2) Precision Navigation tracker on port 1,2 -p(1,2) Polhemus Isotrak on port 1,2 -q(1,2) 5DT Glove on port 1,2 -r(1,2) Logitech Red Baron on port 1,2 -s(1,2) Spaceball on port 1,2 -t(1,2)[1..2] Polhemus IsotrakII on port 1,2 -u(1,2) Thrustmaster Formula T2 driving console (unit 1 or 2)\n"); -v(1,2) CrystalEyes VR sensor on port 1,2 -x(1,2) Cybermaxx2 on port 1,2 **************************************************************** * * * Revision History * * * **************************************************************** 08-??-96 - started... 11-20-96 - Fixed 3D points (starfield) - Fixed 2D texture overlay code (still need better logo) 12-07-96 - Improved 3D starfield algorithm - Sound Configuration dialog added -- enables user to change sound device at run time - Rock type selectable -- utilized switch node(s) to select 4 types of rocks - added "About" box 12-08-96 - improved flight model (no more "gimble lock") - added annoying alien - improved logo texture - added support for various stereo views 12-09-96 - added command line selectable sound device - ship resets to 0,0,0 after explosion 12-10-96 - added V-Split force (for CrystalEyes on Intergraph) --> still doesn't work...WTK bug - added "otherview" window - adjusted UI for unix - added "About..." graphic - improved colision detection between rocks - new ships start at zero velocity - SpaceRocks exe ships with WTK/Direct 12-11-96 - -X option for non-texture startup 12-15-96 - added pause option - finally incorporated "end of game" & reset 02-05-97 - modified explosion code (animations act independantly) - put SpaceRocks on the internet for first time 02-08-97 (v0.901) - improved "help" dialog - debug mode is no longer default - added version number - added "Load model from URL" - fixed timing of onscreen messages 03-01-97 - changed name to "MinorPlanets" 04-10-97 - started work on WorldServer integration 04-25-97 - fixed explosion transparency (in D3D) - added splash screen (doesn't work) 04-29-97 - ported to WTK R7 05-03-97 - added "find alien" line - addressed alien sound bug - cached alien ship model 05-07-97 - Changed name back to SpaceRocks/VR 05-08-97 - Fixed "outside" explosion bug - fixed "shield failure causes crash" bug - added shield level indicator on HUD 05-18-97 - added concussion shock wave from explosion 09-30-97 - removed concussion wave (needs more work) - fixed transparent edges of explosion sequence - added cockpit detail - adjusted field of view angle (reduces image warping) - added yblank adjustment - cleaned up directory structure 10-01-97 - Fixed Hourglass texture - confirmed WTK getorientation bug - added checks on sound loading - default to "crumpled" rocks now - fixed opaque parts of cockpit overlay **************************************************************** * * * Still to do * * * **************************************************************** - splash screen - "Explode" ship upon shield failure - Read/Write configuration files - Make sensor code (config dialog, etc.) reusable - Design/implement more generalized sensor model - Add LOD's - Network interface(s) -- WTK v2.1 style -- DIS (MaK VR-Link) -- Sense8's World2World -- MS DirectPlay -- Blacksun CyberSockets -- TEN -- RTIME - HUD targeting elements (lock on / aim point) - random onscreen keyboard hints - add prebuild option - develop "benchmark"/hardware profiler - user selectable missile models - port to MAC - hyperspace - smart bomb/expanding "blast field" - improve concussion wave due to explosions **************************************************************** * * * Known Bugs * * * **************************************************************** - Initial sounds start at different volume levels - Explosion sounds don't overlap - Alien sound doesn't seem to be spatialized - need to test sensor configuration dialog - need to test sound setup dialog - splash screen causes rendering errors (ie none!) in D3D **************************************************************** * * * Information * * * **************************************************************** For information on WorldToolKit, contact: Sense8 Corporation 100 Shoreline Hwy, #282 Mill Valley, CA 94941 415-331-6318 http://www.sense8.com info@sense8.com For comments on SpaceRocks (previously: Minor Planets), contact: Tom Payne tom@paynecentral.com ACKNOWLEDGEMENTS Special thanks to the WorldToolkit team at Sense8: Sumant Ravulakollu Colin Sharp JD Cole Makund Bhakta Rajeev Sikka Thanks to the people at Atari who came up with the original Asteroids. which provided the inspiration for this game...and endless hours of entertainment. Thanks to the folks at NASA for building the Hubble Space Telescope which collected the images used in the backgound texture. These images were obtained from the NASA web site. (Hourglass nebula, galaxies M100 & M31) http://oposite.stsci.edu/pubinfo/Subject.html NOTICE: *This product was created with support of Space Telescope Science *Institute, operated by the Association of Universities for Research *in Astronomy, Inc., from NASA contract NAS5-26555, and is reproduced *with permission from AURA/STScI. * *If further information, contact: *Copyright Officer, (copyright@stsci.edu) *Phone: (410) 338-1534 *FAX: (410) 338-4767 * *Space Telescope Science Institute *3700 San Martin Drive *Baltimore, MD 21218 The asteroid's are textured with images from the minor planet(ie asteroid) "Ida" made available by JPL: http://www.jpl.nasa.gov/galileo/sepo/sepo.html