# Donkey (videogioco)

Donkey, spesso noto con il nome del file DONKEY.BAS, è un gioco per computer scritto nel 1981 e incluso nelle prime versioni del sistema operativo DOS per PC distribuito con il PC IBM originale. È un gioco di guida in cui il giocatore deve evitare di colpire gli asini. Il gioco è stato scritto dal cofondatore di Microsoft Bill Gates e da Neil Konzen.

## Storia

Quando IBM stava sviluppando il PC tra la fine degli anni '70 e l'inizio degli anni '80, aveva affidato a Microsoft lo sviluppo di un sistema operativo e una versione del linguaggio di programmazione BASIC da abbinare al nuovo computer. Il sistema operativo uscì come PC DOS quando incluso con il PC IBM e MS-DOS se venduto separatamente da Microsoft. Entrambe le versioni includono Microsoft BASIC.
DONKEY.BAS è stato scritto da Bill Gates e Neil Konzen per dimostrare il potenziale del PC IBM e la capacità del linguaggio di programmazione BASIC di produrre programmi interattivi con grafica e suono a colori. Il gioco continua a suscitare interesse in parte a causa del coinvolgimento di Gates in un periodo in cui Microsoft era relativamente piccola e aveva solo sei anni. Secondo un discorso pronunciato da Gates nel 2001:
«In realtà, siamo stati io e Neil Thompson alle quattro del mattino con un prototipo di PC IBM seduti in una piccola stanza. IBM ha insistito sul fatto che dovevamo avere un lucchetto sulla porta e avevamo solo questo sgabuzzino che aveva un lucchetto, quindi abbiamo dovuto fare tutto il nostro sviluppo lì ed era sempre caldissimo, ma abbiamo scritto a tarda notte una piccola applicazione per mostrare cosa potrebbe fare il Basic incorporato nel PC IBM. E quella fu Donkey.bas. All'epoca era molto elettrizzante.»
Andy Hertzfeld di Apple ha menzionato il gioco in una descrizione della reazione del team Macintosh al PC IBM del 1981 acquistato per loro da Steve Jobs "per analizzare e valutare", osservando che il nuovo computer è stato spedito con "alcuni giochi scritti in BASIC che erano particolarmente imbarazzanti:
«Il gioco più imbarazzante è stato un gioco di guida a bassa risoluzione chiamato "Donkey". Si supponeva che il giocatore guidasse un'auto lungo una "strada" mal disegnata che scorreva lentamente, e poteva premere la barra spaziatrice per attivare il movimento a scatti. Di tanto in tanto, una macchia marrone che doveva essere un asino in mezzo alla strada, riempiva lo schermo. Se non avessi premuto la barra spaziatrice in tempo, ti saresti schiantato contro l'asino e avresti perso la partita.»
La prima versione di DONKEY.BAS è uscita nel 1981, seguita dalla versione 1.10 nel 1982. I sistemi operativi con cui il gioco è stato distribuito per la prima volta funzionano ancora su computer moderni con BIOS compatibili e unità floppy da 5,25 pollici, tuttavia IBM BASICA che gestiva il programma in DOS 1.x PC richiede IBM Cassette BASIC basato su ROM, che i computer moderni non hanno. Il codice sorgente è ancora disponibile. Il gioco può essere giocato con gli interpreti GW-BASIC (codice originale) o QBasic (codice adattato) o in forma compilata.

## Modalità di gioco

DONKEY.BAS è un gioco di guida estremamente semplice in cui il giocatore controlla una macchina ma non può sterzare, accelerare o frenare, ma solo cambiare corsia per evitare una serie di asini sulla strada. Non c'è altro obiettivo che evitare gli asini.
Il gioco utilizza la modalità di visualizzazione CGA, l'unica modalità grafica a colori disponibile sul PC IBM originale. La modalità consente quattro colori, ma in DONKEY.BAS di solito ce ne sono solo tre sullo schermo.
Il centro dello schermo mostra una strada a scorrimento verticale a due corsie; le aree su entrambi i lati della strada sono utilizzate per punteggi e istruzioni. La macchina del giocatore sta risalendo la strada e ogni pochi secondi un asino apparirà a caso su un lato della strada nella parte superiore dello schermo. Mentre l'asino si sposta sullo schermo, il giocatore può premere la barra spaziatrice per passare da una corsia all'altra per evitare l'asino. Se l'auto colpisce l'asino, esplodono sia la macchina che l'asino, e parti della grafica sono sparse ai quattro angoli dello schermo al suono di una breve melodia monofonica riprodotta attraverso l'altoparlante del PC, con la parola "BOOM!" visualizzato sul lato sinistro dello schermo. Se il giocatore evita l'asino, questo scorrerà via dalla parte inferiore dello schermo, con le parole "Donkey loses!" ("L'asino perde!") visualizzate sul lato destro dello schermo, e dopo pochi secondi ne apparirà un altro. Non c'è mai più di un asino alla volta sullo schermo.
Il gioco registra il punteggio tra il giocatore e gli asini. Se l'auto colpisce un asino, l'asino ottiene un punto e il giocatore viene riportato all'inizio della strada. Mentre l'auto evita gli asini, si sposta lentamente verso l'alto, dando al giocatore meno tempo per reagire quando appaiono gli asini. Se l'auto evita abbastanza asini, il giocatore riceve un punto e l'auto viene rispostata in fondo alla strada. Il gioco visualizza il numero di punti guadagnati dal giocatore e dall'asino, ma non termina o cambia quando viene raggiunto un particolare punteggio.
Oltre a premere la barra spaziatrice, l'unico controllo disponibile per il giocatore è premere il tasto Esc per uscire dal gioco.
Gli sprite sono resi in modo leggermente diverso tra l'interprete QBASIC e l'interprete originale BASICA/GW-BASIC IBM.

## Storia del nome

Anche se sulla schermata del titolo del gioco è semplicemente chiamato Donkey, oggi è spesso noto con il suo nome di file DONKEY.BAS o Donkey.bas. Questo era il nome del file che contiene il programma e come tutti i programmi BASIC in DOS usa l'estensione ".BAS". Tutte le versioni di DOS che venivano prima di Windows 95 mostravano i nomi dei file in maiuscolo e questo viene spesso mantenuto quando il gioco viene chiamato per iscritto.

## Donkey .NET

Come esempio di programmazione per la nuova piattaforma .NET e il linguaggio di programmazione Visual Basic .NET, nel 2001 Microsoft ha sviluppato un gioco chiamato Donkey .NET in omaggio a DONKEY.BAS. Donkey .NET è un gioco di guida tridimensionale in cui l'obiettivo è quello di colpire gli asini. Il gioco dimostra ai programmatori come può essere strutturata un'applicazione di Visual Basic .NET e come utilizzare varie funzionalità della piattaforma .NET.

## iPhone e iPad

C'è anche un rifacimento di DONKEY.BAS per iOS. L'app, denominata DONKEY.BAS, è compatibile con iPhone, iPad e iPod Touch. A differenza del gioco originale, il gioco iOS termina quando il giocatore colpisce l'asino 5 volte. Il gioco è più impegnativo in quanto la velocità verso il basso dell'asino aumenta man mano che il giocatore vince più punti. L'app è uscita nell'App Store di iTunes il 27 gennaio 2012.

## Apple Watch

Il 13 gennaio 2017 DONKEY.BAS è stato reinventato per Apple Watch. Il nuovo gioco, DONKEY.APP, richiede watchOS 3 e utilizza le nuove API SpriteKit e Digital Crown. I giocatori girano la corona digitale per cambiare corsia.