home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 March / Chip_1998-03_cd.bin / zkuste / SVET_GEO / GEORAY / README.TXT < prev   
Text File  |  1996-03-02  |  5KB  |  93 lines

  1.               Geo Raycast - a three-dimensional graphics demo
  2.  
  3.    Based on the program "Labyrint" by Stefan Becker, published in c't 2/96
  4.  
  5.                   Adapted for Geos by Marcus Groeber 1996
  6.           Fido: 2:2448/7826.1 - email: 100712.270@compuserve.com
  7.  
  8. This is my first program for Geos designed specifically with the OmniGo in
  9. mind. I wrote it to get an estimate of how feasible a game with Doom-like
  10. "first person" graphics would be on an 8086-based PDA like the OGo. This may
  11. sound crazy at first, but it isn't that far fetched, keeping in mind that the
  12. loss in cpu horsepower is partly compensated for by the reduction in screen
  13. size and colors. [This doesn't mean that Raycast won't run on the desktop
  14. version of Ensemble as well, it is just meant as an excuse for the unusual
  15. restrictions placed on the display of the graphics.]
  16.  
  17. Nevertheless, a redraw rate of under 1 frame per second as achieved by this
  18. program on an OmniGo is probably not acceptable for a fast-paced action game.
  19. :-) Anyway, you can still use this program for a little walking exercise in a
  20. maze of texture-mapped walls and to show that your brand-new OmniGo can be
  21. used for other things than for storing appointments and phone numbers.
  22.  
  23. To install the program, just copy raycast.geo to the WORLD directory of your
  24. Geos set-up (if you're using an OmniGo, you will have to employ some kind of
  25. file-transfer software to do this, of course).
  26.  
  27. Usage is fairly straightforward: the menu bar items "Left/Right/Go" probably
  28. speak for themselves, while the "?" menu contains an option to toggle between
  29. a "view" and a "map" mode and a "Look" command to cause a 360-degree turn
  30. consisting of 32 individual pictures. This full turn can be used to compare
  31. the speed of the program on different machines - when compiled in EC mode, the
  32. program adds a status bar to the bottom of the window showing the average time
  33. required to calculate and draw one frame (making the window to big to fit onto
  34. a regular OmniGo screen). It should be noted that the drawing speed decreases
  35. somewhat when the player is looking at a wall that is very close.
  36.  
  37. The "raycasting engine" in render.goc is an adapted and streamlined version of
  38. the code published in an article on that subject in the German "c't" magazine
  39. (issue 2/96) - I have mainly replaced all the Macintosh-specific parts,
  40. written an ESP-optimized texture-mapping routine and converted the entire
  41. algorithm to Geos 16/16 "WWFixed" fixed-point arithmetics, which alone yielded
  42. a factor 35 (!) improvement over the original floating-point based code on my
  43. 386/40 (no additional fpu).
  44.  
  45. Most of the comments in the code are still in German because I have taken them
  46. from the original version with little modifications. If you would like to know
  47. about a particular detail, just drop me a mail...
  48.  
  49. ---
  50.  
  51. Dies ist mein erstes Geos-Programm, das speziell im Hinblick auf den OmniGo
  52. entwickelt worden ist. Sein Hauptzweck war, einen Eindrukc davon zu bekomme,
  53. wie realistisch ein Spiel mit Doom-ähnlicher "subjektiver Kamera" auf einem
  54. 8086-PDA ist. Das ist nicht ganz so verrückt wie es auf den ersten Anschein
  55. klingen mag, wenn man bedenkt, daß die mangelnde CPU-Leistung zumindest
  56. teilweise durch den kleineren Bildschirm und die fehlende Farbigkeit
  57. ausgeglichen wird. [Das bedeutet aber nicht, daß Raycast nicht auch auf dem
  58. Desktop läuft - allerdings sollte sich auch niemand beschweren, daß es dort
  59. nicht bunter ist...]
  60.  
  61. Es scheint jedoch so, als ob eine Rate von weniger als einem Bild pro Sekunde
  62. für ein packendes Action-Spiel etwas zu niedrig ist... immerhin kann man mit
  63. dem Programm aber schon durch ein Labyrint mit gemusterten Wänden traben und
  64. außerdem auch noch beweisen, daß ein OmniGo doch zu mehr zu gebrauchen ist als
  65. ein ledergebundener Terminplaner.
  66.  
  67. Um das Programm zu installieren, muß die Datei raycast.geo einfach ins
  68. WORLD-Verzeichnis von Geos kopiert werden. (Auf einem OmniGo muß man dazu
  69. natürlich irgendeine Art von Dateitransfer-Programm verwenden.)
  70.  
  71. Die Verwendung der Menüpunkte "Left/Right/Go" muß wohl nicht besonders erklärt
  72. werden. Das "?"-Menü enthält eine Umschaltmöglichkeit zwischen Sicht- und
  73. Kartenmodus und einen Menüpunkt "Look", der den Spieler einmal um die eigene
  74. Achse dreht, wodurch insgesamt 32 Einzelbilder erzeugt werden. Diese Drehung
  75. kann zum Geschwindigkeitsvergleich des Programms auf verschiedenen Rechnern
  76. verwendet werden - wird das Programm als EC-Version übersetzt, enthält das
  77. Fenster zusätzlich eine Statuszeile am unteren Rand, in der die mittlere Zeit
  78. für das Berechnen und Zeichnen eines Bildes angegeben wird (dadurch wird das
  79. Fenster zu groß für den OmniGo-Bildschirm). Zu beachten ist, daß Wände, die
  80. sehr nahe vor den "Augen" der Spielfigur liegen, zu einer Verlangsamung des
  81. Programms führen können.
  82.  
  83. Der eigentliche Raycasting-Code in render.goc ist eine angepaßte und
  84. überarbeitete Version des Programms, das in der Ausgabe c't 2/96 veröffentlich
  85. worden ist - für nähere Informationen zum Algorithmus sei auf dieses Heft
  86. verwiesen. Ich habe für diese Version vor allem die Macintosh-spezifischen
  87. Teile ersetzt, die Skalierung des Wandmusters in ESP-Assembler realisiert und
  88. den Algorithmus auf Geos-typische 16/16 "WWFixed" Festkomma-Arithmetik
  89. umgestellt. Allein der letzte Punkt ist für eine Geschwindigkeitssteigerung um
  90. den Faktor 35 (!) auf meinem 386/40 (ohne Coprozessor) verantwortlich.
  91.  
  92.  
  93.