Tra due giorni la gara

Una storia ad altra pressione (di vapore)

Introduzione
Il gioco
Se pensate che avrei dovuto usare Inform
Se avete finito il gioco
Alcune note importanti
Conclusioni
Altre cosette come queste, per favore!

Fig. 1: Tra due giorni la gara

PlatformFree download linkLanguageNotes
Commodore 64two-days-c64.d64English .d64 with loader
Commodore Plus/4two-days-plus4.prgEnglish .prg, intro and music by Luca/FIRE ("Come le rose", 1918)
Commodore VIC-20+24KTWO-DAYS-VIC-20.d64English D64 image containing the game split in 3 files. Normal VIC-20 screen
Commodore VIC-20+32KVIC20-40C-2-DAYS.d64English D64 image containing the game split in 3 files. 40 columns on screen.
Commodore 1282-DAYS-C128.d64English D64 image containing the game split in 3 files
Commodore PET (32K 80 col.)2-days-PET.zipEnglish ZIP file containing the game split in 3 files and a D64 image containing all of them
Commodore PET (32K 40 col.)2-days-PET40.zipEnglish ZIP file containing the game split in 3 files and a D64 image containing all of them
MS-DOSTWOD.zipEnglish zipped .exe, requires ANSI.SYS
Olivetti M20two_days_Olivetti_M20.zipEnglish compressed archive containing the game split in three parts for the PCOS operating system
ZX Spectrum 48KZX_spectrum_filtered_en.zipEnglish compressed archive containing the game split in three parts as WAV and TAP files
RC20142-days-RC2014.zipEnglish compressed archive containing the game split in three parts as ihx files to be sent by the hexload tool
Commander X16two_days_CommanderX16.zipEnglish ZIP file containing the game split in 3 files for the Commander X16 computer (tested with emulator v.30)
Commodore 64due-g-c64.d64Italiano .d64 con caricatore
Commodore Plus/42-days-plus4-ita.prgItaliano .prg, introduzione e musica: Luca/FIRE ("Come le rose", 1918)
Commodore VIC-20+24KDUE-GIORNI-VIC-20.d64Italiano Immagine disco D64 contenente il gioco, diviso in tre parti
Commodore VIC-20+32KVIC20-40C-2-DAYS-IT.d64Italiano Immagine disco D64 contenente il gioco, diviso in tre parti. Schermo a 40 colonne.
Commodore 1282-GIORNI-C128.d64Italiano Immagine disco D64 contenente il gioco, diviso in tre parti
MS-DOSDUEG.zipItaliano .exe compresso, richiede ANSI.SYS
Olivetti M20two_days_Olivetti_M20_it.zipItaliano Archivio compresso contenente il gioco, diviso in tre parti per PCOS
ZX Spectrum 48KZX_spectrum_filtered.zipItaliano Archivio compresso contenente il gioco in 3 parti in formato WAV e TAP

Tabella 1: Tutte le versioni di Two Days to the Race, scaricabili liberamente e giocabili senza limitazioni.


Video 1: Two Days to the Race caricato e giocato su un Commodore 128D in modalità C64

Fig. 2: Tra due giorni la gara, che gira su un Commodore 64

Introduzione

Tra due giorni la gara è un gioco di avventura testuale sviluppato da Davide Bucci nel 2018-2019 utilizzando l'Adventure Writing System. Il gioco è ambientato in una Torino abbastanza steampunk all'inizio del ventesimo secolo.

La versione del C64 è stata ottenuta con aws2c, un convertitore che permette di ottenere codice C, poi compilabile con il compilatore Cc65. Per far girare il gioco (distribuito come file "PRG"), si può utilizzare un emulatore come VICE x64, basta prendere e trascinare il file sulla finestra dell'emulatore. Utilizzando qualcosa come l'iec2sc è possibile anche provare il programma su una macchina vera, se l'avete a disposizione.

La versione italiana del gioco è stata interamente tradotta da Alessio Colopardi che ringrazio calorosamente e con cui mi congratulo per il lavoro eccellente che ha fatto e per avermi suggerito diverse correzioni e miglioramenti al testo in inglese.

La versione per macchine MS-DOS è stata compilata con il compilatore Borland Turbo C++ 3.0 per MS-DOS e provata con DOSbox. Non c'è quasi nessuna differenza nel codice sorgente tranne qualche dettagli nei codici per i colori etc. Quanto mi piace il linguaggio C! Ho provato il gioco con un Olivetti M200 con sistema operativo MS-DOS 3.30 e funziona correttamente. Se il gioco appare come visibile in figura 11, leggete le note più sotto. Ho anche compilato una versione per il venerabile Olivetti M20, il sistema operativo PCOS, il RC2014 e il Commander X16.

Fig. 3: il venerabile Borland Turbo C++ 3.0. Era un tool eccellente nel 1992.

Il gioco

Il tuo nome è Emilia Vittorini, sei la figlia di Augusto Vittorini, che ha fondato l'Industria Torinese di Automobili (ITA) con il suo fratello Tullio. Tuo padre è all'estero per cercare fondi, ma qualcosa è successo e hai appena sentito tuo zio rientrare sbattendo la porta. La tua missione è di trovare quanto è successo e cercare di aiutare la tua famiglia. Sarò i tuoi occhi ed orecchie. Buona fortuna.


Un'avventura testuale è basata su comandi digitati in un linguaggio relativamente naturale in inglese. Ecco qualche consiglio:

guarda: descrive nuovamente il luogo in cui il giocatore si trova
esamina oggetto: descrive l'oggetto specificato
nord oppure n o vai a nord: muove verso nord, se possibile. Altre direzioni sono s, e, o, sopra, sotto.
Il comando bye permette di uscire dal gioco e restart lo fa riprendere dall'inizio. Si possono prendere degli oggetti che si "notano" con prendi. Potete avere una lista degli oggetti trasportati con inventario.

Alcuni comandi possono essere abbreviati:


Il gioco è diviso in parti. Quando una di esse viene completata, otterrete un codice che permetterà di saltare direttamente all'inizio della parte successiva. Scrivetevi le parole d'ordine per riprendere il gioco in futuro.

Non è possibile salvare o caricare il gioco, per cui segnatevi le parole d'ordine. Fatemi sapere se trovate errori o orrori di ortografia, oppure bug nel codice del gioco!

Ho fatto un po' di disegni per il gioco e mi sono divertito molto a mettere insieme lo schermo del caricatore per il C64 e la grafica CGA per MS-DOS. Ho imparato ad apprezzare la palette del C64, tra l'altro. Ho sempre pensato che mancassero dei colori saturi come un rosso acceso, ma poi ho capito che i colori sono stati scelti per fondersi molto bene insieme e ciò è molto utile (figura 7 o video 1). Sono abbastanza contento anche dei risultati ottenuti con la grafica CGA (figura 8) e con la classica paletta "fredda", ovvero nero, azzurro, magenta e bianco. E' stato molto piacevole disegnare tenendo conto di queste limitazioni.

Tra l'altro, il loader per C64 riconosce automaticamente da quale dispositivo è stato caricato e continua a caricare da esso. Ho un C128D con un floppy interno che è il dispositivo 8 ed un SD2IEC che è il dispositivo 9. E' seccante constatare che tantissimi loader (anche di giochi sviluppati recentemente) caricano sempre e solo dal dispositivo 8, dandomi quindi errore se sono caricati da SD2IEC.

Fig. 4: Il gioco che gira su una macchina DOS, emulata con DOSbox

Fig. 5: Il gioco che gira su un Olivetti M200 computer, con MS-DOS 3.30

Fig. 6: Il gioco che gira su un Commodore Plus4 emulato


Se pensate che avrei dovuto usare Inform

Inform è un ottimo programma, utilizzato con profitto da molti appassionati di avventure testuali per mettere a punto giochi nuovi e vecchi. Costituisce attualmente uno standard elevato per i giochi sviluppati nel 2019. Se lo conoscete, starete probabilmente chiedendovi perché ho deciso di non utilizzare questo tool.

Tuttavia, quello che ho voluto fare è scrivere un gioco per macchine pesantemente limitate come il buon vecchio Commodore 64. E' vero che avrei potuto dedicarmi interamente alla storia ed al gioco utilizzando uno strumento moderno ed efficiente invece di partire praticamente da zero. Tuttavia, dato che mi piace programmare, mettere insieme gli utensili che ho utilizzato ha contribuito grandemente al piacere che ho derivato dalla scrittura del gioco. Probabilmente non avrei scritto nulla se avessi dovuto solamente utilizzare Inform.

Se avete giocato al gioco e siete ancora dubbiosi, non mi offenderò per le vostre critiche, sono sicuro che ogni cosa possa essere migliorata in qualche modo. Per favore, però, tenete a mente che il mio obiettivo era di scrivere un gioco che potesse essere tenuto in memoria interamente da un C64. Perdipiù, un interprete z-machine non è disponibile su alcune piattaforme su cui sono riuscito a far girare il gioco, come il RC2014 o l'Olivetti M20.

Fig. 7: Il caricatore del gioco per Commodore 64

Se avete finito il gioco

Se avete giocato almeno la versione 1.4 del gioco e l'avete finita, mandatemi (privatamente) la parola d'ordine finale e metterò il vostro nome nella lista che segue. Per contattarmi, potete usare i messaggi privati su Twitter (@davbucci), oppure mandatemi un'email a davbucci at tiscali dot it.

Fig. 8: Al lavoro sullo splash screen MS-DOS in tutto lo splendore dei quattro colori della CGA.

Fig. 9: Magari un giorno ci sarà una distribuzione su supporto fisico se sarete in molti a richiederlo :-)

Fig. 10: Il gioco che gira sul mio ZX Spectrum 48K.

Alcune note importanti

Fig. 11: Se il gioco appare così, il vostro terminale non interpreta i codici ANSI. Utilizzate DOSbox che li supporta nativamente!

Se il gioco non mostra alcun colore e se ci sono strani caratteri che appaiono, assicuratevi di avere qualcosa di simile a DEVICE=ANSI.SYS oppure DEVICE=DOS\ANSI.SYS nel vostro file CONFIG.SYS, così che il terminale possa interpretare i comandi ANSI per i colori.

Se usate la console di Windows ed il gioco appare come in figura 11, utilizzate DOSbox!

Le versioni per C64, Plus/4 e MS-DOS contengono tutto il gioco in un unico file, più in qualche caso un caricatore grafico esterno. Le versioni per ZX Spectrum e VIC-20+24KB presentano il gioco diviso in più parti. Una versione speciale per VIC-20+32KB utilizza un driver per lo schermo a 40 colonne che permette di giocare in maniera molto più godibile. Potete caricare la parte che vi interessa se volete arrivare velocemente ad un certo punto del gioco. Tuttavia, vi verranno richieste le password apposite che sono rivelate all'interno del gioco al momento opportuno. Ho incluso nell'archivio compresso entrambe le versioni TAP e WAV. Se usate una scheda DivMMC Future, c'è una piccola incompatibilità che può fare in modo che il testo che scrivete nel gioco appare con caratteri rovinati (vedere figura 12). Con la mia DivMMC Future, basta resettare la macchina (con il tastino apposito sull'interfaccia) e scrivere LOAD "" per ricaricare il gioco che funzionerà senza problemi. Se utilizzerete il metodo classico tramite un file audio, ci vorrà qualche minuto, ma almeno potrete godervi l'immagine di figura 13. Nelle figure 14, 15, 16 e 17, trovate il gioco eseguito rispettivamente su un VIC20+24K, un VIC20+32K in versione 40 colonne, su un Olivetti M20 e sul Commander X16, un computer sotto sviluppo nel momento in cui scrivo da un'équipe coordinata da David "The 8-bit guy" Murray.

Fig. 12: I comandi inseriti dal giocatore possono apparire illeggibili, rendendo il gioco ingiocabile, quando i file TAP sono caricati con una DivMMC Future da una carta SD. Ci sono delle soluzioni. Leggete il testo qui sopra.

Fig. 13: Il gioco mentre si sta caricando su uno ZX Spectrum 48K. Ho usato il cavetto che ho descritto qui.

Fig. 14: Il gioco su un VIC-20 emulato, con espansione RAM da 24 KB

Fig. 15: Il gioco su un VIC-20 emulato, con espansione RAM da 32 KB. Il gioco funziona a 40 colonne!

Fig. 16: Il gioco su un Olivetti M20

Conclusione

Questo gioco è la prima avventura testuale che provo a scrivere da zero. Il sistema AWS funziona bene ed è efficace: il codice sorgente è circa 78 KB ed il risultato entra dentro nei 49 KB disponibili per un eseguibile prodotto dal Cc65 che giri su un C64.

Fig. 17: Il gioco sul Commander X16 di David "The 8-bit guy" Murray

Mi piace molto anche il personaggio principale del gioco. Emilia è determinata e coraggiosa e risolve da sola la situazione. E' stato interessante creare un personaggio del genere discutendo con la mia compagna e dopo un po' sembra quasi che il personaggio abbia vita propria mentre si scrive. Mi è piaciuto molto anche riprendere il vecchio Borland Turbo C++, perché è stato il primo compilatore serio che ho utilizzato, su cui ho imparato il C ed il C++ molti anni fa.

Mi sono divertito un sacco a scrivere questo gioco e spero che piaccia anche a voi!

Altre cosette come queste, per favore!

Se vi è piaciuto questo programma, date un'occhiata alle altre cosette che ho scritto per computer molto vecchi!


La piramide di Innuh La piramide d'Innuh (En/It, 2011-2018) per C64, C128, Plus4, VIC-20 ZX Spectrum
Alien Invasion Alien Invasion: un gioco per VIC-20 scritto nel 2018
Cavern Explorer Cavern Explorer, un altro gioco moderno per VIC-20 (2018)
3D maze for the Commodore 64 Labirinto 3D su Commodore 64 (2017)

Log

September 22, 2019: Added screenshot of Commander X16 version.

September 19, 2019: Added the Commander X16 version (game in english).

September 18, 2019: Updated hall of fame.

September 6, 2019: Added the RC2014 version (game in english).

August 28, 2019: Added the PET 40 column version (game in english).

August 26, 2019: Added the PET 80 column version (game in english).

March 14, 2019: Added the 40 column VIC-20+32KB version (game in italian).

March 12, 2019: Updated english game to version 1.7 final with many improvements about the English language.

March 9, 2019: Added the 40 column VIC-20+32KB version (game in english).

February 23, 2019: Added the Olivetti M20 and Commodore 128 versions.

February 18, 2019: Corrected VIC-20+32KB into VIC-20+24KB.

February 17, 2019: Stable version of the game in Italian (ZX Spectrum), English version for VIC-20+24KB

February 16, 2019: Stable version of the game in Italian (C64, Plus4, MS-DOS)

February 14, 2019: Stable version of the game in English (C64, Plus4, ZX Spectrum, MS-DOS)

February 3, 2019: It and En version of the game for the Sinclair ZX Spectrum.

February 1, 2019: Bug correction in the game.

January 22, 2019: Italian version of the game available for the C64. Added a paragraph about artwork.

January 19, 2019: Added the Italian version of the game for MS-DOS to download.

January 2, 2019: Italian translation of the page.

December 28 2018: Many improvements, added the PLUS4 version.

December 22 2018: Add new version of the game, with a password system.

December 17, 2018: Added MS-DOS version and some screenshot.

December 16, 2018: Page for beta testers with the C64 version.

--------   
Copyright (C) 2018-2019  Davide Bucci davbucci at tiscali dot it
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.