title: Freescape
text: # Freescape
  
  Il Freescape Engine è un motore 3D per videogiochi nato intorno al 1986.
  
  ## Storia
  
  Sviluppato in proprio dall'azienda britannica Incentive Software tramite una scrupolosa ricerca di programmatori in grado di realizzare questo ambizioso progetto, viene considerato il primo vero motore 3D proprietario per ottenere giochi in tre dimensioni sui personal computer. Non venne mai concesso in licenza per l'uso ad altre software house, tuttavia in seguito la Incentive si associò alla Teque Software per migliorare i propri prodotti, e la Teque apprese molto sul motore 3D durante la collaborazione.
  
  Il Freescape venne originariamente programmato per l'Amstrad CPC e solo in seguito portato sulle altre piattaforme principali dell'epoca: ZX Spectrum, IBM PC, Commodore 64, Commodore Amiga e Atari ST.
  
  ## Tecnologia
  
  ### Geometria
  
  Il Freescape permetteva la generazione di un completo ambiente 3D dotato di un pavimento e di tutte le primitive tridimensionali permesse dalla memoria e dal processore del computer dove girava. Queste primitive erano di tipo cuboide, tronco di piramide, triangolare, rettangolare, quadrilatero, pentagonale, esagonale ed erano compresi anche segmenti lineari. Esisteva anche una primitiva chiamata "Sensore", utilizzata per rilevare qual era rispetto ad essa la posizione della telecamera nel mondo 3D.
  
  Durante la progettazione del Freescape erano ben noti i limiti dell'hardware dell'epoca, perciò si dovettero implementare alcune limitazioni:
  
  * Ogni singola regione era limitata a 8192x4096x8192 unità.
  * Il motore non permetteva movimenti frazionali. Sulle macchine a 16 bit ogni movimento, sia degli oggetti che della telecamera, doveva essere un multiplo di una unità. Sulle macchine ad 8 bit c'era un'ulteriore limitazione: i movimenti rotatori sugli assi dovevano avvenire 5 gradi alla volta.
  * Gli assi X e Z erano suddivisi in 256 locazioni discrete, mentre l'asse Y solo in 128. Di conseguenza, un oggetto doveva essere posto ad intervalli di 32 unità, per esempio 0,32,64 oppure 128,128,32.
  * Non era possibile sovrapporre gli oggetti in modo che uno ne attraversasse parzialmente un altro per poter creare nuove forme.
  
  ### Interazioni
  
  I giochi utilizzavano il Freescape Command Language (FCL), un primo tipo di linguaggio di scripting che aggiungeva elementi interattivi ai mondi generati con il Freescape. Tali script potevano generare azioni sia nell'intero mondo 3D che in singole locazioni ben determinate, oppure potevano essere associati a singoli oggetti in modo che compissero determinate azioni una volta toccati dal giocatore. Alle versioni per 16 Bit furono aggiunte alcune istruzioni che permettevano di ottenere animazioni.
  
  ## Giochi che usano il Freescape
  
  * Driller (1987)
  * Dark Side (1988)
  * Total Eclipse (1988)
  * Total Eclipse II: The Sphinx Jinx (1989)
  * Castle Master (1990)
  * Castle Master II: The Crypt (1990)
  * 3D Construction Kit (1991)
  * 3D Construction Kit II (1992)
  