Ars Ludica | Forum | Archivio | About

La Lingua del Ludo

        Thursday, 13 March 2008, 7:00 - Monopoli

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 a “La Lingua del Ludo”

  1. Joe Slap said, on March 13th, 2008 at 8:45 am #

    Non sapevo che Battlefield fosse fatto in Python! A proposito, conosci queste librerie? http://www.pygame.org/ Ci hanno fatto cose davvero interessanti.

  2. Alex Monops said, on March 13th, 2008 at 9:29 am #

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

  3. Cherno said, on March 13th, 2008 at 10:02 am #

    Sono pienamente d’accordo, l’epoca del purismo è terminata da un bel pò!

  4. Mario Morandi said, on March 13th, 2008 at 12:27 pm #

    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.

  5. Alex Monops said, on March 13th, 2008 at 12:54 pm #

    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.

  6. MIK0 said, on March 13th, 2008 at 5:48 pm #

    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.

  7. Mario Morandi said, on March 13th, 2008 at 7:12 pm #

    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.

  8. Alex Monops said, on March 13th, 2008 at 7:27 pm #

    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 :)

  9. Mario Morandi said, on March 13th, 2008 at 8:27 pm #

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

  10. ZeAvIs said, on March 14th, 2008 at 1:10 am #

    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:

  11. Cherno said, on March 14th, 2008 at 8:54 am #

    Uhhh l’articolo sul game-designer, non vedo l’ora .D

Lascia un commento

XHTML: puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>