Controls and the menu
As stated on the homepage, the game is inspired to the FPS genre. The camera shows what the game character sees and moves in the environment as directed by the player. Movement happens with the a, s, d and w keys to move to the left, backwards, to the right and forward respectively. Rotation around the X and Y axes of the simulated world happens by using the q and e keys, and the cursor keys (keys cannot be remapped at this time).
The tab key starts the auto-leveling procedure which brings the Y axis that is local to the camera to be parallel to the world Y axis (up vector). During this procedure it is still possible to move, or to stop the auto-leveling by pressing the same key.
The j key activates "flight mode"; the control keys stay the same but in addition it's possible to go up and down the Y axis (relative to the camera) with the r and f keys, and the q and e keys rotate around the local Z axis instead. By pressing j again this mode is deactivated and the camera floats down back to the ground if it was above it; it also rotates until it is level with the ground again.
The m key cycles among three kinds of mouse rotations, that work together with the keyboard.
- Mouse rotation is disabled per default; pressing m once activates the typical FPS style of rotation (called "progressive" mouse movement in this game): the camera rotates as the mouse moves, in the direction that the mouse moves.
- Pressing m again activates the style of rotation used by some kind of flight simulators (called "persistent" mouse movement in this game), in which the camera rotates faster the farther away from the center of the screen the mouse cursor is, in the direction of a line that connects the center to the cursor, and doesn't stop until the cursor itself is back in the center of the screen. While in this mode, the shape of the mouse cursor denotes direction and speed of rotation.
- Pressing m a third time goes back to the initial state with no mouse movement active.
Performance of the progressive rotation was in version 0.0.1 much less than ideal because of the overhead incurred in the use of the glutWarpPointer() function and depended to some extent on the number of frames per second drawn; better results are obtained in later versions by avoiding the function entirely and managing mouse movement differently.
The right mouse button shows a menu that can be useful to toggle some view options, cycle among rotation and lighting styles, pause the game and more. The left mouse button chooses a command from the menu, while the middle mouse button shoots with the currently selected weapon.
The played character is able to use a number of different weapons (although for now only rockets are included in the stable releases) with which to hit various objects in the environment. It's possible to shoot by pressing the spacebar or the middle mouse button; when using rockets, two rockets at a time are available, and once they have been shot it's necessary to wait a few seconds for the weapons to the reloaded. The current state of the weapons can be seen on screen (it will be shown as "Ready", in red, if the weapon is being reloaded, in green if it's loaded, on the left or right side of the screen according to weapon position) and the x key toggles linking of the rocket launchers. When the rockets hit a wall or one of the shootable objects (or they end their course without hitting anything) they explode, together with the object that is hit. Shootable objects currently include grey crates and barrels in the storage area, and the red targets in the shooting practice mini-game (these don't explode, being projections, but rather fade to green and disappear).
A control console inside the room can be operated with the g key. At that point the room lights go off and the shooting practice mini-game begins. Each of the twenty targets is worth 100 points when hit, like the crates and barrels in the storage area; it's also possible to stop the mini-game before it's over and restart it by operating the control console.
Some useful information is always visible on screen, including weapon status, current score and number of frames drawn per second. Beside these there is a compass that rotates to show the direction the player is moving towards. The compass is implemented as a textured disk that rotates on its axis following the camera rotation.
The game can be paused at any time with the p key. While the game is paused other controls are disabled but it's still possible to press shift+g to cycle among predefined window sizes, shift+f to engage full screen mode, and ESC to quit.
It's possible to cycle among the different light models (six lights on the ceiling, or no light) by pressing shift+l or from the menu. In addition to these lights the character may toggle a spotlight on and off with the l key; this light will be more visible when the main lights are off. While in debug mode, it is possible to try a fog effect (for testing purposes for the moment) in the room with the k key.