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 David Braben), 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, but 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.

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 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 Mode 13. The higher resolution Mode 15 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:
 * Animate object (nasties, player, missiles)
 * General particle (bullets, debris, parachutes, spray)
 * Landscape
 * Scenery (trees, houses, radar).

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.

Followup
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.

V2000
In 1998, ten years after Zarch was released, a sequel, V2000 (also known as Virus 2000), was released for the PC and PlayStation. It was developed by David Braben and his company Frontier Studios, who attempted to make the controls similar to but more forgiving than those of the original game.

Clones
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.