OLIVETTI M10 - TANDY - KYOCERA KC85 - VirtualT Emulator
TREDDY 3D MAZE
1991 Luca Jibo & Andrea Donadon (Revenant71)
Rev 2019 by Simone Riminucci & Luca Jibo
TREDDY 3D MAZE è probabilmente il miglior labirinto 3D creato per OLIVETTI M10
Ideato nel novembre 1991 da Luca Jibo e Andrea DONADON (Revenant71).
Andrea DONADON ha disegnato la grafica e gran parte dei labirinti.
Realizzato in sole 3 settimane, senza particolari difficoltà nella stesura del programma. La scrittura del codice si presenta con un estetica e un ordine fra le migliori esibite in linguaggio Basic.
A questo link una bellissima presentazione video in soli 3 minuti!
https://youtu.be/jctFF6T2EoA
Nella descrizione trovate link DOWNLOAD per OLIVETTI M10 e istruzioni
per INSTALLARE e settare l’emulatore “VirtualT” su Mac o Pc
TREDDY 3D MAZE è stato una sorta di progetto “defaticante”, scritto ad appena 2 mesi dalla realizzazione di SOCCER MANAGER, gioco per OLIVETTI M10 e suoi fratelli cloni (Tandy Trs-80 model 100/102, Kyocera KC85, Nec Pc-8201/8300) che ha richiesto: 1 mese di progettazione, 3 di programmazione, 1 mese di test e tarature, giocando tornei reali, 1 mese di revisione, 6 mesi in totale di intenso coinvolgimento compreso l’adattamento del 2019 all’emulatore “VirtualT” per Mac e Pc.
La grafica è stata ben disegnata su carta millimetrata e anche i labirinti disegnati su carta a quadretti.
TREDDY 3D MAZE possiede alcune caratteristiche che all’epoca, nel 1991, lo rendevano unico nel suo genere:
- la possibilità di giocare contemporaneamente in due navigando indipendentemente nello stesso ambiente (!)
- 3 livelli/dimensioni dei labirinti (16x16 24x24 32x32) 4 labirinti per ogni livello, 12 in totale! Mappa totale o parziale con localizzazione.
- opzione “cerca e raccogli la chiave prima di trovare l’uscita”
Una caratteristica che lo rende tuttora molto originale è la gestione di ogni schema/labirinto. Qui un esempio del primo livello (=matrice 16x16) con un labirinto selezionato a caso dal programma fra i 4 disponibili per ogni livello:
A sinistra la matrice che lo compone, a
destra il risultato estetico con chiavi.
Lo “0” indica un quadrato nero non calpestabile, “1” identifica un quadrato accessibile del percorso. IL programma sostituisce un punto “1” della matrice percorribile e assegna il numero “2” se il quadrato contiene una chiave da raccogliere (posizionata casualmente in numero proporzionale al numero di giocatori e al livello di gioco) mentre assegna il numero “3” (unico nello schema) se il quadrato corrisponde all’uscita sostituendo uno zero ai bordi.
All’inizio del gioco viene scelto un labirinto a caso fra i 4 disponibili per ogni livello e caricato nella matrice che verrà usata in lettura per tutta la partita.
IL metodo di caricamento è una COMBINAZIONE scelta a caso fra TUTTE LE ROTAZIONI e SPECULARITA’ POSSIBILI.
In pratica ogni labirinto è rappresentabile in 8 combinazioni differenti di cui una sola viene usata per ogni singola partita.
La “R” aiuta a identificare la rotazione rappresentata con o senza specularità.
IL labirinto raffigurato è SEMPRE lo stesso ma viene presentato in maniera diversa per impedire di memorizzarne lo schema!
L’uscita viene inserita su un lato scelto a caso e la posizione di partenza è sempre sul lato opposto, entrambe in posizioni casuali nelle rispettive righe e colonne. Osservate nelle figure precedenti l’uscita visibile nel lato opposto al punto di partenza rappresentato da un piccolo quadrato nero in una zona percorribile.
Le tecniche per creare queste combinazioni casuali sono semplici: inversione della matrice da X,Y a Y,X e lettura dei dati 0,1,0,0,1 lineare o al contrario!
Tutto è calcolato casualmente come evidenziato in queste righe del listato:
- scelta della direzione lettura dati asse X (riga 905)
- scelta della direzione lettura dati asse Y (riga 910)
- scelta della specularità (riga 915) ovvero matrice L(A,B) oppure L(B,A)
In pratica anche se ci fosse un solo labirinto nel programma, non ci sarebbe mai una partita uguale all’altra, sia per le diverse rotazioni/specularità (ben 8!) sia per l’ingresso e l’uscita casuale sui rispettivi lati opposti.
Tenendo conto che i labirinti sono 12 e le combinazioni per ciascuno sono 8 si arriva ad avere in pratica 96 differenti labirinti, ognuno con un punto di partenza e arrivo sempre differente.
In sintesi ci sono virtualmente infinite combinazioni diverse ad ogni partita.
Ma la caratteristica che lo rende davvero unico nel suo codice/listato è l’algoritmo di compressione dati implementato da SIMONE RIMINUCCI che riduce la dimensione originale da 26 MB a 13 MB mantenendo perfettamente equivalenti le due versioni senza rinunciare a nessuna caratteristica!
Versione 26 MB con labirinti scritti in sequenze dati 0,1,0,0,1…
Versione 13 MB con algoritmo di compressione labirinti di Simone Riminucci
In pratica questo labirinto 16x16:
diventa una sola riga di programma!
oppure questo labirinto 24x24:
si riduce ad una stringa alfanumerica scritta così:
l’unica differenza è il tempo di caricamento nella matrice a inizio gioco che aumenta da 4 a 15 secondi a seconda della dimensione del labirinto.
In questa immagine ci sono tutti i 12 labirinti compressi in una singola stringa ciascuno!
Gli autori di TREDDY 3D MAZE nel 1990: Luca Jibo & Andrea Donadon
Luca Jibo è l’autore di
PARTY GAMES
TREDDY 3D MAZE
SOCCER MANAGER
per
OLIVETTI M10
Playlist Video originali Olivetti M10 e “VirtualT” Tandy emulator:
https://www.youtube.com/playlist?list=PLi6FwmkTOrvDtoy84-yqLao5LyncMX9i9
Luca Jibo è nato lo stesso giorno di Bill Gates. Ha smesso di programmare all’età di 19 anni
TREDDY 3D MAZE on OLIVETTI M10 and “VirtualT” emulator Pc/Mac
Max Speed settings for “VirtualT” Tandy emulator