La Lingua del Ludo

Talune volte frequento il newsgroup it.comp.giochi.sviluppo e spesso leggo l’annosa domanda: “Che linguaggio si usa per fare videogiochi?”

Un tempo la risposta sarebbe stata semplice: “Il C++, mio buon amico”. Anni ancora prima, la riposta sarebbe stata ancora più sgraziata “Il C, per l’amore diddio”.

Se andiamo ancora nel passato, allora sarebbe stata “L’assembly, you fuckin’ noob”.

E oggi? Finalmente possiamo dire “dipende”. Aaah la libertà! Tanto bella quanto pericolosa.

E da cosa dipende? Dipende da cosa dobbiamo fare. Non parlo della “complessità”, ma della “mansione”.

Dobbiamo fare Tool, l’Engine o il Gioco?

Nei tre casi le nostre competenze richieste saranno diverse. Se facciamo l’Engine, ad esempio, non si può scappare: tutti gli SDK di tutte le console sono in C o C++.

Ma se facciamo il gioco? Beh, in quel caso, immaginiamo di utilizzare “Virtools”: questo strumento si programma con degli script.

Oppure, ancora, Macromedia Director o il sistema “Vicious Engine“: tutti questi sistemi si programmano con degli script.

Oppure supponiamo che l’engine sia stato fatto in modo che tutte le chiamate si possa usare, chessò, in Phyton: così facendo il programmatore del gioco deve conoscere Phyton e non il C++.

Se devo fare i Tools, ho varie scelte: potrei dover conoscere il linguaggio che usa l’engine (il C++, o il binding il Phyton), oppure, se devo fare roba per 3d Studio Max, dovrei conoscere MaxScript.

Ed ecco fatto! Abbiamo un bel po’ di figure professionali che non devono sapere il C++, ma lavorano nei videogiochi.

Se poi aggiungiamo che magari le pagine di menù vengono fatte in Flash, opplà! Abbiamo miliardi di papabili Falshisti che potremmo usare per programmare le nostre pagine.

Porto qualche esempio, in modo da capirci: Valve software ha l’engine in C++, ma i tools in C#. In questo modo ha i tools fatti in un linguaggio che toglie moltissimi problemi di gestione della memoria, è molto produttivo e consente di fare interfacce grafiche in pochissimo tempo.

Battlefield è fatto in larga parte in Phyton, mentre l’AI e tutti gli eventi scriptati di Crysis e Far Cry sono fatti in LUA, un altro linguaggio di scripting molto in voga.

Tutte le avventure grafiche Lucas sono state fatte con lo storico SCUMM, un sistema a script.

Dopo tutto questo discorso, capiamo che, ad oggi, la risposta “Il C++ o Morte!” E’ obsoleta. Obsoletissima!

E l’ottimizzazione storica che fa il C++? Eeeh, ci ricolleghiamo al precedente articolo, ma temo che ci sarà ancora da parlare parecchio su questo argomento.

11 commenti su “La Lingua del Ludo

  1. Non è fatto in phyton: usa python come linguaggio di scripting 🙂
    Sotto c’è comunque tutte l’engine in C++

  2. Bravo Monops, credevo che la situazione nell’industria fosse già più elastica in questo senso. Comunque sia, guardando gli editor di livelli di molti FPS o alcuni programmi specifici per la realizzazione di giochi da parte di chi non è così ferrato in nei linguaggi di programmazione, penso proprio che in futuro vedremo degli strumenti ancora più versatili e user-friendly che renderanno sempre più semplice creare un videogioco.

  3. Aspetta: fare un gioco rimane sempre un problema che va affrontato da programmatori 🙂

    Phyton, LUA, C# e così via sono comunque linguaggi che usano strutture dati, quindi non ci si può improvvisare programmatori di videogiochi da oggi al domani.

  4. Beh ma è normale che sia così: c’è il programmatore che fa la base e c’è chi lavora più ad alto livello utilizzando tool o linguaggi di script che si poggiano sopra quel lavoro.
    Quindi sta tutto a che lavoro si vuole andare a fare.

    Ricordo però che nell’evento XLA in Bicocca di qualche mese fa, il tizio di Milestone ha puntualizzato che se si vuole entrare come programmatori il C++ è d’obbligo.

  5. No, so che ti stai riferendo all’ambito commerciale; io parlavo del semplice fatto di avere dei tool sempre più avanzati per creare un gioco. Piccolo esempio, nei primi anni 90 uscivano in Giappone diversi RPG, alcuni clamorosamente eccellenti, altri dozzinali. Solo i programmatori potevano cimentarsi in questo tipo realizzazioni. Dal 2000 circa in poi, con RPGMaker, praticamente qualunque beota distratto come il sottoscritto può realizzare un RPG del genere facendo un po’ di pratica con variabili e switch.

    Potrebbero esistere in futuro degli editor/sequencer in Flash per permettere a (quasi) chiunque di creare velocemente i propri videogiochi.
    Questo per dire che il lavoro dei programmatori può anche essere la chiave per favorire l’espressione attraverso il medium videoludico.

  6. In genere, quando parlo di videogiochi, parlo sempre dell’ambito commerciale 🙂
    Questo perchè ritengo che molta gente guadagnare soldi dalla sua passione e spero che con i miei scritti possa almeno consentire di capire cosa fare per raggiungere tale obiettivo 🙂

    Il prossimo articolo è sui game designer, stay tuned 🙂

  7. Secondo me i tuoi scritti sono molto accessibili anche ai meno ferrati in materia, stai facendo un ottimo lavoro di divulgazione. Continua così! 😉

  8. Ottimo articolo, aiuta anche a capire quanto l’industria ludica si sia evoluta e quante nuove “mansioni” si siano create all’interno di un team di sviluppo.

    P.S. Non vedo l’ora di leggere l’articolo sul game-design. :sisi:

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.