Zarch
Zarch (also known under its ported name of Virus) is a computer game developed by David Braben (better known as the co-author of "Elite") in 1987, for the release of the Acorn Archimedes computer. "Zarch" started off as a demo called "Lander" which was bundled with almost all releases of the Acorn Archimedes. In 1988, "Zarch" was ported (under the new name, "Virus") to the Atari ST, Amiga (coded by Jez San and his Argonaut team), and IBM PC (coded by Chris Sawyer). It was later ported to the ZX Spectrum by Steven Dunn. The game was groundbreaking  for the time, featuring a three-dimensional mouse-controlled craft (the "lander") flying over a tile-rendered landscape that dazzled reviewers in a primarily 2D-dominated game industry - "ACE" ("Advanced Computer Entertainment") magazine led with the headline ""SOLID 3D - the future of games?"" when it reviewed "Zarch" with a score of 979, the highest rating "ACE" had given at that time, only bettered by the later Amiga port "Virus" at 981. "Virus" was one of the first solid 3D games and was also the first to have 3D lighting effects and shadowing, although these are less sophisticated than those of  Zarch. Plot. The plot of the game is reminiscent of the arcade game "Defender", in that the player, piloting a lone craft with limited firepower, must defend a finite landscape against ever increasing waves of enemy craft. In "Zarch", the landscape is being invaded by aliens who are spreading a virus across the landscape. The Seeder vessels are slow-moving, predictable, and easily destroyed, but as the game progresses they are supported by increasing numbers of flying support craft, which do not scatter said virus but instead attack the player. The Seeder vessels scatter red virus particles across the landscape . As they land, they turn the green landscape to brown and red, and cause the trees to mutate. Some flying enemies shoot the mutated trees, to cause themselves to become much more aggressive and dangerous. To clear each attack wave, the player must destroy all enemy vessels. At the conclusion of each attack wave the player is awarded bonus points for the amount of landscape which remains uninfected. After four attack waves have been successfully repelled, the player is awarded a new landscape; however, there is comparatively less land and more water, making complete infection more likely. Gameplay. "Zarch" is  a notoriously difficult game for beginners. Controls are extremely sensitive; simply moving the mouse while taking off can cause the lander to explode on the launchpad. The lander has a single thruster pointing directly downwards beneath it. Firing the thruster causes the lander to fly straight upwards. The lander has a flight ceiling above which the thruster will not fire. To fly in any direction requires the lander to be tilted in that direction. The lander can only pitch and yaw; it cannot roll. Too much tilt can cause the lander to turn upside-down, a position which may  be difficult to recover, and can cause the player to crash the lander by accidentally thrusting downwards. The lander, although agile, is vulnerable, and may be destroyed by a single enemy shot. The lander expends fuel and must occasionally return to the launchpad to refuel, with successful landings being difficult. The lander must be completely level to land. While refueling, it is vulnerable to attack from the air. Every round fired costs one point, and the lander is equipped with a rapid-fire autocannon. This makes it possible to achieve a negative final score if one does not actually hit  anything. At such times the game wryly points out that slugs and dried up bits of lichen have been known to get better scores than that. No powerups are available in the game, although the player has a limited number of smart missiles, and smart bombs and is awarded a new one of each with each extra life. Some enemy craft are so agile as to be able to outmanoeuvre the missiles, and the smart bombs have a very limited range. Radar screen. In the top left of the screen is displayed a "radar screen", which provides a map of  the whole landscape, with the position of the lander and enemy craft marked on it. Uninfected territory appears green; infected territory appears red. The radar detection is provided by rotating scanning-towers which are evenly spaced across the landscape; accidental destruction of these results in loss of detection in that area, and black squares appear on the map. Notable enemies. In some levels a fishlike enemy can be seen patrolling randomly on the water. It does not directly threaten the player, nor is its destruction required to complete the level. It additionally does not appear on the radar screen. When  destroyed it emits a puff of virus particles, and bonus points are awarded. Some players insist the fish enemy can be found on every level with diligent searching. In advanced levels a high-altitude, fast-moving bomber craft appears, dropping packets of virus particles in profusion. This craft is difficult to destroy, since the angle needed for the lander to match its speed is such that the cannon cannot easily be brought to bear. Meanwhile, it delivers huge amounts of virus particles to the landscape. Development. Braben had use of an Acorn A500 development machine for two weeks in  January 1987. He had been working on 3D landscape algorithms on the BBC Micro and then wrote "Lander" using ARM code. Section::::"Lander". "Lander" was a demo version of "Zarch" bundled with new Acorn Archimedes computers. It was completed in less than three months as an illustration of their capabilities. Although the graphical environment, controls and handling of the lander were similar to the released version of the game, neither enemies nor virus were present on the landscape. Points were awarded for destroying trees and buildings. While the lander was stationary on the launchpad, moving the mouse (which would normally tilt  the attitude of the craft) would cause it to immediately explode. This bug was fixed in "Virus": the craft would not explode while sitting on the launchpad, but only if a landing were attempted while the craft was not level. Game engine. The player flies the lander over an undulating landscape of square tiles. The landscape routine uses fixed tile sizes, meaning that the depth of view (amount of terrain being rendered) directly influences the frame rate. In development, a greater depth of view reduced the frame rate to only one or two per second. Bank switching is used, with  the display being in 256-color . The higher resolution was not used because that leaves less available memory and the required VIDC bandwidth also slows down the processor. Depth sorting uses bin sorting because objects only need to be approximately in order. The buffering demands memory but does not have the same time overheads as bubble sorting or quicksort. Colour keying is implemented by varying levels of white according to depth. Trees, buildings and enemies are drawn in filled light-sourced polygons. Shadows of the lander and enemies are projected vertically onto the ground, which does not cater for landscape  curvature but is fast. Consequently, shadows are not shown on other scenery. The shadows allow the player to follow movements of enemy craft by their shadows, even when they are not visible on the screen. In "Virus", there is no light-sourcing. The game also provides particle system effects to depict the thrust from the lander, explosions, the virus spreading over the landscape, and assorted other phenomena such as splashes when shots strike water, and puffs of dust when they strike land. At altitude, when the ground cannot be seen, dust particles in the air give the impression of  movement and speed. Four major routines are used in the game's programming: The hillside landscape is generated from a number of pseudorandom sequence sine waves. Legacy. The game was voted the 5th best game of all time in a 1991 issue of "Amiga Power". The followup to "Zarch" was a game using the same landscape engine, called "Conqueror". In this game, the player controls a tank, and fights enemy tanks in a realistic manner. It was coded by Jonathan Griffiths and released on the Archimedes, PC, Atari ST and Amiga. In 1998, ten years after Zarch was released, a  sequel, "V2000" (also known as "Virus 2000"), was released for the PC and PlayStation. A few clones based on "Zarch" have also been created, including a version for Linux, also called "Zarch", a remake for Windows (written in Blitz BASIC) called "Z-Virus", and a version crossing "Zarch" with "Pac-Man" called "ZarchMan". The Amiga game "Zeewolf" (1994) and its sequel have a noticeably similar design and appearance to "Zarch".