Freescape

From Wikipedia, the free encyclopedia

The Freescape engine is an early 3D game engine used in games such as 1987's Driller.

Contents

[edit] History

Developed in-house by Incentive Software in 1986, Freescape is considered to be the first proprietary 3D engine ever to be used in computer games, although the engine was not used commercially outside of Incentive's own titles. The project was originally thought to be so ambitious that according to Incentive designer Ian Andrew, the company struggled to recruit programmers for the project, with many believing that it could not be achieved.

The engine was originally designed for the ZX Spectrum and IBM PC, but the success of the engine led to later ports to the Commodore 64, Amstrad CPC, Commodore Amiga and Atari ST.

[edit] Technology

[edit] Geometry

The Freescape engine allows the generation of complete 3D environments that consist of a floor and as many primitives as memory and processor speed realistically allow for. These primitives are cuboids, four-sided frustums (called pyramids by Freescape), triangles, rectangles, quadrilaterals, pentagons, hexagons and line segments. A further primitive, "sensor", is used for gaming purpose to detect the position of the camera relative to the sensor in the game world.

Freescape was designed with limited hardware in mind and as such contains a number of inherent limitations that are necessary to enable the games to run properly on these computers:

  • Individual regions are restricted to a size of 8192 × 4096 × 8192 units. These units are arbitrary but each region always corresponds to the dimensions.
  • The engine does not allow for fractional movements. On 16bit machines each movement — camera or object — must be a multiple of one unit. On 8bit machines the angles at which the world may be viewed are further restricted to steps of 5 degrees.
  • The x and z axes are subdivided into only 256 discrete locations, and the y axis is subdivided into only 128 discrete locations. As a result, objects can only be placed at 32 unit intervals, for example, 0,32,64 or 128,128,32.
  • Objects may not overlap.
  • All objects possess a "bounding cube", for which detection rules apply as per a cube, i.e. no overlapping.

[edit] Interaction

Games may use the Freescape Command Language ('FCL'), an early in-game scripting language, to add interactive elements to Freescape worlds. Scripts may be set to run constantly for the entire world or run constantly for a certain area, or may be attached to individual objects where they will be run once if the object is shot, activated or collided with. Versions of Freescape for the Amiga, Atari ST and PC also support 'animators', which are FCL programs that use a few extra instructions to create on-screen animations.

[edit] Software using the Freescape engine

[edit] See also

[edit] External links

Languages