I professionisti, parte uno: programmare

L'articolo è tratto dalla rivista K n. 1 (dicembre 1988) pp. 17-19, fonte: OldMags

I PROFESSIONISTI


PARTE UNO


PROGRAMMARE


Che cosa c'è in un gioco? Cosa succede dietro le quinte delle case di software inglesi? Potete entrarci anche voi? Nella prima puntata di una straordinaria serie, Kappa vi parla di coloro che passano le giornate a trafficare con i computer games, e vengono pagati per farlo

Questo mese, tanto per entrare in tema, daremo un'occhiata ai veri eroi del mondo dei videogiochi: i programmatori. Anche se affidano ad altri la grafica, la musica o gli effetti sonori, sono loro in realtà a posare sulle fondamenta del gioco le idee e il codice o programma. E' questo il nucleo centrale che rende divertente il gioco - oppure no, a seconda dei casi - quindi è il loro lavoro che ne determina il successo.

Ai vecchi tempi, un gioco era di solito il lavoro di una sola persona, che ideava il gioco, disegnava gli sprite, componeva la musica e scriveva il codice che li implementava tutti e tre. A volte, la stessa persona poteva anche disegnare la copertina della cassetta, sovraintendere alla duplicazione e vendere il gioco per corrispondenza.

Oggigiorno, c'è molta più specializzazione. Gli artisti dello sprite creano la grafica per un gioco che non hanno programmato usando utilites che non hanno scritto, mentre i programmatori lavorano su idee di gente che non sa programmare. E' un segno della maturità dell'industria e significa che, anche se non imparerete mai l'assembler, siete sordi o non sapete neanche tenere una matita in mano, potete sempre trovare un posticino nell'industria dei videogiochi.

I COMPITI

Conqueror
Di norma è sempre una persona a codificare e ideare un gioco; tutt'al più l'ideazione viene divisa tra un programmatore e un'altra persona: spesso il grafico del gioco. Il grosso vantaggio di questo metodo di lavoro è che il programmatore può adattare il gioco alle possibilità della macchina. E' pieno di storie di case di software che danno delle specifiche per un gioco superiori alle possibilità materiali del computer su cui dovrà girare.

I giochi disegnati interamente da non-programmatori sono molto rari per diverse ragioni. Innanzitutto, quasi tutti i programmatori hanno le loro idee e vogliono implementarle nei giochi a cui stanno lavorando. In secondo luogo, non è possibile avere un'idea tecnicamente eccellente senza una qualche conoscenza di programmazione: non esiste pensare incredibili effetti grafici come quelli di Zarch o Nebulus se non si sa se sia possibile realizzarli, e per saperlo ci vuole un bel po' di esperienza di programmazione.

LE CONOSCENZE SERVONO

Nigel Brownjohn
Come in tutti i campi, anche in quello dei giochi non conta quanto sapete ma chi conoscete. "Le conoscenze servono" dice il designer/artista grafico di Verminator, Nigel Brownjohn. "Ti consentono più flessibilità. Se non conosci nessuno del ramo sei bloccato".

Avere degli amici può essere utile in molti modi. Per i programmatori i vantaggi sono notevoli: sono quasi tutti autodidatti, ma si può imparare molto sull'arte della programmazione semplicemente parlando con altri. Libri specifici sulla creazione di giochi ce ne sono pochi, quindi (tranne l'andare ad aprire e guardare i giochi di altri) queste conversazioni tecniche sono l'unica alternativa al reinventare la ruota.

E non si tratta solo di scambiarsi idee o trucchi. Spesso le routines - parti cruciali di un programma per eseguire compiti ricorrenti - cambiano di mano tra amici programmatori. Se una cosa del genere si verifica spesso tra un circolo di programmatori ciascuno può risparmiare un bel po' di tempo - e il tempo, per un programmatore-freelance, è denaro.

Verminator
Per gli ideatori di giochi, il vantaggio delle conoscenze è leggermente diverso.

Può essere difficile riuscire a vendere a una software house il proprio talento ideativo se si è da soli: se le contattate come la metà di un team di ideazione/programmazione avete più probabilità di farvi ascoltare.

Come fare per farsi queste conoscenze? Forse il modo migliore è lavorare per un po' in una software house. (E' ovvio che in Italia questo è un po' difficile essendoci una quasi inesistente produzione di giochi. Oltre a provare in quelle software house attive in Italia in questo settore, cercate di fare amicizia con altri programmatori, così da scambiarvi idee e trucchi, se non vere e proprie routine - e magari mettere insieme le forze e non pretendete di fare un gioco tutto da soli).

DIPENDENTE O FREELANCE

Non c'è dubbio: lavorare in una software house è un ottimo modo per imparare il mestiere. Sarà anche pagato poco, ma mentre "rubate" il mestiere guardandovi intorno potrete anche darvi da fare come freelance per arrotondare lo stipendio. Secondo Andrew Hewson, titolare della Hewson, l'esperienza in una casa di software è preziosa per un programmatore: "Si può pensare che sia un lavoro ingrato, fare il master dei nastri e inserire gli schermi di caricamento e roba simile, ma in realtà queste cose ti consentono di farti un'enorme esperienza. E poi vedi altra gente che ha a che fare con quei problemi che un giorno forse dovrai affrontare anche tu e questo può essere di grande aiuto".

Lavorare in una software house vuole dire farsi un'esperienza. Potrete farvi un portfolio di giochi buoni (o almeno realizzati professionalmente) da mostrare a potenziali clienti. In un'industra dove venite giudicati da quello che sapete fare, i lavori e i pagamenti anticipati se li aggiudicano coloro che dimostrano di aver fatto buoni lavori precedenti.

I pagamenti anticipati sono vitali per un freelance: se dovete produrre un gioco su specifiche date e basarvi sul venderli quando sono (più o meno) finiti, siete nei guai per due ragioni. Primo, avrete il problema di trovare i soldi per sopravvivere finché il gioco è finito, e ciò può significare due o tre mesi senza vedere una lira.

Secondo, potreste ritrovarvi con un tipo di gioco non più al passo coi tempi: ora un gioco come Roadblasters o Fire and Forget può essere ben pagato da quelle software house che vogliono un gioco del genere, ma se vi metteste a scriverne uno adesso sarebbe molto datato quando riuscirete a finirlo.

Se fare il freelance dà tutti questi problemi, perché farlo? Vale veramente la pena vivere nell'insicurezza? "Sì, ne vale la pena", sostiene Brownjohn. "Il guadagno è migliore e c'è più libertà, che è molto importante. Se lavori per una software house ti possono capitare compiti terribilmente noiosi e devi farlo, come freelance invece puoi scegliere cosa fare."

ESIGENZE DI HARDWARE

Qualunque talento abbiate come programmatore, non andrete molto lontano se non sarete equipaggiati come si deve. Per cominciare, avrete ovviamente bisogno della macchina su cui girerà il goco, detta macchina target, e di una macchina di sviluppo con cui scrivere il codice.

Volendo potreste scrivere e testare il codice sulla stessa macchina, ma ciò rallenta considerevolmente il lavoro. Con una sola macchina dovete uscire dal programma di sviluppo, far partire il gioco per testarlo, risettare la macchina e ricaricare il programma di sviluppo. State buttando via del tempo.

E' lapalissiano dire che i games micros sono fatti principalmente per offrire buone prestazioni di gioco. Non hanno necessariamente una buona tastiera, un schermo a 80 colonne o un veloce, capace disk drive: le cose, cioè, che richiedete alla macchina di sviluppo. Se poi sono games micros a 8-bit, non sono neanche tanto veloci in fase di assemblaggio.

Il problema in questo caso si chiama assembly - un processo che trasforma un programma ad alto livello in istruzioni leggibili dalla macchina target. Per assemblare un gioco per Spectrum su uno Spectrum, in media ci vuole qualche minuto, su un Atari ST basta qualche secondo. Questo metodo di lavoro con due macchine - chiamato cross-assembly - può velocizzare enormemente le cose.

Se usate un sistema cross-assembly, avrete bisogno di qualche cosa per trasferire il codice assemblato sulla macchina target. Con qualche routine e le macchine giuste è possibile passare il disco del progrmma da un drive all'altro, anche se di solito si usa un cavo RS-232.

Anche qui, l'esperienza come programmatore di una software house può venire utile. Non c'è niente di meglio che lavorare su un sistema per conoscerne pregi e difetti: se non vi piace saprete almeno cosa non state cercando.

BOX 1 - DURO LAVORO

Andrew Hewson, capo della Hewson (una volta Hewson Consultants), considerata la più vecchia software house inglese esistente.

"La cosa che la gente non capisce della programmazione di giochi è che è una cosa dura: è molto più sifficile di quanto sembra.

"La gente scrive qualche riga di codice a casa propria, riesce a far muovere sullo schermo qualche forma e pensa, 'Ehi, ma è facile!' Non considerano affatto la mole di lavoro che ci vuole.

"Quando hai fatto quello che pensi sia il 90% del gioco, sei forse solo a metà strada. La gente lascia perdere le cose che non conosce. 'Effetti sonori? Non ci vorrà più di uno o due giorni... Musica? Non ci vorrà molto neanche per lei... Grafica? Quella sarà facile...' Per gli effetti sonori ci vogliono in realtà una o due settimane, la musica è roba da tre settimane e per quanto riguarda la grafica, ecco quella è un vero problema: devi lasciare lo spazio per la grafica ed è proprio una questione di mettersi d'accordo tra il programmatore e l'artista grafico.

"Una volta che hai tutto fatto per i primi livelli ma sei intenzionato ad averne almeno otto, ecco che saltano fuori alti problemi. Cominci a non avere più memoria così devi compattare tutti i dati, e perdi altro tempo. E anche quando hai fatto tutto, ti ci vogliono circa tre settimane per regolare al punto giusto la difficoltà.

"Per creare un gioco ci vogliono mesi di duro lavoro, ma è anche molto divertente. Se siete interessati consiglio vivamente di intraprendere la carriera di programmatore: non si riesce a vedere oltre i cinque anni in questo settore, ma per i prossimi cinque anni c'è un mucchio di roba da fare."

BOX 2 - 'DA 20 A 40 MILIONI DI LIRE...'

Quanti soldi vale programmare? Le case di software non parlano volentieri di soldi, ma ecco qui alcune indicazioni da coloro che firmano gli assegni:

I programmatori e gli altri softwaristi vengono pagati o con un compenso fisso o a percentuale. Gli autori e i designer di giochi originali ricevono di solito percentuali sulle vendite - comprese delle percentuali minori per le conversioni fatte da altri - mentre coloro che fanno le conversioni e gli altri softwaristi ricevono un compenso fisso.

Le percentuali variano molto a seconda del tipo di gioco e della casa di software, ma il 15% del ricavo netto della casa di software (cioè quello che guadagna dalle vendite, non quello che i compratori pagano) è considerata una buona percentuale. E' anche possibile stabilire una specie di tariffa, massima e minima, per i compensi fissi:

Per un gioco originale per ST o Amiga venduto a prezzo pieno (cioè 40 o 50 mila lire) potete aspettarvi dalle 10 alle 15.000 sterline (dai 23 ai 36 milioni di lire);

Per un gioco economico originale per 8-bit, potrete ottenere poco meno di 2.000 sterline (circa 5 milioni) da una buona casa di software o addirittura qualche centinaio di sterline da una piccola casa di software.

Il mercato per i giochi originali a 8-bit a prezzo pieno è, al momento, molto instabile: alcune case di software ci credono ancora mentre altre stanno perdendo fiducia nelle macchine a 8-bit. Le vendite di questi giochi sono a volte una scommessa: "E' come una roulette russa", ci ha detto una casa di software.

Aggiungete a questo tutti i fattori che possono influenzare il compenso di un programmatore e c'è poco da meravigliarsi se le case di software non si trovano d'accordo sui compensi. Si può comunque dire che, delle 25.000 lire che pagate per un gioco, i creatori del gioco ricevono tra le 2.000 e le 2.500 lire. Credete ancora che la pirateria non faccia del male a nessuno?

BOX 3 - IN PROSPETTIVA

Zarch
Se le cifre indicate vi sembrano enormi, tenete conto che si parla di giochi originali - che sono molto lunghi da programmare - e che i 20/30 milioni possono significare quattro o cinque mesi di lavoro con orari molto lunghi. Ricordate inoltre che la gente che riceve questi soldi lavora in proprio, con tutti gli svantaggi che ciò comporta: se la casa di software non paga, dovranno citarla in tribunale; se la casa di software va in fallimento, potrebbero anche non essere pagati; e se consegnano il gioco in ritardo - anche se non è colpa loro - potrebbero essere costretti a pagare delle penali. David Braben potrebbe diventare milionario grazie a Elite e Virus, ma la maggior parte dei programmatori inglesi non si sono comprati una Porsche quest'anno.

BOX 4 - IL PREZZO DI MERCATO?

Herbert Wright della Logotron e prima ancora della Telecomsoft

"Potete fare un contratto a percentuale e ricevere un anticipo sulle percentuali, od optare per un pagamento in contanti - anche se quest'ultimo di solito vale solo in caso di conversioni o di giochi in cui la casa di software vi dà le specifiche. Normalmente non dovrete restituire l'anticipo, anche se il gioco è un fiasco e la percentuale non lo copre tutto. Se non avete fatto lavori precedenti o se avete la fama di ritardatario è possibile che vi chiedano un deposito restituibile.

"Per un gioco a 16-bit, non diamo quasi mai un anticipo o un pagamento in contanti superiore ai 20 milioni. Non è che non lo facciamo mai, ma quando si arriva a queste cifre suona l'allarme. E poi per questo genere di cifre il gioco deve essere molto bello.

"Se uno si presenta da noi con un gioco, in genere vogliamo vedere il prodotto finito. Ci accontentiamo anche delle specifiche del gioco, insieme ad un demo così da essere sicuri che sia in grado di realizzarlo: ad esempio, se qualcuno avesse ideato un gioco a scorrimento verticale vorremmo vedere le specifiche complete del gioco, insieme ad un demo di alcune buone routine di scorrimento.

"Ci possono anche bastare delle semplici specifiche, se a proporcele fosse qualcuno con una buona esperienza passata. Se fosse uno sconosciuto a proporcele, accetteremmo difficilmente: e se lo facessimo, sarebbe solo a percentuale o al massimo con un anticipo molto [nota: nell'articolo originale il box si interrompe bruscamente così]

Nessun commento:

Posta un commento