SEUCK – La Guida Definitiva

Questa guida è stata scritta da me e mio fratello nel lontano 2013, per una pubblicazione in formato “e-book” (e con la speranza – non ho problemi ad ammetterlo – di ricavarci qualche soldino); per questo motivo le informazioni presenti nell’introduzione potrebbero non essere aggiornate. Abbiamo atteso tanti anni per la pubblicazione perché avevamo in mente di realizzare un breve gioco dimostrativo, spiegandone e commentandone i vari passaggi; ne abbiamo tratto soltanto un piccolo abbozzo, che non riteniamo degno di pubblicazione.

seuck_copertina

Realizzare un videogioco negli anni ’80 non era certo un’impresa alla portata di tutti, soprattutto sulle macchine ad otto bit: se si voleva farlo funzionare ad una velocità almeno accettabile occorreva imparare un linguaggio di programmazione a basso livello, e bisognava anche conoscere l’hardware della macchina. Chi non aveva il tempo (o la voglia) di studiare poteva rivolgersi a programmi come “The Quill”, “Garry Kitchen’s Game Maker” e pochi altri, ma si trattava di prodotti costosi, poco flessibili ed in certi casi anche difficili da utilizzare.

Lo scenario cambiò drasticamente sul finire del 1987, con la pubblicazione, ad opera della Palace Software, dello “Shoot’em Up Construction Kit“, o più semplicemente “S.E.U.C.K.“.

seuck

seuck_menu

Come già si evince dal titolo, questo programma (opera di Jon Hare e Chris Yates, meglio noti come “Sensible Software”) consente principalmente la realizzazione di giochi “sparatutto”. Si tratta di una serie di “editor”, ognuno dei quali permette di lavorare su di una specifica sezione del gioco: è quindi possibile disegnare i “protagonisti” grazie allo “sprite editor” per poi animarli (“objects editor”) o collocarli sul fondale (“attack waves” e “player limitations”); il tutto viene gestito tramite un joystick e qualche tasto.

Una volta avviato, il S.E.U.C.K. mostra un menù da cui è possibile sia accedere agli editor, che provare il gioco o salvarlo (su nastro o su disco). Ogni opzione prevede un sotto-menù specifico, da cui si può accedere direttamente ad una delle varie funzioni disponibili per quella specifica sezione: ad esempio, selezionando l’editor degli sprites (“edit sprites”) ci verrà offerta la possibilità di selezionare uno sprite, modificarlo, impostarne i colori, ecc.; tutte queste funzioni sono in ogni momento accessibili anche all’interno dell’editor, premendo il tasto corrispondente.

L’editor degli oggetti consente di definire le caratteristiche dei personaggi giocanti e dei “nemici”, come la velocità di movimento, il tipo di sparo, i fotogrammi e la velocità dell’animazione, ecc., nonché di disegnare e animare proiettili ed esplosioni.

Con l’editor degli sfondi possiamo disegnare gli elementi del fondale, organizzandoli in blocchi di 5×5 caratteri, e disporli sulla mappa di gioco; gli altri editor consentono di realizzare gli effetti sonori, di stabilire i parametri “vitali” del giocatore, si inserire i nemici sulla mappa, di definire i “confini” e la modalità di scorrimento dei livelli e di disegnare lo schermo dei titoli. E’ possibile salvare i vari elementi del gioco, sia separatamente che in blocco, ed “esportare” il gioco completo.

Allegati all’editor ci sono anche quattro giochi, realizzati con il S.E.U.C.K. dagli stessi autori, che danno una dimostrazione delle potenzialità del programma: “Slap’n Tickle”, una sorta di “clone” di “Slap Fight”, è un classico shoot’em up a scorrimento verticale, con tanto di mostri di fine livello; “Outlaws” è uno shoot’em up “a spinta” ambientano del far west, che strizza l’occhio al classico “Gun Smoke” della Capcom; “Transputer Man” è un “arena shooter” ambientato tra chip e circuiti stampati; infine, “Celebrity Squares” è un omaggio alle redazioni delle principali riviste di video-games dell’epoca.

ccs60

ccs61

ccs62

ccs63

La grande facilità d’uso di questo potente editor portò alcune software house a pubblicare giochi realizzati con esso: “Base 3” della Pirate Software è forse il caso più “eclatante”, trattandosi di un banale clone di “Slap’n Tickle”, ma non possiamo non citare opere come “Wheelies” (basato sul “motore” del SEUCK ma arricchito da sezioni programmate “ad hoc”, come uno schermo dei titoli animato, una schermata di selezione del livello, e la musica), anche se la produzione più corposa fu destinata ai supporti allegati alle riviste (Commodore Force, Commodore Format, Commodore Disk User) ed al pubblico dominio. In Italia la Systems Editoriale e le Edizioni Jackson pubblicarono alcuni titoli originali, spesso caratterizzati dall’aggiunta di un nuovo schermo dei titoli e di sottofondo musicale, mentre le collane “da edicola” come “Special Program”, “Game 2000” e simili si limitavano (come al solito) a rimaneggiare sia le produzioni commerciali che i giochi di pubblico dominio (e non mi risulta che abbiano pubblicato alcunché di originale). C’è da dire, comunque, che molte di queste produzioni (non solo quelle di pubblico dominio) utilizzavano sprites e musica “rubati” da altri giochi, senza peraltro citarne l’origine…

Una certa importanza alla scena “amatoriale” fu data da riviste come “Zzap!”, sia italiana che inglese, che chiedevano espressamente ai lettori di inviare le loro creazioni, che poi venivano sottoposte al giudizio non sempre lusinghiero della redazione. Ricordiamo, in particolare, “Forest of Aurora” e “Land of Solaria”, entrambi firmati da Luciano Morpurgo e recensiti sul n. 26 dell’edizione italiana di Zzap!: i redattori paragonavano la qualità di questi due giochi a quella di produzioni commerciali, lodando la grafica e lo schema di gioco di entrambi i titoli (che furono poi pubblicati dalla Systems Editoriale); salvo poi, nel numero successivo, smentire, in base a notizie ottenute da “fonti affidabili ed assolutamente sicure delle loro affermazioni” – a loro dire -, la paternità degli stessi, definendoli “esercizi di programmazione di un (fantomatico, ndR) programmatore professionista residente all’estero”! Va detto, per dovere di cronaca, che Luciano Morpurgo in persona, interpellato a proposito dal sito http://www.ready64.org, ha a sua volta smentito questa notizia, confermando di essere l’autore di “Solaria” ed “Aurora”. Sul n. 22 di Zzap! venne invece recensito “Raptor”, opera prima di Silvio Frattini, che lo realizzò nei ritagli di tempo nell’arco di un mese. Il gioco fu premiato con un bel 78%, e l’autore, dopo averlo rimaneggiato tenendo conto delle critiche dei redattori, lo sottopose alla Systems Editoriale, che lo acquistò e provvide a pubblicarlo. Successivamente, Frattini realizzò altri giochi con il SEUCK, tutti pubblicati dalla Systems Editoriale, migliorandoli con l’aggiunta di routine programmate ad hoc che gli permettevano di visualizzare schermate dei titoli più dettagliate, musica di sottofondo, armi extra ecc: citiamo, a titolo di esempio, “Jonathan” (produzione collegata all’omonimo programma TV del compianto Ambrogio Fogar) ed “Issuar”.

aurora_01

aurora_02

Oltre i confini italiani, i nomi di punta erano Alf Yngve, Shaun Pearson, Andrew Smith e Martin Edwards.

Alf Yngve (svedese) ha cominciato la sua “carriera”, come i suoi colleghi italiani, inviando alle redazioni delle riviste specializzate i giochi migliori che aveva realizzato con il SEUCK fino a quel momento. Si trattava di titoli come “Attack of the Mutant Ninja Turtles” (ispirato alla serie TV delle tartarughe ninja; il titolo fu poi modificato per motivi di copyright, in “Attack of the Mutant Ninja Bluberries”), “Twin Tigers” (una sorta di “clone” del coin’op “Twin Eagle”), “Alienator 93” (un’imitazione di “Space Gun” della Taito), “Tau Zero” (classico shoot’em up spaziale che omaggia “Terra Cresta” e “Gemini Wing”) e “COPS” (probabilmente ispirato a “Jail Break”). Quest’ultimo fu pubblicato sulla cassetta allegata al n. 89 di Zzap!: si trattava di un gioco caratterizzato da numerosi tocchi di classe e “trucchetti”, con cui Yngve “superava” in maniera piuttosto creativa i limiti del SEUCK; il gioco infatti prevedeva sezioni con grafica in simil-3D isometrico, come anche l’interazione con alcuni elementi del fondale (come scale e montacarichi), per finire con una sezione a scorrimento orizzontale sul tetto di un camion – ispirata da “Dragon Ninja”. Commodore Force pubblicò anche uno dei tanti seguiti di questo gioco, “Holiday Cops”, su una delle cassette allegate al n. 4 della rivista, e la redazione incoraggiò l’autore a cercare lavoro nell’industria dei videogames, settore in cui Yngve ha poi effettivamente lavorato (come tester e game designer nella scandinava Funcom) fino al 2001. Su Commodore Format, invece, videro la luce i suoi “Twin Tigers” (Commodore Format n. 26), “Super Strike!” e “3D Spacewar” (Commodore Format n. 56): la particolarità di questi giochi è che presentavano diverse aggiunte extra-SEUCK, come un nuovo schermo dei titoli, musica di sottofondo ed un nuovo pannello per il punteggio; questi extra erano opera di Jon Wells, sul quale ritorneremo più avanti. Di tanto in tanto Alf Yngve continua a sfornare titoli, che vengono pubblicati dalla Psytronik Software anche su supporti fisici.

cops

cops_01

Shaun Pearson, nel 1991, si vide pubblicati i suoi “Shot Away” e “Out Take II” sul nastro allegato a Zzap! (rispettivamente, ai numeri 74 e 76). “Shot Away”, in particolare, prevedeva la necessità di girare il televisore (o il monitor) su un fianco, trasformando così il gioco in uno shoot’em up a scorrimento orizzontale! Pare che l’autore, per il fatto che questa manovra avrebbe compromesso la visualizzazione dei colori, avesse realizzato appositamente la grafica in tonalità di grigio. Qualche anno dopo (1994), “Out Take II” venne pubblicato, col nome di “Sub Burner” (con grafica leggermente modificata e musica di sottofondo) sul n. 43 di Commodore Format. Altri giochi di Shaun Pearson che si sono guadagnati la pubblicazione sono “House Case” (Commodore Format n. 57), “Road Course” (Commodore Format n. 60).

out_take_ii

out_take_ii_03

Infine, citiamo Andrew Smith e Martin Edwards, i cui giochi vennero pubblicati su Commodore Format: degni di nota sono titoli come “Chrome Brothers” (un gioco di scale e piattaforme con grafica “carina”) ed “Alien Smash” (shoot’em up “a spinta”, con un’ottima grafica ed una certa abbondanza di mostri di fine livello).

alien_smash_02

chrome_bros

Molti titoli SEUCK sono stati pubblicati sui nastri della “Binary Zone PD”: si trattava di cassette che contenevano il meglio della produzione di “pubblico dominio”, che venivano vendute a prezzi popolari per corrispondenza. Tra i giochi che segnaliamo in questa sede, “Death Row” di Alf Yngve (il primo “clone” di Operation Wolf realizzato con il SEUCK); “Speed Demon” di Ryan Chenery (gioco di corse con visuale in soggettiva alla Turbo Charge, realizzato utilizzando il SEUCK in maniera molto creativa); “Grod the Demented Pixie” di Brian Hughes (per l’originale stile grafico; il gioco fu anche pubblicato su Commodore Format n. 37).

La “fine” commerciale del Commodore 64 segnò anche il declino, seguito dalla definitiva scomparsa, delle riviste specializzate; a colmare il vuoto provvide, principalmente, “Commodore Zone”, una rivista amatoriale in formato A5, edita da Jason MacKenzie (già responsabile della serie “Binary Zone PD”), su cui videro la luce le migliori produzioni amatoriali per Commodore 64; tra queste possiamo tranquillamente includere anche alcuni giochi realizzati con il SEUCK, come “Archetype” di Alf Yngve, il simpatico simil-platform “Cleo the Dog” e la serie “Strike Team” di Carl Mason.

cleo_02

speed_demon

Un altro personaggio che ha contribuito, negli anni, alla diffusione ed al definitivo sdoganamento del SEUCK (da principio visto sempre come una semplice scorciatoia nella realizzazione di giochi spesso pessimi) è senza dubbio Richard Bayliss: oltre alle sue produzioni originali, infatti, ha contribuito a migliorare, con inserti scritti in linguaggio macchina, anche i giochi di altri, e a mettere in rete preziosi scritti e videoclip in cui svela diversi trucchi per migliorare le produzioni realizzate con questo editor. Dal 2010 organizza inoltre la “SEUCK Compo”, che ha visto partecipare nomi illustri come Shaun Pearson ed Alf Yngve e ha contribuito all’emergere di nuovi talenti come Anthony Burns.

Chi ha invece dato un contributo più che innovativo alla scena S.E.U.C.K. è Jon Wells: oltre a programmare giochi originali (SEUCK e non), si occupava principalmente di “migliorare” i giochi SEUCK degli autori più blasonati (come Alf Yngve), inserendo schermo dei titoli, musica, pannelli grafici, ecc. Commodore Format pubblicò diversi articoli da lui scritti, su come migliorare i giochi fatti con questa utility: i suoi consigli spaziavano dalla scelta dei colori, al modo di disegnare le ombreggiature, arrivando però anche a toccare questioni più tecniche, come l’aggiunta di una tabella dei punteggi.

E’ autore di una demo, “Breakthrough“, apparsa sulle pagine (e sul Powerpack) di Commodore Format n. 36: si trattava di un HSEU che sfruttava le routine del SEUCK. Il gioco non fu mai terminato, ma l’autore (che aveva comunque annunciato, su Commodore Force n. 11, di volerlo vendere per corrispondenza, una volta ultimato, al prezzo di due sterline) decise di non vanificare i suoi sforzi: infatti, qualche anno dopo, estrapolò la routine di scorrimento orizzontale e la integrò nel SEUCK, trasformando così l’opera incompiuta in una nuova versione del famoso editor! Questa particolare versione, uscita nel 2008, è identica in tutto e per tutto a quella originale, con l’unica differenza data dalla direzione verso cui scorre lo schermo.

breakthrough_01

breakthrough_02

La rete internet ha dato la possibilità di pubblicare i propri giochi anche a chi li aveva conservati nel cassetto, o li aveva diffusi soltanto tra pochi amici e parenti; è il caso di “Laserhawk” di Shaun Coleman. L’autore ne aveva inserito un filmato sul suo canale di YouTube, e Frank Gasking (“archeologo” digitale, responsabile del sito “Games that weren’t”), dopo averlo fortunosamente trovato, è riuscito a convincere Coleman a trasformarlo in un file .D64 ed a renderlo disponibile in rete. “Laserhawk” contiene diverse modifiche in linguaggio macchina, tra cui il cambio del “set” di colori del fondale ad ogni livello; lo scorrimento in parallasse (ottenuto “animando” i caratteri grafici) e la presenza di armi extra, che si attivano ogni volta che il giocatore ottiene 10.000 punti.

laser_hawk_02

laser_hawk_03

Del SEUCK è stata realizzata anche una versione per PC, nel 2008, ma ha poco a che fare con l’originale: in più, è molto facile trovare programmi più complessi e completi (come il Game Maker) che permettono di realizzare giochi su questa piattaforma; sul Commodore 64, invece, rappresentò una sorta di rivoluzione, dando la possibilità a tutti di esprimere la propria creatività in maniera semplice e flessibile, ma non solo: anche programmatori esperti hanno ammesso di aver utilizzato le routine del SEUCK per realizzare la grafica dei loro giochi: un esempio per tutti, Andrea Pompili, che lo ammette candidamente nella strepitosa sequenza finale di Catalypse. Che dire: grazie, Sensible Software!

EDIT SPRITES

Questo editor permette di creare e modificare i disegni che andranno a dare vita ai personaggi del gioco.

sprites_2

Le opzioni a disposizione sono le seguenti:

F1 – Select Sprite
F3 – Edit Sprite
F5 – Edit Colour
F7 – Select Colour
S – Slide Sprite
M – Mirror Sprite
C – Copy Sprite
E – Erase Sprite

Premendo F1 entreremo nell’editor vero e proprio. Avremo accesso così a ben 127 “locazioni” (numerate da 000 a 126) in cui poter disegnare i fotogrammi di animazione dei nostri personaggi. E’ bene progettare attentamente il gioco fin dall’inizio, per evitare ad esempio di creare animazioni con più di 18 fotogrammi, o di esaurire i fotogrammi a disposizione prima di aver disegnato tutti i personaggi di cui il gioco necessita, o ancora di creare un numero di personaggi superiore al numero massimo di oggetti consentiti (2 giocatori con relativi proiettili ed esplosioni, 36 nemici, 8 proiettili nemici, 8 esplosioni nemiche) (v. Edit Objects per le limitazioni relative agli oggetti).

Muovendo il joystick in alto e in basso è possibile scorrere i vari fotogrammi rispettivamente in senso decrescente e in senso crescente fino a trovarne uno vuoto in cui disegnare o uno già disegnato da modificare. Premendo F3 (Edit Sprite) o il tasto “fuoco”, possiamo entrare nella griglia centrale e iniziare a disegnare. Per posizionare un pixel è necessario premere il tasto “fuoco” in corrispondenza della casella desiderata della griglia. Mentre procediamo col disegno possiamo vedere l’effetto delle modifiche sullo sprite in dimensioni originali nella finestrella posizionata in alto a sinistra sullo schermo.

sprites_3

Premendo il tasto F7 (Select Colour), o muovendo il cursore, tramite il joystick, oltre il limite sinistro della griglia di disegno, abbiamo la possibilità di selezionare il colore con cui disegnare. I colori disponibili sono 4:

  • un colore di sfondo (Background), che altro non è se non il colore “trasparente”. Nella scelta dobbiamo considerare il colore dominante del fondale, per fare in modo che i nostri personaggi non vi si mimetizzino. Ad esempio, se il nostro gioco si svolge nello spazio, ovvero se il colore di sfondo del fondale è il nero, sceglieremo tale colore come sfondo per gli sprites. Questo ci permetterà di evitare di utilizzare il nero come colore generale o modificabile, e inoltre ci darà meglio l’idea di come il disegno verrà visualizzato quando l’oggetto a cui appartiene verrà posizionato sulla mappa.

  • due colori generali (General Col), identici per qualsiasi disegno e per qualsiasi oggetto. Anche in questo caso occorre fare delle scelte oculate: sarebbe infatti opportuno scegliere un colore scuro, magari per i contorni o per le ombre, e uno chiaro, ad esempio per gli effetti di luce.

  • un colore modificabile (Changeable), che sarà rappresentato da uno qualunque dei 16 colori di cui è composta la palette del Commodore 64. Tuttavia la scelta di questo colore all’interno dell’editor degli sprites è puramente indicativa: il colore dell’oggetto, di cui quel disegno costituirà un fotogramma, andrà selezionato nell’editor degli oggetti (v. Edit Objects). Questa che può sembrare una specie di limitazione è in realtà un vantaggio: potremo infatti ad esempio disegnare una navicella e poi attribuirne i fotogrammi (o il fotogramma) a un certo numero di oggetti, e a ciascuno di essi dare un colore e magari anche caratteristiche diversi.

sprites_4

Una volta posizionatici sul tipo di colore da modificare, premendo F5 (Edit Colour) possiamo selezionarne la tinta: il nostro cursore lampeggiante infatti si andrà a posizionare su una riga posta al di sotto della griglia di disegno e composta da 16 rettangolini colorati rappresentanti le tinte disponibili. Per selezionare quella desiderata basta premere il tasto “fuoco” (o muovere il joystick verso l’alto, o ancora premere F3) in sua corrispondenza. Il cursore si porterà automaticamente nella riga inferiore della griglia di disegno.

Analogamente per passare dal menu di selezione del tipo di colore alla griglia di disegno senza passare per la selezione della tinta, basta spostare il joystick verso destra o premere il tasto “fuoco” (oppure F3).

L’editor degli sprites mette a disposizione anche degli strumenti con cui è possibile modificare il disegno in maniera sostanziale senza dover riposizionare a mano tutti i pixel. Premendo il tasto “S” infatti sarà possibile, tramite il movimento del joystick, spostare il disegno fino a fargli raggiungere la posizione desiderata. I pixel che dovessero sparire da un bordo ricompariranno da quello opposto, quindi non correremo mai il rischio di perdere pixel del nostro disegno originale. Questa funzione è utile qualora volessimo centrare un disegno, o anche per creare delle animazioni.

La pressione del tasto “M” invece ci dà la possibilità di specchiare il disegno sia verso l’alto o il basso, sia verso destra o sinistra. Basta muovere il joystick nella direzione voluta. Va da sé che questa funzione è utile soprattutto in giochi come “Outlaws” in cui i personaggi si voltano in tutte le direzioni. E’ opportuno però utilizzarla con criterio: se ad esempio lo stile grafico prevede la presenza di luci e ombre, è bene applicarle solo dopo aver specchiato il personaggio in tutte le direzioni volute, per evitare di specchiare anch’esse e ottenere un effetto molto poco professionale…

Un’altra funzione utilissima è quella della copia, attivabile su pressione del tasto “C”. Fatto ciò, muovendo il joystick in alto o in basso possiamo portarci sul fotogramma da copiare e premere “fuoco” per confermare. Successivamente ci porteremo, sempre muovendo il joystick lungo l’asse verticale, sul fotogramma di destinazione. Alla pressione del tasto “fuoco” vi verrà incollato in sovrascrittura il fotogramma voluto. Questa opzione è molto comoda per realizzare animazioni fluide in cui ogni fotogramma differisce di pochi pixel dal precedente.

sprites_5

sprites_6

Infine, premendo il tasto “E” potremo cancellare, previa opportuna conferma, il fotogramma su cui eravamo posizionati. Questo verrà automaticamente colorato in maniera uniforme col colore di sfondo e apparirà dunque “vuoto”.

Per concludere, riepiloghiamo brevemente i comandi:

F1 – Select Sprite
F3 – Edit Sprite
F5 – Edit Colour
F7 – Select Colour
S – Slide Sprite
M – Mirror Sprite
C – Copy Sprite
E – Erase Sprite

EDIT OBJECTS

Gli “oggetti” sono i protagonisti – o meglio, gli “attori” – del gioco, e in questo editor possiamo definirne le caratteristiche principali.

obj_01

Partiamo dal “protagonista”, anzi dai protagonisti: il SEUCK infatti prevede anche l’opzione per due giocatori, che affronteranno l’azione contemporaneamente (il secondo giocatore può entrare in gioco in qualsiasi momento, come vedremo in un prossimo capitolo). In questo editor potremo definirne soltanto le “sembianze”, oltre al tipo e alla velocità dell’animazione: gli altri parametri sono di pertinenza dell’editor chiamato “players limitations”, che esamineremo più avanti. Per cominciare, premendo F1 dobbiamo posizionarci sulla voce “Player 1 ship”; con F7, poi, possiamo scorrere gli sprites che abbiamo precedentemente disegnato fino ad individuare (nel riquadro in alto a destra) il fotogramma iniziale dell’animazione del nostro personaggio; premendo il tasto del joystick lo selezioneremo e potremo posizionarlo nel primo spazio vuoto (gli spazi sono diciotto, suddivisi in tre “strisce” da sei fotogrammi ciascuna). Il procedimento va ripetuto per tutti i fotogrammi di cui l’animazione è composta, avendo cura poi di impostare il numero di fotogrammi utilizzati premendo la lettera “T” e scorrendo i valori (indicati a fianco alla scritta “Sequence”) fino a quello desiderato. Si può anche modificare la velocità dell’animazione, premendo “S” e selezionando il valore desiderato. Avrete notato che, superato il numero massimo di fotogrammi (ovvero 18), l’indicatore “Sequence xx” può assumere i valori di “Directional” e “Directional Hold”: queste due modalità ci permettono di assegnare fotogrammi diversi per ogni direzione di movimento del personaggio, come nel gioco “Outlaws” allegato al SEUCK; in particolare, in Outlaws viene utilizzata la modalità “Directional Hold”: ciò significa che durante il gioco il personaggio, a joystick fermo, resterà posizionato nell’ultima direzione presa (e sparerà, di conseguenza, in quella direzione). La modalità “Directional” invece prevede che, a joystick fermo, il personaggio ritorni in posizione “centrale” (il colpo verrà in questo caso sparato verso l’alto). In queste due particolari modalità le “strisce” non saranno più tre di sei fotogrammi ciascuna, ma ben nove, una per ogni direzione di movimento (compresa la posizione “fissa”): per questo motivo ogni posizione del personaggio potrà essere animata utilizzando un massimo di due fotogrammi. Premendo F3 in modalità “Directional” o “Directional Hold” e muovendo il joystick nella direzione desiderata potremo verificare che il personaggio assuma le relative posizioni. Passiamo ora a definire i fotogrammi relativi ai “proiettili” che il giocatore sparerà durante il gioco, con la stessa modalità appena vista; in caso di sparo direzionato (“Directional”) possiamo fare in modo che il proiettile sia costituito dagli stessi fotogrammi per ogni posizione del personaggio (ad esempio, un proiettile di forma sferica) oppure utilizzare la possibilità di assegnare un aspetto diverso a ciascuna delle otto direzioni (più quella fissa), con la modalità “Directional” (ad esempio, una lancia sarà costituita da una lineetta bianca orizzontale quando il giocatore sparerà a sinistra o a destra, e da una lineetta verticale quando sparerà in alto e in basso).

obj_02

Una volta definita anche la sequenza di “morte” del giocatore (che verrà visualizzata quando il personaggio principale perde una vita) possiamo passare a definire le caratteristiche del “Player 2”, e qui potrebbe tornarci utile il comando “copia” (lettera “C”): premiamo fuoco per selezionare l’oggetto da copiare (nel caso specifico, il personaggio del primo giocatore), posizioniamoci sull’oggetto su cui la copia dev’essere effettuata (il personaggio del secondo giocatore) e premiamo ancora fuoco: il modo più facile per differenziare i due giocatori consiste nel modificarne soltanto il colore (con il tasto “F5” si può accedere alla palette e selezionare uno dei 16 colori disponibili), come avviene in “Slap’n Tickle”.

Per quanto riguarda i nemici (possiamo definirne fino ad un numero di trentasei), il discorso è un po’ più articolato. Ferme restando le spiegazioni riguardanti la definizione dell’animazione, abbiamo a disposizione un altro menù, attivabile premendo il tasto “E”: qui possiamo impostare i parametri che daranno al nostro “nemico” la sua personalità, ovvero la sua velocità, la sua potenza di fuoco ecc. Per modificare i valori occorre semplicemente posizionarsi con il joystick sul parametro desiderato e muovere la leva verso l’alto o verso il basso mentre si tiene premuto il pulsante.

obj_03

Il primo parametro modificabile è quello relativo alla velocità: possiamo assegnare al nostro oggetto una velocità da uno a tre (ma possiamo anche farlo rimanere fermo, come vedremo in seguito). Possiamo anche stabilire il punteggio che verrà attribuito al giocatore una volta che l’avrà “ucciso”, e che va da 0 a 2.500; “Hits to kill” rappresenta l’”energia” dell’oggetto, ovvero il numero di colpi necessari al giocatore per eliminarlo (il numero massimo è 15).
Si passa poi a definire la “potenza di fuoco”. Innanzi tutto è necessario stabilire la direzione di sparo: oltre alle canoniche otto direzioni possiamo selezionare la modalità a “croce” (in questo caso l’oggetto sparerà quattro colpi contemporaneamente, nelle quattro direzioni cardinali) o ad “X” (simile alla precedente, ma i colpi verranno sparati nelle quattro diagonali); oppure possiamo scegliere la modalità “random” (il nemico sparerà ogni volta in una direzione a caso) o “directional” (il nemico sparerà nella direzione verso cui è rivolto). Ultima opzione possibile: il nemico sarà disarmato (in questo caso dovremo selezionare la casella “vuota”). Possiamo anche “forzare” i limiti del SEUCK, decidendo ad esempio di far sparare il nemico soltanto in alto ed in basso contemporaneamente: in questo caso possiamo utilizzare come “proiettile” un oggetto ad animazione direzionale in cui lasceremo vuote le caselle relative ai movimenti orizzontali (il collegamento di un tipo di “proiettile” ad un oggetto “nemico” verrà descritto più avanti) ed impostare lo sparo a croce. “Fire rate” è la frequenza di sparo, che può andare da “1” (velocissimo) a “99” (più lento). Possiamo impostare a piacimento questo parametro, facendo però attenzione che durante l’azione di gioco non ci siano troppi oggetti (che siano nemici, giocatori o proiettili) sullo schermo contemporaneamente: il chip grafico del Commodore 64, infatti, dispone di soli otto “puntatori” per gli “sprite” (nome “tecnico” per definire gli oggetti in movimento: in teoria sarebbe possibile visualizzarne – e di conseguenza gestirne – soltanto otto alla volta) e, anche se il SEUCK possiede una routine di “multiplexing” (capace di “moltiplicare” il numero di sprite presenti sullo schermo), sarà sempre impossibile visualizzare più di otto oggetti contemporaneamente sulla stessa linea orizzontale (questa “linea” immaginaria è alta circa quanto due sprites): la presenza di un numero maggiore di essi si tradurrà in un fastidioso “sfarfallio” che farà comparire e scomparire alternativamente i vari oggetti e manderà in tilt il rilevamento delle collisioni, oltre a rallentare considerevolmente lo scorrere del gioco…

Possiamo sincronizzare lo sparo all’animazione del nemico (facendo in modo, ad esempio, che il colpo parta nel momento in cui questo estrae la sua arma), semplicemente dando al “fire rate” un valore pari al prodotto tra il numero di fotogrammi di animazione del nemico moltiplicati per la velocità della stessa, e tenendo presente che il proiettile verrà “sparato” all’inizio dell’animazione. L’animazione del pistolero di “Outlaws” è uno degli esempi migliori dell’utilizzo di questo tecnica.
Infine, possiamo stabilire la velocità dei proiettili, assegnandole un valore da zero (ovvero “proiettile fermo”) ad un massimo di tre. La velocità “zero” è molto utile se vogliamo fare in modo che, ad esempio, il nemico depositi delle mine sul terreno al suo passaggio; dobbiamo però evitare che ad un certo punto si fermi, perché in quel caso le “mine” continueranno ad essere generate una sull’altra, superando quindi il limite degli otto sprite per riga…

obj_04

Una volta definiti questi importanti parametri, possiamo “collegare” all’oggetto la relativa esplosione (selezionabile tra le otto che il SEUCK ci mette a disposizione) ed il relativo “proiettile” (anche in questo caso abbiamo otto tipi di “enemy bullets” tra cui scegliere) indicandone il relativo numero, e potremo anche indicare l’effetto sonoro più appropriato (ma di questo parleremo in uno dei capitoli successivi). Esplosioni e proiettili possono essere definiti secondo le modalità già viste per il giocatore.

Ultimo aspetto, ma non meno importante, è la definizione delle collisioni, ovvero: cosa succede quando il giocatore, o il suo proiettile, incappano nel nemico? Per quanto riguarda il primo caso (giocatore contro nemico) possiamo stabilire se a morire sarà il giocatore o il nemico, entrambi o nessuno dei due. Stessa cosa per quanto riguarda i proiettili (mi sembra superfluo specificarlo, ma il proiettile, anziché “morire” – o esplodere – si limiterà a scomparire dallo schermo, altrimenti proseguirà nella sua corsa). La definizione delle collisioni apre possibilità interessanti: ad esempio, se vogliamo che il nostro oggetto, anziché essere un nemico, sia un “bonus” da raccogliere, imposteremo le collisioni in modo che, in caso di contatto con il giocatore, sia soltanto il nemico a “morire”. Oppure, se vogliamo che il nostro “nemico” sia un semplice elemento dello sfondo, possiamo azzerare tutte le collisioni.

Ecco un utile riepilogo dei comandi:

F1 – Select object
F3 – Test object
F5 – Edit colour
F7 – Select sprite and place
S – Edit anim speed
T – Edit anim type
E – Edit enemy bits
C – Copy objects

BACKGROUND EDITOR

Grazie a questo potente e versatile strumento abbiamo la possibilità di disegnare l’ambiente in cui si svolge il nostro gioco.

background

L’editor si sviluppa su tre diverse schermate. Nella prima abbiamo le seguenti opzioni:

F1 – Select Char
F3 – Edit char
F5 – Edit colour
F7 – Select Colour
C – Copy block

bg_01

Il “pasticcio” che si vede nella metà inferiore dello schermo è l’insieme (ovvero il set) dei caratteri che il gioco utilizza, composto da 255 elementi; questi caratteri costituiscono i “mattoni” con cui andremo a costruire i “blocchi” di fondale con cui comporre la mappa di gioco. Il “blocco” è un insieme di venticinque caratteri (disposti in cinque righe da cinque elementi ciascuna), raggruppati per poter essere disposti più agevolmente sulla mappa di gioco.
Premendo F1 si accede direttamente all’insieme dei caratteri; puntando il cursore su un carattere e premendo il tasto del joystick lo si selezionerà, e verrà visualizzato in grande nella finestra in alto a sinistra sullo schermo.
La grafica del fondale nei giochi in SEUCK viene visualizzata nella modalità multicolore: abbiamo dunque la possibilità di impostare tre colori “fissi”, che saranno comuni a tutti i caratteri che stiamo disegnando; il “colour 1” è in realtà il colore dello schermo (ovvero il colore dello spazio vuoto); il “colour 2” ed il “colour 3” sono i due colori comuni, mentre il “block colour” è il colore del blocco che stiamo disegnando e può essere scelto soltanto tra i primi otto della tavolozza: questo avviene perché nel modo multicolore si possono in realtà visualizzare contemporaneamente sia carattere multicolori che in alta risoluzione; il bit 3 del registro del colore (55296 in decimale, D800 in esadecimale) serve a controllare il tipo di carattere: quindi con il bit 3 spento, verrà visualizzato un carattere in alta risoluzione, mentre con il bit 3 acceso verrà visualizzato un carattere multicolore. Il colore è dato dal valore dei tre bit bassi (valore che può andare da 0 a 7 – rendendo quindi disponibili soltanto i primi otto colori). Piccola parentesi: il SEUCK non consente agli utilizzatori di inserire caratteri in alta definizione nei propri giochi; soltanto in Slap’n Ticke sono presenti alcuni caratteri disegnati in questa modalità grafica. Per scegliere il colore da modificare possiamo spostare il cursore a destra a partire dalla finestrella in cui viene visualizzato il singolo carattere, oppure premere F7; con F5 possiamo quindi selezionare il colore da assegnare.
Nel modo multicolore i pixel hanno dimensioni doppie rispetto a quelli in alta risoluzione: questo perché il colore di ogni pixel è dato da due bit: se sono entrambi spenti, il pixel assumerà il colore dello schermo (“colour 1”); se è acceso solo il secondo, il pixel assumerà il “colour 2”; se è acceso solo il primo, il pixel sarà del “colour 3”; se sono accesi entrambi, il pixel sarà del “colore carattere”.
Possiamo disegnare i caratteri uno per volta, nella finestrella in alto a sinistra e poi posizionarli nei vari blocchi, oppure fare il procedimento inverso, ovvero comporre un blocco con dei caratteri vuoti (“selezionandoli” con il joystick e posizionandoli nel riquadro in basso a destra premendo la “E”) e disegnarlo nell’apposito editor “Paint block” (a cui si può accedere premendo la lettera “P”).

bg_04

Sarà possibile, da quest’ultima schermata, utilizzare i quattro colori precedentemente selezionati, e visualizzare il risultato nelle dimensioni “reali” nel riquadro in basso a destra. Succede spesso che, disegnando il blocco in questa maniera, alcuni dei caratteri utilizzati vengano fuori identici ad altri: è opportuno fare questa verifica nell’editor dei caratteri, ed in caso di duplicazioni è consigliabile eliminare i doppioni: 255 caratteri possono sembrare tanti, ma se il fondale è molto complesso si rischia di esaurirli prima o poi.
Nell’editor dei caratteri è possibile anche copiare un carattere al posto di un altro, premendo la lettera “C”: occorre quindi selezionare il carattere da copiare posizionandovi il cursore e premendo il tasto del joystick, per poi “incollare” il carattere nella posizione desiderata con la stessa modalità. Nell’editor viene visualizzato anche il numero attribuito ad ogni carattere: come vedremo più avanti, infatti, nell’editor delle “players limitations” abbiamo la possibilità di scegliere il carattere a partire dal quale il personaggio si fermerà o perderà una vita (questo carattere, e quelli successivi, potremmo chiamarli “solidi” per comodità); è opportuno quindi avere bene in mente quali saranno gli “ostacoli” da inserire nella mappa, in modo da non dover perdere tempo a ricopiare e ricollocare caratteri da una posizione all’altra. Questa caratteristica può essere utile per conferire maggiore “profondità” al fondale: osservando il gioco allegato “Outlaws”, infatti, possiamo notare come il personaggio principale può avvicinarsi ai cartelli calpestandone l’ombra; i caratteri che la costituiscono, infatti, sono “liberi”, mentre quelli che compongono il cartello sono “solidi” (l’effetto può essere reso in maniera più efficace rendendo “libero” anche il fondo del cartello). Utilizzando in maniera opportuna i caratteri “solidi” è possibile anche creare giochi di “scale” in stile “platform”, come “Cleo the Dog” (di cui abbiamo parlato nell’introduzione), in cui il giocatore può passare da un “piano” ad un altro soltanto mediante l’utilizzo di liane.

L’editor del fondale è costituito da un’altra schermata, in cui possiamo visualizzare e selezionare tutti i blocchi che il programma ci mette a disposizione per disegnare il nostro ambiente. A questo menù si può accedere premendo il tasto “S”.

bg_02

Con la lettera “B” è possibile copiare un blocco, posizionandovi il cursore e premendo fuoco, ed “incollarlo” su di un blocco vuoto (con lo stesso procedimento).

Premendo invece la lettera “M” il programma ci mostrerà la “mappa” e potremo scegliere in quale punto posizionare il blocco che abbiamo selezionato.
Bisogna prestare particolare attenzione al fatto che, trattandosi di un gioco “a scorrimento fluido” (ovvero pixel per pixel), la riga superiore dello schermo verrà “tagliata” durante la partita. Il taglio avviene anche nei giochi “a schermo fisso” (quelli in cui lo scorrimento è in modalità “Still”), come “Transputer Man”, quindi è bene non inserirvi elementi “vitali” (come scritte, frecce o simili).

bg_03

Riepilogo comandi:

F1 – Select char
F3 – Edit char
F5 – Edit colour
F7 – Select colour
C – Copy block

P – Paint block

S – Select block
E – Edit block
M – Edit map
B – Copy block

La scelta dei colori è la parte più importante del gioco, perché:
1) i colori fissi (ovvero i primi tre) rimarranno tali per tutta la mappa (e non potremo neanche modificarli, ad esempio, all’inizio di un nuovo livello);
2) ogni blocco può avere un solo colore “variabile” (ovvero il “colore carattere”);
3) i colori variabili disponibili sono soltanto otto!
In “Slap’n Tickle” viene utilizzato, come colore dello schermo (colore 1) il nero, mentre il grigio ed il giallo rappresentano rispettivamente i colori 2 e 3. E’ una scelta ottimale per diversi motivi: il gioco si svolge nello spazio, e i caratteri “vuoti” saranno quindi neri; un colore scuro ed uno molto chiaro sono l’ideale per disegnare riflessi di luce ed ombreggiature. Il problema è che il nero ed il giallo fanno parte degli otto colori disponibili come “variabili”, che così si riducono a sei…

Prima di passare al capitolo successivo, e alla luce di quanto detto in questa sede, vorrei darvi alcuni consigli pratici:
1) Disegnate (o abbozzate) su carta quadrettata la mappa del vostro gioco prima di mettere mano all’editor. Una schermata di gioco è composta da otto blocchi per cinque (ovvero quaranta caratteri per venticinque – senza dimenticare che la riga superiore non viene visualizzata durante la partita), quindi è abbastanza agevole schematizzare i vari livelli su carta utilizzando un quadretto (o quattro quadretti) per ogni blocco. Potete poi disegnare i vari elementi “ripetitivi” del fondale utilizzando un quadretto per ogni carattere: questo semplificherà di molto la “trasposizione” in pixel. Il mio consiglio è di disegnare a video un carattere per volta nell’editor di caratteri, posizionare poi i caratteri all’interno di un blocco e ritoccarli nel “paint”. Se invece dovete trasporre un elemento grafico della dimensione di un intero blocco è più opportuno agire direttamente in “paint” (dopo aver riempito il blocco di caratteri vuoti!), avendo poi cura, come ho già ricordato in precedenza, di controllare nell’editor di caratteri se in questo modo si sono creati dei doppioni.
2) Fate particolare attenzione alla scelta dei colori! Se avete in mente di realizzare un gioco con più livelli, cercate di farvi un’idea dei colori dominanti di ciascun livello, e individuate una soluzione di compromesso, ricordando che il colore variabile può essere selezionato soltanto tra i primi otto. Per ampliare la varietà cromatica del vostro gioco potreste essere tentati di scegliere i colori “fissi” tra gli ultimi otto, ma non sempre è la soluzione migliore… Qui è molto utile il consiglio successivo:
3) Osservate i giochi fatti dagli altri per carpirne i segreti! Cercate di individuare a colpo d’occhio quali sono i colori fissi, e come sono stati sfruttati.
4) Utilizzate gli sprite per arricchire il fondale: l’integrazione può funzionare bene soprattutto nella realizzazione dei “mostri” di fine livello (date le limitazioni relative al numero di sprite visualizzabili contemporaneamente sullo schermo e quelle relative alla scelta dei colori di fondo), ma non ponete limiti alla vostra fantasia!

EFFETTI SONORI

Il commento sonoro ai giochi fatti con il SEUCK è costituito unicamente dagli effetti sonori. Il programma ci mette a disposizione un editor con cui possiamo definire i suoni relativi all’entrata in gioco di ciascuno dei due giocatori, il rumore dei loro proiettili e della loro esplosione, ed il suono che accompagnerà l’ottenimento della vita extra; inoltre, otto suoni diversi per i proiettili dei nemici ed altrettanti per le loro esplosioni (da assegnare poi a piacimento ai vari oggetti nell’apposito editor).

sfx_menu

Al caricamento dell’editor, troveremo in memoria un set di effetti sonori predefiniti; premendo F1 possiamo scegliere, dall’elenco in basso, quale effetto sonoro modificare. Con F3 potremo agire sulle otto levette; per spostare la selezione da una leva all’altra occorre muovere il joystick in orizzontale; per spostare le levette bisogna muoverlo in verticale. Le otto levette, a partire da sinistra, corrispondono ai seguenti parametri:

sfx

1) Forma d’onda: il SID (il chip sonoro del C64) può riprodurre quattro forme d’onda diverse; partendo dal basso verso l’alto abbiamo: onda triangolare – produce un suono dolce e tenue; onda a dente di sega – produce un suono “tagliente” e metallico; onda rettangolare, o ad impulso variabile: il suono è definito dall’ampiezza della parte alta dell’onda, parametro che il SEUCK non permette di modificare; forma d’onda “casuale” o rumore bianco, ideale per simulare il suono del vento o delle onde del mare, ma anche delle esplosioni.
2) Velocità di attacco del suono: se vogliamo che il nostro suono cominci immediatamente al volume massimo, terremo la levetta abbassata al minimo; sollevandola, il tempo che il suono impiegherà a passare dal volume “zero” al volume massimo sarà via via maggiore;
3) Velocità di decadimento: se vogliamo che, dopo aver raggiunto il volume massimo, il suono si spenga velocemente, dobbiamo spostare questa levetta nel punto più basso; sollevandola, il tempo che il suono impiegherà a spegnersi sarà via via maggiore;
4) Altezza del suono: questo parametro rappresenta la frequenza di partenza del suono, ovvero la sua altezza; con il SID è possibile produrre suoni che si estendono per un massimo di otto ottave. Ponendo la levetta nella posizione più bassa avremo un suono così grave da essere inaudibile; sollevandola, avremo toni via via più alti. Questo vale soltanto se i parametri successivi sono impostati a zero (ovvero, le quattro levette successive sono abbassate al minimo) – tra poco vedremo il perché;
5) Velocità di ascesa: questo parametro va impostato in coppia con il successivo, e rappresenta la velocità di incremento della frequenza del suono che stiamo modificando; per fare in modo che il suono “salga” sarà però necessario sollevare la levetta successiva:
6) Durata dell’ascesa: questo parametro indica per quanto tempo il suono continuerà a “salire” prima di passare alla fare successiva (ovvero quella della “caduta”);
7) Velocità di caduta: qui vale lo stesso discorso visto per i due parametri precedenti: questa levetta permette di impostare la velocità di decremento della frequenza (altezza) del suono che stiamo modificando;
8) Durata della caduta: indica per quanto tempo il suono continuerà a “cadere” prima di tornare alla fase “ascesa”.

Il processo di ascesa e caduta è ciclico, e se dovesse mancare uno dei due (ad esempio, se le levette relative alla velocità e alla durata dell’ascesa saranno abbassate entrambe al minimo) il ciclo riguarderà soltanto quello “attivo”: una volta che il suono, in fase di caduta, avrà raggiunto la frequenza minima, ripartirà da quella più alta in assoluto; e viceversa.

Il SID dispone di tre oscillatori, e quindi è capace di suonare soltanto tre suoni contemporaneamente; nel caso in cui tutti e tre i canali audio siano occupati, un eventuale quarto suono prenderà il posto del primo.

E’ bene sottolineare che non sempre ad ogni posizione della levetta corrisponde una variazione del rispettivo parametro: ad esempio, per quanto riguarda l’altezza dei suoni, è possibile produrre suoni anche a frequenza intermedie (ovvero, non necessariamente corrispondenti alle note musicali): in tal caso occorre muovere con delicatezza il joystick dato che ad ogni posizione della levetta corrispondono più frequenze (ovvero, le frequenze disponibili superano il numero delle “posizioni” possibili della levetta); per quanto riguarda invece attacco e decadimento, i valori disponibili sono soltanto sedici (e sono soltanto quattro per quanto riguarda le forme d’onda), pur potendo le rispettive leve assumere molte più posizioni diverse.,

Nei giochi allegati troviamo diversi suggerimenti per un utilizzo creativo degli effetti sonori; in “Slap’n Tickle”, per esempio, il suono di partenza del primo giocatore è identico a quello del secondo tranne che per l’altezza; la differenza è di una quinta aumentata che permette, nel caso in cui i giocatori entrano contemporaneamente in azione, l’esecuzione di una specie di jingle introduttivo.
In “Transputer Man” ci sono tre suoni di proiettili nemici impostati in modo da riprodurre tre diverse note musicali; questi suoni, attribuiti ai proiettili (invisibili) delle “ballerine” che compaiono nelle scene di intermezzo, e riprodotti ad intervalli differenti (20, 40 e 60), creano un arpeggio che si ripete ciclicamente, dando l’impressione che ci sia una musica di sottofondo. Essendo tali scene “a spinta”, le ballerine vengono fatte comparire sullo schermo contemporaneamente: altrimenti, i suoni sarebbero risultati mal coordinati.

Infine, è possibile copiare un effetto sonoro da una posizione all’altra: per farlo, bisogna premere la lettera “C” e selezionare l’effetto da copiare spostando la selezione con il joystick e premendo fuoco. Bisogna poi posizionarsi sull’effetto da sostituire e premere ancora il pulsante del joystick.

Riepiloghiamo qui di seguito i comandi:

F1 – Scegli effetto
F3 – Modifica effetto
C – Copia effetto

PLAYERS’ LIMITATIONS

Grazie a questo editor possiamo definire i “parametri vitali” dei protagonisti del nostro gioco.

pl_01

In alto a destra, nel riquadro, possiamo vedere come apparirà il personaggio; a fianco possiamo vedere anche qual è il suo colore, il tipo di animazione (ed il numero dei relativi fotogrammi) e la sua velocità: sono tutti parametri che abbiamo già definito (o che possiamo modificare) all’interno dell’editor degli oggetti (“objects”), di cui abbiamo parlato in uno dei precedenti capitoli.
I parametri modificabili sono numerosi: innanzitutto dobbiamo decidere se attivare il secondo giocatore, andando ad intervenire sulla voce “Player enabled” (tutti i parametri si modificano, come abbiamo già visto, posizionandovisi con il joystick, premendo fuoco e muovendo la leva in alto o in basso). La scelta è reversibile, ed è anche possibile disattivare entrambi i giocatori (ma in questo caso non riuscireste neanche a far partire il gioco!). E’ possibile anche selezionare il numero di vite a disposizione del giocatore, per valori da uno a sette. Qui è opportuno fare una precisazione: se vogliamo provare il gioco in modalità “cheat” (ovvero con vite infinite) tramite il menù “Test game”, dobbiamo aver impostato un numero di vite non inferiore a due.
Il parametro successivo rappresenta la velocità di movimento del personaggio (e non quella della sua animazione, che abbiamo già definito nell’editor degli oggetti), per un valore da uno a cinque. Qui dobbiamo prestare particolare attenzione al tipo di scorrimento che abbiamo impostato nell’editor di livelli: in caso di scorrimento a “spinta” (push) siamo costretti ad impostare una velocità “2” sia per il personaggio che per lo scorrimento, altrimenti noteremo un fastidioso “tremolìo” ogniqualvolta proveremo a “spingere” il fondale. Inoltre, in ogni caso, è consigliabile impostare la velocità dello scorrimento ad un valore non superiore a quello del protagonista: se impostiamo una velocità di scorrimento ad “1” ed una velocità del giocatore a “2”, il giocatore sembrerà fermo quando si muoverà verso il basso.
“Amount of bullets” rappresenta il numero di proiettili “amici” che è possibile avere sullo schermo contemporaneamente (da uno a tre). La loro velocità è variabile da uno a nove: è sempre meglio fare in modo che la velocità dei proiettili sia superiore a quella del protagonista, ma nulla vieta di fare il contrario, magari per ottenere effetti particolari. Dato che la rilevazione delle collisioni fra sprite è un po’ “larga” conviene evitare di impostare valori troppo alti (ovvero velocità troppo elevate), altrimenti potrebbe capitare che i proiettili trapassino i nemici senza colpirli. Possiamo impostare il fuoco direzionale: in questo caso, se nell’editor degli oggetti abbiamo impostato il tipo di animazione “directional hold” il giocatore continuerà a sparare nell’ultima direzione impostata finché non gliene indicheremo un’altra; in caso di “directional”, una volta che lasceremo il josytick il protagonista tornerà a sparare verso l’alto. “Bullet duration” rappresenta il “raggio” dei proiettili, ovvero il loro tempo di durata, e può assumere un valore da zero a novantanove. Il raggio più corto è rappresentato dal valore uno, ma se vogliamo che i proiettili spariscano soltanto una volta usciti dallo schermo dovremo impostare il valore “00” (infatti impostando una velocità “01” ed un raggio di “99” i proiettili scompariranno dopo aver percorso poco più della metà dello schermo!).
Possiamo anche stabilire con quali caratteri del fondale può avvenire la collisione, e quale sarà l’effetto della stessa, ovvero se il contatto con i caratteri aventi un numero uguale o superiore a quello impostato impedirà semplicemente il movimento al giocatore o se ne causerà la “morte”. E’ possibile individuare il numero corrispondente ad ogni carattere nell’editor del fondale (al cui capitolo si rinvia). Nel caso in cui il gioco preveda dei livelli a “scorrimento” (“scroll”) è bene settare la collisione con gli elementi “solidi” del fondale in modo che il giocatore “muoia”, altrimenti rimarrebbe “incastrato”.
L’ultimo parametro che possiamo modificare riguarda la possibilità, per il giocatore, di guadagnare una vita ad ogni 10.000 punti: purtroppo questa è una soglia fissa, che non può essere modificata, ma non è un grosso problema, dato che, se non vogliamo che il giocatore guadagni vite in quantità possiamo assegnare punteggi ridotti ai vari nemici (tramite l’editor degli oggetti).

pl_02

Passiamo ora a definire il raggio d’azione del nostro eroe: premendo su “edit player area” ci troveremo di fronte ad una schermata monocromatica su cui compaiono quattro crocette, che rappresentano i quattro angoli che delimitano l’area entro cui il giocatore può muoversi. Muovendo il joystick in una delle quadro direzioni cardinali vedremo che gli estremi del segmento corrispondente cominceranno a lampeggiare: per modificarne la posizione dobbiamo tenere premuto fuoco e continuare a tenere il joystick in quella direzione o spostarlo in quella opposta fino al raggiungimento del risultato desiderato. Il lato “alto” rappresenta anche il punto da cui il fondale comincerà a scorrere nei giochi a “spinta” (scorrimento in modalità “push”): è quindi opportuno evitare di spostare l’”asticella” troppo in avanti in questo caso! Una volta impostata l’area di movimento, possiamo tornare alla schermata del relativo giocatore premendo “F1” (per il giocatore uno) o “F3” (per il giocatore due) – oppure la “X” per uscire dall’editor.

pl_03

Edit start position” serve per stabilire in quale punto dello schermo il giocatore verrà generato all’inizio di ogni partita o dopo aver perso una vita. Anche qui bisogna stare attenti, soprattutto se si sta realizzando un gioco a spinta in cui ci sono vicoli ciechi: nel SEUCK c’è infatti una routine che controlla se nel punto in cui il giocatore verrà “rigenerato” c’è del fondale solido, ed in tal caso provvede a rigenerarlo in una posizione “libera”; potrebbe però capitare che, oltre quella posizione, il percorso sia sbarrato, impedendo di fatto al giocatore di proseguire e mettendolo davanti alla necessità di abbandonare la partita.
Gli unici tasti utilizzati in questo editor sono:

F1 – Player one
F3 – Player two

ATTACK WAVES

Tramite questo menù possiamo finalmente “animare” il nostro gioco, inserendo gli oggetti nemici che andranno a contrastare il giocatore.

aw_01

Premendo il tasto “F1” ci viene mostrata la schermata di selezione degli oggetti: possiamo quindi scorrere tutti e 36 i “nemici” che il SEUCK ci mette a disposizione (e che abbiamo precedentemente creato), muovendo il joystick verso l’alto (o verso il basso) e confermare la nostra selezione premendo il tasto “fuoco”. A questo punto ci viene mostrata la mappa del gioco, che possiamo scorrere per “blocchi” (questa modalità di scorrimento viene denominata “rough” e ci mostrerà soltanto il fondale e non gli oggetti che eventualmente vi abbiamo già posizionato) o per “pixel” (e in questo caso, al posto della scritta “rough” in basso a destra sullo schermo comparirà la scritta “fine”).

aw_02

In quest’ultima modalità avremo la possibilità di vedere i nemici già inseriti, con i loro movimenti (mentre dei proiettili sentiremo soltanto l’effetto sonoro). Una volta individuato il punto preciso della mappa in cui vogliamo che il nostro nemico entri in azione possiamo premere fuoco: l’oggetto precedentemente selezionato comparirà sullo schermo e comincerà a lampeggiare, e potremo scegliere la sua posizione di partenza. Premendo ancora il tasto del joystick il nemico verrà finalmente posizionato sulla mappa, e potremo muoverlo a piacimento (premendo fuoco imprimeremo un’interruzione temporanea al movimento): i movimenti del joystick verranno “registrati” dal programma dopo che avremo premuto F7. Ogni movimento occupa della memoria, ed il SEUCK limita automaticamente le evoluzioni troppo complicate e “dispendiose”: se ad un certo punto lo sprite che stiamo muovendo comincerà a lampeggiare vorrà dire che abbiamo esaurito il quantitativo di memoria a disposizione e pertanto non verrà inserito. La memoria libera (che all’inizio è di circa tremila byte) a nostra disposizione viene indicata nella finestrella di accesso al menù. E’ bene far entrare in gioco i nemici a partire dai bordi dello schermo, altrimenti compariranno nel punto e nel momento esatto in cui li abbiamo inseriti. Ovviamente, se inseriamo un nemico senza poi “muoverlo”, scorrerà insieme al fondale; i nemici fissi comportano un minor dispendio di memoria rispetto a quelli in movimento.

aw_03

Se vogliamo creare una “formazione”, o se vogliamo comporre un nemico più grande unendo più sprites fra loro possiamo usare l’opzione “Join Enemies” (tasto F3): basterà selezionare il “tassello” desiderato e scorrere la mappa con le stesse modalità indicate in precedenza finché sullo schermo apparirà l’oggetto a cui vogliamo agganciarlo; premendo fuoco, un puntatore ci permetterà di selezionarlo e, successivamente, di affiancargli con precisione il nostro “tassello”. Bisogna fare in modo, ovviamente, che entrambi gli “oggetti” abbiano la stessa velocità affinché rimangano uniti! E’ indispensabile che il primo “pezzo” inserito sulla mappa sia quello più “esterno”, anche se ciò farà in modo che il nemico (soprattutto se composto da tanti sprite) appaia quasi all’improvviso… Se non adottassimo questa precauzione rischieremmo che il nostro nemico “composto” compaia sullo schermo “mutilato”. Purtroppo non è possibile comporre un nemico le cui parti esplodano contemporaneamente dopo essere state colpite dal giocatore: ogni “tassello” costituirà sempre un oggetto a sé stante.
Il SEUCK non consente di gestire più di otto nemici su schermo per volta, per cui se sulla mappa ne abbiamo inseriti in maniera eccedente verranno visualizzati soltanto i primi otto. Questo limite può essere sfruttato per fare in modo, ad esempio, che un bonus compaia soltanto se il giocatore è riuscito ad uccidere in tempo un nemico, e così via.
Con il tasto F5 possiamo infine procedere alla cancellazione di un nemico che ci siamo accorti di aver inserito al posto sbagliato: basterà scorrere la mappa (dapprima in modalità “rough”, poi in modalità “fine”), individuare la “vittima” e premere fuoco, per poi posizionarvi il puntatore che comparirà a video e premere ancora il pulsante del joystick; a questo punto il programma chiederà conferma dell’eliminazione, mostrandoci la scritta “are you sure”: basterà premere fuoco per confermare, o “X” per uscire (ma possiamo anche premere “F1”, “F3” o “F5”).
E’ solo “testando” il gioco che ci renderemo conto se gli inserimenti sono andati a buon fine: a volte, infatti, sebbene nell’inserire un nemico abbiamo fatto in modo che al termine del suo percorso sia “uscito” dallo schermo, nel gioco vero e proprio potremmo continuare ad essere bersaglio dei suoi proiettili, che provengono dal bordo da cui sarebbe dovuto “scomparire”; oppure potremmo accorgerci che un nemico appare all’improvviso sul terreno di gioco, perché non abbiamo fatto attenzione a farlo “entrare” da uno dei bordi, posizionandolo invece direttamente sulla mappa.

Un riepilogo dei comandi:

F1 – Insert enemy
F3 – Join enemies
F5 – Delete enemy

EDIT LEVELS

Una buona organizzazione del gioco in termini di livelli è spesso e volentieri ciò che determina la quantità e la qualità del divertimento che esso potrà offrire al giocatore.

levels_02

Una volta premuto il tasto L o il tasto “fuoco” dopo aver evidenziato la scritta “Edit Levels”, si aprirà un menù con le seguenti opzioni:
F1 – Edit Level Parameters
F2 – Edit Level Map
Premendo F1 comparirà una tabella.

levels_03

Nella colonna “Level” sono elencati tutti i livelli che comporranno il gioco. Il SEUCK ne mette a disposizione 22. Sembrano tanti, ma non lo sono se consideriamo il fatto che non necessariamente a un livello corrisponde un “quadro”. Pensiamo piuttosto ai livelli come alle sezioni che compongono i “quadri” in cui è organizzato il gioco.

Per ogni livello dovremo impostare i parametri “Type”, “Speed”, “Duration”, End Of Level”.

Il parametro “Type” (“Tipo”) può assumere uno dei seguenti valori, selezionabili tenendo premuto il tasto “Fuoco” in corrispondenza del valore già presente e muovendo il joystick in verticale:

  • Scroll: il livello sarà a scorrimento (“Scrolling”) verticale dall’alto verso il basso;
  • Push: il livello sarà ancora a scorrimento verticale dall’alto verso il basso, ma lo schermo scorrerà soltanto quando il giocatore avrà raggiunto il punto più alto della sua area di movimento (v. Edit Player Limitations – Edit Player Area) e continuerà a spingere (“Push”, appunto) il joystick verso l’alto.
  • Still: il livello sarà caratterizzato da una schermata fissa (“Still”).

Il parametro “Speed” (“Velocità”) è applicabile solo nel caso di livelli a scorrimento (“Scroll” o “Push”) e può assumere due valori distinti: “1” (scorrimento lento) e “2” (scorrimento veloce), selezionabili tenendo premuto “Fuoco” e muovendo il joystick in su o in giù. Occorre fare attenzione, nel caso lo scorrimento sia “a spinta” (“Push”), a non selezionare come valore “1”, e a non selezionare “2” nel caso la velocità del giocatore sia pari a “1”, pena l’assistere a una serie di “tremolii” da parte sua…

Il parametro “Duration” (“Durata”) è invece applicabile esclusivamente ai livelli a schermo fisso (“Still”), e ne indicherà la durata in secondi, quantificabile tenendo premuto “Fuoco” in sua corrispondenza e muovendo il joystick in basso per incrementarla, e in alto per decrementarla. La durata può variare da un minimo di 0 secondi a un massimo di 99. E’ bene attribuirle un valore opportuno per evitare che il giocatore si annoi una volta terminato il livello (ad esempio raccogliendo tutti i bonus, distruggendo tutti i nemici o sconfiggendo il boss finale), o che non ne abbia il tempo!

Nell’ultima colonna, “End Of Level”, potremo decidere cosa accadrà al termine del livello, che si verificherà quando il tempo stabilito nella colonna “Duration” sarà esaurito (nel caso di livelli di tipo “Still”) o quando il fondale (nel caso di livelli a scorrimento – “Scroll” o “Push”) sarà scorso fino al punto selezionato tramite il menù “Edit Level Map”, che esamineremo tra breve. Il SEUCK in questo caso ci offre tre opzioni: “Continue”, “Redraw” e “Loop”, selezionabili come sempre tenendo premuto “Fuoco” e muovendo il joystick in su o in giù. Selezionando “Continue” (“Continua”), al termine del livello inizierà il successivo. Per evitare spiacevoli inconvenienti, è bene che questo cominci (più tardi vedremo come fare) esattamente una schermata dopo la fine del precedente. Tuttavia è anche possibile collegare due parti della mappa più distanti di una schermata, se ad esempio si è inserito nella mappa un pezzo che si vuole saltare senza doverla ridisegnare tutta da capo. La transizione sarà comunque fluida, e il giocatore non si accorgerà di niente! Selezionando invece “Redraw” (“Ridisegna”), lo schermo verrà cancellato e ridisegnato all’istante con l’inizio del livello successivo. La transizione non sarà quindi fluida come nel caso del valore “Continue”, ma improvvisa. Potremo usare “Redraw” per far passare il giocatore da un “quadro” al successivo, soprattutto se questo avrà un’ambientazione totalmente diversa dal precedente, mentre il valore “Continue” è più adatto all’interno di uno stesso “quadro”, ad esempio per far riprendere lo scorrimento dopo un livello di tipo “Still”. E’ bene utilizzare “Redraw” nel caso in cui il livello successivo sia una schermata fissa (può capitare quando lo scorrimento deve fermarsi per permettervi di combattere contro un boss): solo in questo modo infatti i nemici (o, appunto, il boss) previsti nella schermata che costituisce il livello successivo compariranno.

N.B.: E’ possibile utilizzare il comando “Redraw” anche per ottenere una transizione fluida da un livello al successivo (come nel caso di “Continue”) facendo partire quest’ultimo dallo stesso punto in cui termina il precedente. L’effetto collaterale però sarà la ricomparsa di tutti i nemici previsti in quel punto del livello, come ad esempio un eventuale boss di metà quadro!
E’ bene anche tenere a mente che se il livello successivo al “Redraw” è a scorrimento, i nemici presenti sullo schermo spariranno all’atto della transizione. La cosa invece non accade se il livello successivo è a schermo fisso.
L’opzione “Loop” (“Anello”) farà semplicemente ricominciare il gioco dall’inizio. E’ opportuno quindi utilizzarla alla fine dell’ultimo livello.

Premendo F3 in corrispondenza di una riga della tabella potremo accedere al menù “Edit Level Map” (“Modifica la mappa del livello) corrispondente al livello a cui quella riga fa riferimento. Apparirà una schermata con un’icona rappresentante una freccia in basso sormontata dal numero del livello e, in caso di livello a schermo fisso (“Still”) un’ulteriore icona caratterizzata da una freccia verso l’alto sormontante il numero del livello. La prima icona rappresenta il punto in cui il livello ha inizio; la seconda rappresenta il punto in cui esso termina. Nel caso di livelli a scorrimento, composti da più di una schermata, le due icone non si troveranno contemporaneamente sullo schermo. Per visualizzare la prima è necessario spostare il joystick verso il basso. Per visualizzare la seconda bisogna spostarlo verso l’alto.

levels_04

levels_05

Per modificare il limite inferiore (ovvero il punto iniziale) del livello bisogna tenere la leva del joystick verso il basso e successivamente premere il tasto “Fuoco”, e tenerlo premuto finché non si raggiunge il punto desiderato nella mappa del gioco (che è quella che abbiamo costruito nel menu “Edit Background” (vedi)). Stesso discorso nel caso volessimo stabilire il limite superiore (ovvero il punto finale) del livello: dovremo tenere il joystick verso l’alto e premere “Fuoco” per rilasciarlo una volta raggiunto il punto prescelto.
Utilizzando in maniera accorta l’editor dei livelli è possibile allungare la durata del gioco senza consumare troppa memoria e/o ottenere effetti grafici interessanti.
Possiamo ad esempio far sì che una stessa sezione del gioco si ripeta in più occasioni: pensiamo a uno shoot’em up ad ambientazione spaziale come “Gradius”, in cui all’inizio di ogni “quadro” ci si trova nello spazio aperto a dover distruggere orde di navicelle dalla scarsa potenza offensiva, o a un gioco come “Sanxion” con sezioni in cui bisogna passare attraverso delle strettoie: col SEUCK potremmo far ciclare due o tre diverse sezioni di questo tipo a nostro piacimento sia all’interno dello stesso “quadro”, sia in “quadri” successivi, magari cambiandone l’ordine.
Impostando come durata dei livelli fissi (“Still”) valori bassi e utilizzando il comando “Redraw”, è possibile creare delle piccole animazioni che possono rappresentare l’apertura di una porta, l’abbattimento di un ostacolo, e via dicendo. Ovviamente ogni fotogramma occuperà un livello, quindi è bene non esagerare. A volte per realizzare effetti particolari si può anche ricorrere a due soli livelli con l’aggiunta di qualche sprite animato (“oggetto”) posizionato in maniera strategica.
Per finire, è utile ricordare che il livello che lasceremo evidenziato nel menu “Edit Level Parameters” sarà quello da cui partiremo quando andremo a testare il gioco con il “Cheat Mode” (v. Test Game).

Riepiloghiamo brevemente i comandi dell’editor “Edit Levels”:

F1 – Edit Level Parameters
F2 – Edit Level Map

FRONT END

Il “front end” è il cosiddetto “schermo dei titoli”, la schermata introduttiva che appare a caricamento effettuato (ed alla fine di ogni partita); su questa schermata andremo ad inserire il titolo del gioco, accompagnato eventualmente da un piccolo logo o da altre informazioni, come il nome dell’autore (o degli autori), un breve antefatto, ecc.

front_end_01

Lo spazio per inserire queste informazioni è abbastanza limitato: abbiamo infatti a disposizione soltanto tredici righe per quaranta colonne. Possiamo subito cominciare ad inserire il nostro “messaggio” (titolo del gioco, nome dell’autore o qualunque altra cosa riteniamo utile) premendo il tasto F3: comparirà la schermata introduttiva di base (“your game by your name”, ecc.), e muovendo il cursore con il joystick possiamo posizionarci nel punto in cui vogliamo cominciare a scrivere.

front_end_02

Modificare il messaggio diventa così semplicissimo: abbiamo infatti a disposizione numeri e lettere (ed altri caratteri speciali) già impostati dai programmatori del S.E.U.C.K., ma abbiamo anche la possibilità di modificarli a nostro piacimento: premendo F1, infatti, abbiamo accesso ad un vero e proprio “editor” di caratteri; questi sono disposti su due righe da trentadue elementi ciascuna. Nella parte superiore dello schermo osserviamo una griglia (ogni quadretto rappresenta un “pixel”) su cui sono rappresentati, in grande, i caratteri disponibili. Possiamo modificarli posizionando il cursore con il joystick e premendo il tasto “fuoco” per attivare o disattivare i pixel che li compongono. Nella parte bassa dello schermo, in cui i caratteri sono rappresentati nelle loro dimensioni reali, possiamo visualizzare il risultato.

front_end_04

E’ bene non alterare il carattere “vuoto”, a meno che sia necessario: in ogni caso, anche se lo riempissimo completamente, le dodici righe non modificabili dello schermo dei titoli rimarrebbero nere. Tra i caratteri modificabili, oltre alle lettere ed ai numeri piccoli (quelli nella parte in basso a destra), ve ne sono alcuni “speciali”: la “@” (attivabile, nell’editor dello schermo dei titoli a cui si accede con F3, premendo il tasto corrispondente sulla tastiera del C64), il “-” ed i simboli “f1”, “f3”, “f5” ed “f7”. Mentre questi ultimi cinque non possono essere utilizzati nello schermo dei titoli, con i tasti “=”, “;” e “:” è possibile inserirvi dei caratteri non ridefinibili, che sono, rispettivamente, una “C”, una “A” ed un simbolo Commodore, tutti in “reverse”.
I caratteri sono tutti in alta risoluzione: ciò vuol dire che non avremo più i pixel “rettangolari” che caratterizzano lo sfondo e gli sprite del gioco, e che ogni carattere sarà quindi composto da 8×8 pixel quadrati; potremo, però, usare soltanto un colore oltre a quello dello sfondo (che può essere soltanto nero).
Nell’ultima riga in basso dell’editor dei caratteri sono presenti dei numeri più grandi, e sono quelli che rappresentano il punteggio durante il gioco; il simbolo dell’astronave invece rappresenta le vite del giocatore. Anche questi possono essere modificati, ed alcuni di essi possono essere visualizzati sullo schermo dei titoli, premendo i seguenti tasti:

  • la parte destra del “4” si ottiene con il tasto “*”
  • la parte sinistra del “5” si ottiene con il tasto “+”
  • la parte destra del “5” si ottiene con il tasto “,”
  • la parte sinistra del “6” si ottiene con il tasto “-”
  • la parte destra del “6” si ottiene con il tasto “.”
  • la parte sinistra del “7” si ottiene con il tasto “/”.

Infine, premendo F5, si può selezionare il tipo di “effetto” di colore che riempirà i caratteri presenti sullo schermo dei titoli. Gli effetti disponibili sono 23; i primi quindici sono costituiti, rispettivamente, dai quindici colori (ovvero sedici meno il nero) del VIC-II; i successivi sono costituiti da strisce colorate orizzontali ascendenti, e ciascuno di questi effetti contiene diverse combinazioni di colori che però non possono essere modificati.

front_end_03

Nel ridefinire i caratteri alfanumerici è opportuno lasciare almeno una riga ed una colonna vuote per ogni carattere: in questo modo il testo sarà più leggibile. E’ anche possibile ridefinire i caratteri in modo che rappresentino i “tasseli” di un’immagine grafica: rinunceremo, in questo modo, ad avere un messaggio introduttivo, ma potremo costuire un logo o una cornice, ecc. Dato che non abbiamo la possibilità di disegnare i caratteri all’interno di un “blocco” (al contrario di quanto accade nell’editor del fondale, con la funzione “Paint block”), sarebbe opportuno munirsi di carta millimetrata, suddividerla in tante caselle di otto quadretti per otto, tenendo presente che non si possono utilizzare più di trentasette caratteri diversi (ovvero quelli relativi alle ventisei lettere dell’alfabeto inglese, quelli relativi alle 10 cifre e quello che raffigura il simbolo del “copyright”). Nelle immagini in basso, lo schermo dei titoli di “Verde” e quello di “Cnotte D’Knight”.

front_end_05

front_end_06

Nelle due immagini successive, possiamo vedere lo schermo dei titoli del gioco “Il Mago”, come appare nella versione definitiva, e la schermata contenente la rappresentazione dei caratteri utilizzati per la sua realizzazione: si possono notare, in particolare, nella riga superiore, i vari elementi che compongono le lettere del titolo.

front_end_07

front_end_08

Premendo F7 (e non “X”, questa volta) torneremo al menù principale. Ricordiamo infine che, tramite il menù “Storage” è possibile salvare separatamente soltanto il set di caratteri; se vogliamo salvare il front-end, dobbiamo ricorrere al salvataggio di tutti i dati del gioco (“save all data”).

Riepiloghiamo qui di seguito i comandi dell’editor del “front-end”:
F1 – Edit charachter set
F3 – Edit message
F5 – Edit message fx
F7 – Exit

TEST GAME

E’ fondamentale, sia in fase di realizzazione, sia a programmazione conclusa, mettere alla prova il gioco joystick alla mano. E’ questa la funzione del menu “Test Game”, richiamabile con la pressione della lettera “T”.

test_02

Le opzioni sono soltanto due:
F1 – Proper Test;
F3 – Cheat Mode.
Premendo F1 potremo giocare come farebbe un qualunque giocatore normale, ovvero partendo dal primo livello con il numero di vite prefissato. Premendo F3 invece non solo partiremo dal livello evidenziato all’uscita del sottomenù “Edit Level Parameters” del menù “Edit Level”, ma potremo giocare con le vite infinite… a patto che il giocatore disponga di un numero di vite superiore a 1… Altrimenti alla prima collisione nociva sarà ugualmente “game over”…
Il test può servire per verificare una lunga serie di cose di cui di seguito cercheremo di fornire un elenco il più completo possibile:

  • Le collisioni col fondale: potrebbe capitare che lo sprite del giocatore collida con blocchi o caratteri con cui non dovrebbe, o che non collida con quelli con cui dovrebbe; inoltre potrebbe accadere che, nel passaggio a un livello successivo, resti “incastrato” in (o circondato da) blocchi o caratteri con cui le collisioni sono attive; inoltre è possibile che nella mappa siano stati inseriti inavvertitamente percorsi ciechi;
  • La perfetta visibilità del giocatore e dei suoi proiettili in ogni punto percorribile del fondale: se per i nemici avevamo a disposizione l’editor delle “attack waves” (v. ), per capire se lo sprite del giocatore sia perfettamente visibile sul fondale non possiamo fare altro che provare a giocare;
  • Il corretto posizionamento dei nemici: è possibile che alcuni nemici seguano traiettorie diverse da quelle che pensavamo di aver loro attribuito, o che non escano dallo schermo quando fosse stato previsto, o che ne escano quando invece non avrebbero dovuto (questo perché quando impostiamo le traiettorie nell’editor delle “attack waves” lo schermo è fisso anche se il livello è a scorrimento automatico); può anche accadere che alcuni dei nemici che avevamo posizionato non compaiano, magari perché sullo schermo ce ne sono già 8;
  • Il verificarsi di eventuali rallentamenti: come abbiamo già accennato in precedenza (v. capitolo “EDIT OBJECTS”), se il numero di sprites presenti su una riga orizzontale dello schermo è superiore a 8, il gioco subirà dei rallentamenti e gli oggetti sullo schermo inizieranno a lampeggiare in maniera intermittente: problemi di questo tipo a volte si verificano inaspettatamente, magari a causa dei proiettili del giocatore o degli stessi nemici (non visibili nell’editor delle “attack waves”!); “testando” il gioco è possibile individuarli e correggerli, ad esempio riducendo il numero di proiettili sparati dal giocatore o accorciandone la durata, oppure diminuendo la frequenza di sparo dei nemici o il loro numero;
  • La corretta durata dei livelli, soprattutto di quelli “fissi”, e la corretta attribuzione della velocità a quelli a scorrimento (ne abbiamo già parlato nel capitolo sull’editor dei livelli);
  • Il livello di difficoltà: è probabilmente la cosa fondamentale in un gioco; “testandolo” personalmente o facendolo “testare” ad un amico potremo verificare l’eventuale presenza di punti troppo difficili se non addirittura impossibili da superare (dovrebbe essere possibile – almeno per i giocatori più esperti – finire il gioco senza perdere neanche una vita), e potremo renderci conto se il numero di vite da noi impostato permetterebbe al giocatore di arrivare alla fine del gioco senza troppa frustrazione.

Per concludere, ribadiamo l’importanza che riveste il test soprattutto se effettuato anche da giocatori che non hanno partecipato alla realizzazione del gioco. Chi lo ha creato infatti ne conosce già tutti i segreti, e può giocarlo e finirlo senza problemi. Questo potrebbe indurlo a pensare che il livello di difficoltà sia basso per tutti i giocatori, e fargli commettere l’errore di incrementarlo ulteriormente.

Riepiloghiamo infine i comandi presenti nel menù:
F1 – Proper Test;
F3 – Cheat Mode.

STORAGE

L’ultimo menù è dedicato al salvataggio e al caricamento dei dati relativi al nostro gioco.
Premendo la lettera “C” possiamo scegliere se operare su disco o su nastro; la periferica attiva verrà indicata nella parte alta della finestra.

storage

Posizionandoci su “Load” e premendo fuoco avvieremo il caricamento dei dati precedentemente salvati: se vogliamo recuperarli da un disco, sarà il programma a mostrarci un elenco dei file ivi presenti, specificando se si tratta di sprites, background, objects e così via. Nel caricamento da nastro, invece, dovremo aver precedentemente posizionato il nastro su cui abbiamo registrato i dati nel punto esatto di inizio del file da caricare. Una volta avviato il disk drive (o il datassette), il programma ci mostrerà la durata residua del caricamento, in una finestrella in basso a destra.
Il SEUCK ci dà la possibilità di salvare separatamente i seguenti elementi:

  • sprites;
  • background;
  • objects;
  • sfx;
  • attack waves;
  • levels;
  • character set;

ciò permette di realizzare il gioco per “fasi”, ma non è l’approccio ideale: infatti, “players limitations” e “front end” non possono essere salvati a parte, e saremo costretti, quindi, ad impostarli soltanto una volta ultimato il lavoro: mentre questo è fattibile relativamente al “front end” (personalmente, mi capita di non riuscire a decidere il titolo del gioco se non dopo averlo ultimato!), le “players limitations” sono un elemento fondamentale che va tenuto sempre in considerazione durante la progettazione e la realizzazione del gioco. Il salvataggio separato potrebbe però servirci, ad esempio, se vogliamo “esportare” gli sprites (o il fondale, o il set di caratteri) da un gioco ad un altro (magari per realizzarne un seguito), oppure se nella nostra “sessione” ci siamo limitati a lavorare soltanto su di un elemento. Se invece abbiamo lavorato su varie parti del gioco, anche con modifiche minime, è preferibile utilizzare la funzione “Save all data”: il file risultante occuperà più spazio sul supporto (ed il suo salvataggio richiederà molto più tempo), ma conterrà tutti gli elementi del gioco (compresi “front end” e “players limitations”). Questo file, però, potrà essere caricato solo ed esclusivamente dal SEUCK: per salvare il gioco completo e fare in modo che si possa caricare indipendentemente dall’editor bisogna invece utilizzare l’opzione “Save finished game”. E’ importante, prima di procedere alle operazioni di salvataggio, controllare che sul disco (o sul nastro) vi sia spazio sufficiente, dato che il SEUCK non permette di visualizzare quest’informazione.
Il mio consiglio è di conservare sempre i vari file parziali del vostro gioco (che si tratti di “all data” o di elementi separati), senza mai sovrascrivere alcunché, almeno finché il gioco non sarà ultimato; altrimenti, nel caso in cui qualcosa vada storto in fase di scrittura, non dovrete ricominciare da zero. E’ consigliabile utilizzare una cassetta su cui registrare soltanto i giochi completi (anche se è preferibile salvarli sempre in duplice copia), ed una cassetta su cui salvare i file parziali; quest’ultima cassetta può essere poi riutilizzata per ogni nuovo gioco che andremo a realizzare (anche se sarebbe meglio conservarla, magari per fare una versione “2.0” o per apportare alcune modifiche relativamente a problemi che abbiamo riscontrato successivamente).

CONCLUSIONE

Il SEUCK, pur con le sue limitazioni, consente – a chi è a digiuno di programmazione – di realizzare giochi molto interessanti ed originali. Il nostro consiglio è di esaminare i titoli che abbiamo elencato nell’introduzione (e di cercarne altri realizzati successivamente al 2013, anno in cui questa guida è stata scritta) e cercare di comprendere come sono stati realizzati. Anche provare i giochi meno riusciti può essere utile, soprattutto per capire quali sono gli errori da evitare. Quando vi sentirete pronti a mostrare al mondo le vostre realizzazioni, potrete partecipare ad una delle competizioni più longeve, la cosiddetta “SEUCK Compo”, ospitata dal sito “The New Dimension“, di Richard Bayliss, magari usufruendo anche dei “tutorial” presenti sul sito (alcuni dei quali insegnano perfino a modificare il “motore” di gioco, agendo direttamente nella memoria del Commodore 64 tramite linguaggio macchina). Non ci resta che augurarvi buon divertimento!

4 pensieri riguardo “SEUCK – La Guida Definitiva”

  1. Ottima guida in italiano ben strutturata con illustrazioni, questo tutorial è molto utile per chi come me ha iniziato a creare giochi in proprio con il commodore 64 per uso amatoriale, uso il S.e.u.c.k da diverso tempo ma ho sempre cercato aiuti su alcune cose che non riuscivo a capire.

    "Mi piace"

Lascia un commento