This article needs additional citations for verification. (January 2009) (Learn how and when to remove this template message)
3D Construction Kit II / 1992
|Platform||Amstrad CPC, ZX Spectrum, IBM PC, Commodore 64, Commodore Amiga, Atari ST|
Developed in-house by Incentive Software, Freescape is considered to be one of the first proprietary 3D engines 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.
Paul Gregory (graphics artist for Major Developments, Incentive's in-house design team) mentions  that Freescape was developed by Chris Andrew starting in September 1986 on an Amstrad CPC, as it was the most suitable development system with 128K memory and had adequate power to run 3D environments. Due to the engine's success, it was later ported to all the dominant systems of the era: the ZX Spectrum, the IBM PC, the Commodore 64, Commodore Amiga and Atari ST.
Freescape development ended in 1992 with the release of 3D Construction Kit II. Its legacy continued in the latter Superscape VRT virtual reality authoring engine, from the same developer and advertised on the 3D Construction Kit II software.
The Freescape engine allowed the generation of complete 3D environments that consist of a floor and as many primitives as memory and processor speed realistically allowed for. These primitives were cuboids, four-sided frustums (called pyramids by Freescape), triangles, rectangles, quadrilaterals, pentagons, hexagons and line segments. A further primitive, "sensor", was 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 were restricted to a size of 8192 × 4096 × 8192 units. These units were arbitrary but each region always corresponded to the dimensions.
- The engine did not allow for fractional movements. On 16-bit machines each movement — camera or object — must be a multiple of one unit. On 8-bit machines the angles at which the world may be viewed are further restricted to steps of 5 degrees.
- The x and z axes were subdivided into only 128 discrete locations, and the y axis is subdivided into only 64 discrete locations. As a result, objects can only be placed at 64 unit intervals, for example, 0,64,128 or 128,64,32.
- Objects may not overlap.
- All objects possessed a "bounding cube", for which detection rules apply as per a cube, i.e. no overlapping.
Games used 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 supported 'animators', which were FCL programs that use a few extra instructions to create on-screen animations.