If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
This page is page #131.000!

Hoverǃ (1995)

From The Cutting Room Floor
Jump to navigation Jump to search
This page is a translated version of the page Hover! (1995) and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎polski • ‎svenska • ‎한국어

Title Screen

Hover!

Developer: Microsoft
Publisher: Microsoft
Platform: Windows
Released internationally: August 24, 1995


CopyrightIcon.png This game has hidden developer credits.
GraphicsIcon.png This game has unused graphics.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.


Hover! ist ein Spiel mit einfacher Steuerung und Logik, fungiert aber als technische Demonstration zu dem, was Computer in der damaligen Zeit leisten konnten. Es wurde mit der Windows 95-CD-ROM ausgeliefert, wenngleich es über den Microsoft-FTP-Server heruntergeladen werden kann.

Unbenutzes Dialogfenster

HoverAbout.png

Dieser Info-Dialog stammt aus einer früheren Version des Spiels. Die fertige Version benutzt den Standard-Windows-Dialog.

Entwicklernamen

HoverDevelopers.png

Das Intro-Level, welches direkt mit dem Spiel angezeigt wird, enthält deutlich mehr als im ersten Moment sichtbar. Um sich darin zu bewegen, muss die Strg-Taste gehalten werden und IBMAB eingegeben werden (rückwärts gelesen ergibt dies "Bambi", der Codename des Spielprojekts). Dies entsperrt die Steuerung und das Fahrzeug kann um die Wand dahinter bewegt werden, wo Bilder der Entwickler des Spiels sichtbar sind.

HoverDeveloperPhotos.png

Jeder Entwickler hat einen von vier verschiedenen Bilderrahmen, aber dahinter scheint keine besondere Bedeutung zu liegen; es ist anscheinend nur eine grafische Entscheidung. Bekannte Entwickler sind:

  • Stan LePard (Sound): Dies war das erste Spiel für das er den Soundtrack kompiniert hat, nachdem er zu vielen weiteren Microsoft-Spiele beigetragen hat.

Unbenutzte Grafiken

Die Texturdateien des Spiels enthalten zwei Platzhalter-Bilder, welche nicht benutzt werden.

Textur Vorkommen Notizen
HoverUnusedTexture.png
  • TEXT1.TEX: 1 Vorkommen als "FBASE_02_T" (Boden)
  • TEXT2.TEX: 2 Vorkommen als "FBASE_02_T" (Boden) und "CBASE_01_T" (Decke)
  • TEXT3.TEX: 1 Vorkommen als "FBASE_02_T" (Boden)
HoverUnusedDecal.png
  • TEXT2.TEX: 2 Vorkommen als "DECAL_00_D" und "DECAL_01_D".
Demonstriert die Möglichkeit einer Transparenzmaske, da es einfach die zuvor erwähnte Boden-/Decken-Platzhaltertextur mit zusätzlichen Löchern ist.

Debugging-Funktionalität

Debug-Menüeinträge

Während ein Prototyp des Spiels einige weitere Debug-Menüeinträge enthielt, verbleiben in der fertigen Version nur zwei funktional:

ID Description
-32717
oder
59393
Zeigt eine Statusleiste (funktioniert nicht im Vollbildmodus).

Hover Statusbar.png
Die Statusleiste zeigt die folgenden Informationen, von links nach rechts:

  • Die X-Koordinate des Spieler-Fahrzeugs.
  • Die Y-Koordinate des Spieler-Fahrzeugs.
  • Die Höhe des Spieler-Fahrzeugs.
  • Die momentanen Bilder pro Sekunde und möglicherweise die optimalen FPS.
  • Die Breite der Spielauflösung, in Pixel.
  • MAUER wenn das Spieler-Fahrzeug mit einer Wand kollidiert.
  • SPHÄRE wenn das Spieler-Fahrzeug mit einer Power-Up-Blase oder Fahne kollidiert.
  • BODEN wenn das Spieler-Fahrzeug mit erhöhten oder vertieften Böden oder einem Bodenfeld kollidiert.
  • WAGEN wenn das Spieler-Fahrzeug mit einem anderen Fahrzeug kollidiert.
-32715
Hover WavMix32.png

Öffnet das Dialogenfenster für den integrierten WavMix32-Audiomixer.

Spiellogik-kontrollierende Registry-Schlüssel

Es ist möglich die Spieler- und Gegner-Fahrzeug-Physik einzustellen, sowie die Gegner-KI-Einstellungen. Auch wenn die Dialogfenster für das komfortable Bearbeiten der Einstellungen zu einem frühen Zeitpunkt der Entwicklung des Prototyps entfernt wurden, verbleibt die Funktionalität: Zur Startzeit prüft das Spiel auf die Existenz von bestimmten Registry-Schlüsseln um Standard-Spielverhalten zu überschreiben. Die Registry-Schlüssel werden alle aus HKEY_CURRENT_USER\SOFTWARE\Microsoft\Hover! gelesen und sind in einem Binärformat gespeichert, welches 11 Integer oder Floats enthält um bestimmte Spiellogik zu beeinflussen.

Es sollte beachtet werden, dass die Float-Werte im gepackten Integer-Festpunktformat gespeichert werden: Sie werden wie ein Integer gelesen, aber dann durch 65536.0 geteilt um den "echten" Float-Wert zu erhalten.

Die Standardwerte lauten wie folgt:

Fahrzeug-Bewegungsphysik

Schlüsselname Standardwert Beschreibung
HBegParams
00 00 01 00  34 F3 FF FF  00 00 32 00  00 00 00 00
00 80 00 00  33 33 00 00  33 33 00 00  F5 A8 00 00
7A 54 01 00  99 19 00 00  00 00 05 00
Steuert die Fahrzeug-Physik im einfachen Modus.
HIntParams
00 00 03 00  71 FD FF FF  00 00 41 00  00 00 00 00
00 80 00 00  CC 4C 00 00  CC 4C 00 00  00 80 00 00
7A 54 01 00  66 06 00 00  00 00 07 00
Steuert die Fahrzeug-Physik im mittleren Modus.
HExpParams
00 00 05 00  BF FF FF FF  00 00 4B 00  00 00 00 00
00 80 00 00  00 80 00 00  66 66 00 00  66 66 00 00
7A 54 01 00  8F 02 00 00  00 00 0F 00
Steuert die Fahrzeug-Physik im schweren Modus.
RBegParams
00 00 01 00  71 FD FF FF  00 00 28 00  00 00 14 00
CC CC 00 00  CC CC 00 00  CC 4C 00 00  F5 A8 00 00
7A 54 01 00  66 06 00 00  00 00 05 00
Steuert die Fahrzeug-Physik gegnerischer Wagen im einfachen Modus.
RIntParams
00 00 01 00  71 FD FF FF  00 00 32 00  00 00 14 00
CC CC 00 00  CC CC 00 00  CC 4C 00 00  F5 A8 00 00
7A 54 01 00  66 06 00 00  00 00 05 00
Steuert die Fahrzeug-Physik gegnerischer Wagen im mittleren Modus.
RExpParams
00 00 01 00  71 FD FF FF  00 00 3C 00  00 00 14 00
CC CC 00 00  CC CC 00 00  CC 4C 00 00  F5 A8 00 00
7A 54 01 00  66 06 00 00  00 00 05 00
Steuert die Fahrzeug-Physik gegnerischer Wagen im schweren Modus.

Die 11 Floatwerte tragen folgende Bedeutung:

  • Normale Beschleunigung - die Menge an Beschleunigung bis die maximale Geschwindigkeit erreicht wird.
  • Reibungskonstante - die Menge an Gleiten wenn die Beschleunigung pausiert.
  • Max. Geschwindigkeit - die maximale Geschwindigkeit, die ein Fahrzeug erreichen kann.
  • Anzielungsgeschwindigkeit - die Geschwindigkeit eines gegnerischen Fahrzeuges, wenn es eine Fahne oder Spieler-Fahrzeug anvisiert. Dies wird für das Spieler-Fahrzeug nicht verwendet.
  • Rotationsstabilität - die Menge an Schleuderung nachdem mit etwas kollidiert wird.
  • Rotationstritt - die Menge an sofortiger Schleuderung nachdem mit etwas kollidiert wird.
  • Rotationsbeschleunigung - die Menge an Schleuderung wenn manuell gedreht wird.
  • Langsamer Multiplizierer - der Multiplikationsfaktor mit dem ein Fahrzeug langsamer wird, wenn es unter dem Einfluss einer roten Ampel steht. Dies hat keinen Effekt auf gegnerische Fahrzeuge, da sie keine Power-Ups einsammeln können. Dennoch sind diese Werte für diese ordentlich eingestellt - dies könnte darauf hinweisen, dass geplant war, dass Gegner zu einem Zeitpunkt Power-Ups einsammeln konnten (aber manuell zu benutzende vielleicht nicht einsetzen konnten).
  • Schnelligkeits-Multiplizierer - der Multiplikationsfaktor mit dem ein Fahrzeug schneller wird, wenn es unter dem Einfluss einer grünen Ampel steht. Dies ist ebenso die geschwindigkeit von Pfeil-Bodenfeldern und setzt die maximal angezeigte Geschwindigkeit im Speedometer.
  • Drehungsverzögerungsfaktor - die Menge an Rutschen sobald das Fahrzeug manuell gedreht wird (somit die Menge des "Hover"-Effekts).
  • Drehungsfaktor - die Geschwindigkeit in der das Fahrzeug manuell gedreht wird.

KI-Feineinstellungen

Schlüsselname Standardwert Beschreibung
RobotAIBegParams
00 80 01 00  3C 00 00 00  66 66 00 00  1E 00 00 00 
0F 00 00 00  88 13 00 00  88 13 00 00  88 13 00 00 
64 00 00 00  03 00 00 00  00 80 01 00
Flaggen, um das Verhalten des Gegners im einfachen Modus einzustellen.
RobotAIIntParams
00 80 01 00  3C 00 00 00  66 66 00 00  1E 00 00 00 
0F 00 00 00  58 1B 00 00  88 13 00 00  88 13 00 00 
64 00 00 00  04 00 00 00  00 00 01 00
Flaggen, um das Verhalten des Gegners im mittleren Modus einzustellen.

Aufgrund eines Fehler im Spielcode der fertigen Version werden die ersten 4 Bytes immer mit den letzten 4 Bytes des RobotAIExpParams-Schlüssels überschrieben - aber da diese immer denselben Wert enthalten, sollte dies unter normalen Umständen kein Problem sein.

RobotAIExpParams
00 80 01 00  3C 00 00 00  66 66 00 00  1E 00 00 00 
0F 00 00 00  10 27 00 00  88 13 00 00  88 13 00 00 
64 00 00 00  04 00 00 00  00 80 01 00
Flaggen, um das Verhalten des Gegners im schweren Modus einzustellen.

Die 11 Floatwerte tragen folgende Bedeutung:

  • Absicherungs-Drehungsrate (Float) - die Chance zu drehen wenn der Gegner verwirrt rückwärts fährt, nachdem er getroffen wurde.
  • Absicherungs-Spielzyklen (Integer) - die Dauer in der der Gegner verwirrt rückwärts fährt, nachdem er getroffen wurde.
  • Absicherungs-Geschwindigkeitsfaktor (Float) - die Geschwindigkeit in der der Gegner verwirrt rückwärts fährt, nachdem er getroffen wurde, relativ zur normalen Fahrgeschwindigkeit.
  • Max. Winkeländerung für Anvisierung (Integer) - der maximale Winkel, den ein Gegner dreht, um sich zum Ziel zu drehen (möglicherweise).
  • Max. Winkel für Beschleunigung (Integer) - der Winkel, in dem ein Ziel eingeschlossen sein muss, bevor der Gegner zu diesem beschleunigt.
  • Max. Entfernung zur Erkennung des Spielers (Integer) - die maximale Entfernung des Spieler-Fahrzeugs, bis zu dem ein grüner Gegner dieses sieht und anvisiert.
  • Max. Entfernung zur Erkennung einer Fahne (Integer) - die maximale Entfernung zu einer Fahne bis zu dem ein blauer Gegner diese sieht und anvisiert.
  • Max. Wegpunkt-Entfernung (Integer) - die maximale Entfernung eines Wegpunktes bis zu dem ein Gegner diesen sieht uns als nächstes Ziel abfragt.
  • Max. Wegpunkt-Höhenunterschied (Integer) - die Höhe bis zu der ein Gegner einen Wegpunkt sieht und in als nächstes Ziel abfragt.
  • Wegpunkt-Suchtiefe (Integer) - möglicherweise die Anzahl verketteter Wegpunkte die validiert werden, bevor ein Gegner die Route zu ihm nimmt, um sicherzustellen, dass kein anderer Gegner ihn momentan nimmt.
  • Unbekannter Float - repräsentiert immer den ersten Wert und nicht einstellbar in der frühen version, teilweise überschrieben (s. die obige Notiz zum Registry-Schlüssel). Ohne Effekt.

Eine Entfernung von 500 entspricht ungefähr der Länge eines Fahrzeugs.

Skript für Import der Standardwerte

Das folgende Registry-Skript kann benutzt werden, um die Standardwerte in die Registry zu importieren:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Hover!]
"HBegParams"=hex:00,00,01,00,34,F3,FF,FF,00,00,32,00,00,00,00,00,\
  00,80,00,00,33,33,00,00,33,33,00,00,F5,A8,00,00,\
  7A,54,01,00,99,19,00,00,00,00,05,00
"HIntParams"=hex:00,00,03,00,71,FD,FF,FF,00,00,41,00,00,00,00,00,\
  00,80,00,00,CC,4C,00,00,CC,4C,00,00,00,80,00,00,\
  7A,54,01,00,66,06,00,00,00,00,07,00
"HExpParams"=hex:00,00,05,00,BF,FF,FF,FF,00,00,4B,00,00,00,00,00,\
  00,80,00,00,00,80,00,00,66,66,00,00,66,66,00,00,\
  7A,54,01,00,8F,02,00,00,00,00,0F,00
"RBegParams"=hex:00,00,01,00,71,FD,FF,FF,00,00,28,00,00,00,14,00,\
  CC,CC,00,00,CC,CC,00,00,CC,4C,00,00,F5,A8,00,00,\
  7A,54,01,00,66,06,00,00,00,00,05,00
"RIntParams"=hex:00,00,01,00,71,FD,FF,FF,00,00,32,00,00,00,14,00,\
  CC,CC,00,00,CC,CC,00,00,CC,4C,00,00,F5,A8,00,00,\
  7A,54,01,00,66,06,00,00,00,00,05,00
"RExpParams"=hex:00,00,01,00,71,FD,FF,FF,00,00,3C,00,00,00,14,00,\
  CC,CC,00,00,CC,CC,00,00,CC,4C,00,00,F5,A8,00,00,\
  7A,54,01,00,66,06,00,00,00,00,05,00
"RobotAIBegParams"=hex:00,80,01,00,3C,00,00,00,66,66,00,00,1E,00,00,00,\
  0F,00,00,00,88,13,00,00,88,13,00,00,88,13,00,00,\
  64,00,00,00,03,00,00,00,00,80,01,00
"RobotAIIntParams"=hex:00,80,01,00,3C,00,00,00,66,66,00,00,1E,00,00,00,\
  0F,00,00,00,58,1B,00,00,88,13,00,00,88,13,00,00,\
  64,00,00,00,04,00,00,00,00,00,01,00
"RobotAIExpParams"=hex:00,80,01,00,3C,00,00,00,66,66,00,00,1E,00,00,00,\
  0F,00,00,00,10,27,00,00,88,13,00,00,88,13,00,00,\
  64,00,00,00,04,00,00,00,00,80,01,00

Bearbeitungstool

Das HoverHack-Tool imitiert die frühen dialogfenster und ermöglicht somit eine komfortablere Bearbeitung der Einstellungen.