Hover! (1995)
Hover! |
---|
Developer:
Microsoft Ta gra ma ukryte creditsy developerskie. |
Hover! is a game that's something of a tech demo, with fairly basic gameplay, but demonstrating what computers could do at the time. It shipped with the Windows 95 CD-ROM, although one can download it from Microsoft's FTP server.
Contents
Unused Dialog
This About dialog is from an earlier version of the game. The final version uses the standard Windows About dialog.
Developer Credits
The intro level shown right after the game starts up contains much more than what meets the eye at first. To move around, hold Ctrl and enter the code IBMAB (the project's code name, "Bambi", spelled backwards). The controls will unlock, and you can maneuver around the wall behind you to see pictures of the game's developers.
Each developer photo may have one out of four different image borders, but there does not seem to be a meaning behind that, rather than artistic choices. Known developers are:
- Stan LePard (Sound): This was his first game he composed the soundtrack for, after which he contributed to many other Microsoft games.
Unused Graphics
The games texture files contain two placeholder images which go unused.
Texture | Usage | Notes |
---|---|---|
|
||
|
Demonstrates the capability of a transparency mask as it is simply the previously mentioned floor / ceiling placeholder texture with holes added to it. |
Debugging Material
While an early prototype of the game had many more debug menu items enabled, only two remain functional in the final version:
Game logic controlling registry keys
It is possible to control human and opponent car physics, as well as the opponent AI settings. Even though the user interfaces to edit these settings comfortably have been removed at a very early prototype stage, the functionality still remains: At startup, the game checks for the existence of specific registry keys to override default game behavior. The registry keys are all read from HKEY_CURRENT_USER\SOFTWARE\Microsoft\Hover! and stored in binary format, representing 11 integers or floats to control specific game logic.
It should be noted that the floating point values are stored in fixed-point packed integer format: They are read like an integer, but then divided by 65536.0 to retrieve the "real" floating value.
The values default to the following settings:
Car motion physics
Key Name | Default Value | Description |
---|---|---|
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 |
Controls car physics in Easy mode. |
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 |
Controls car physics in Intermediate mode. |
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 |
Controls car physics in Difficult mode. |
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 |
Controls car physics of the opponents in Easy mode. |
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 |
Controls car physics of the opponents in Intermediate mode. |
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 |
Controls car physics of the opponents in Difficult mode. |
The 11 floats map to the following meanings:
- Normal Acceleration - the amount of acceleration until reaching maximum velocity.
- Friction Constant - the amount of sliding when acceleration pauses.
- Max. Velocity - the maximum speed a car can reach.
- Acquire Velocity - the speed an opponent car has when running towards a flag or a human. Unused for the human car.
- Rotation Stability - the amount of spinning after hitting something.
- Rotation Kick - the amount of immediate rotation after hitting something.
- Rotation Accel - the speed of rotational skidding when turning manually.
- Slow Multiplier - the multiplication factor a car gets slower when under the influence of a red light. This has no effect on opponent cars as they can't collect pods. Interestingly, it is well set up for them though - this might hint that it was once planned that opponent cars could at least collect pods (but maybe not use power-ups).
- Speed Multiplier - the multiplication factor a car gets faster when under the influence of a green light. This is also the speed of the skid pads and sets the maximum speed displayed in the speedometer.
- Turn Lag Factor - the amount of skidding introduced when turning (e.g., the "hovering" effect amount).
- Turn Rate - the speed of rotation when turning manually.
AI tuning parameters
Key Name | Default Value | Description |
---|---|---|
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 |
Flags to control opponent behavior, in Easy mode. |
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 |
Flags to control opponent behavior, in Intermediate mode.
Due to a bug in the final games code, the first 4 bytes are always overriden with the last 4 bytes of the RobotAIExpParams - but since these are always of the same value, this should not be a problem in normal circumstances. |
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 |
Flags to control opponent behavior, in Difficult mode. |
The 11 values map to the following meanings:
- Backup Turn Rate (float) - the chance of turning in backwards driving a drone will take when being hit and confused.
- Backup Game Cycles (integer) - the length of backwards driving a drone will take when being hit and confused.
- Backup Speed Factor (float) - the speed of backwards driving a drone will take when being hit and confused, relative to the normal driving speed.
- Max. Target Angle Adjust (integer) - the maximum angle a drone will turn to start targeting (unsure)
- Max Angle for Acceleration (integer) - the angle a target has to be in before the drone accelerates towards it.
- Max Dist to Acquire Human (integer) - the maximum distance before a green drone sees the human car and targets it.
- Max Dist to Acquire Flag (integer) - the maximum distance before a blue drone sees a red flag and targets it.
- Max Beacon Distance (integer) - the maximum distance to a waypoint before a drone queries it as the next target.
- Max Beacon Height Difference (integer) - the height at which a drone can see a waypoint and will query it as the next target.
- Beacon Search Depth (integer) - probably represents the number of beacons to validate before taking their route, making sure no other drone is using them now.
- Unknown float - always represents the first setting, and not configurable in the beta, and overwritten partly (s. above registry key note). Without any effect.
A distance of 500 is approximately the length of a car.
Script to import default settings
The following registry script can be used to set up the default values in the registry:
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
Editing Tool
The HoverHack tool imitates the beta dialogues and allows a more comfortable way of editing the parameters.
Cleanup > Pages missing date references
Cleanup > Pages missing developer references
Cleanup > Pages missing publisher references
Games > Games by content > Games with debugging functions
Games > Games by content > Games with hidden developer credits
Games > Games by content > Games with unused graphics
Games > Games by content > Games with unused text
Games > Games by developer > Games developed by Microsoft
Games > Games by publisher > Games published by Microsoft