di  -  martedì 20 aprile 2010

È passato molto tempo da quando intorno al 1960 all’interno dei laboratori del MIT studenti e professori si dilettavano nella programmazione dei primi videogiochi della storia. Attraversando momenti d’oro e altri meno buoni i videogames sono usciti dagli elitari laboratori universitari per entrare far parte della nostra quotidianità.

Abbiamo console casalinghe, console portatili, cellulari evoluti, potenti schede video e colossi dell’informatica pronti a soddisfare le nostre più disparate necessità ludiche.

Può un sistema operativo che punta ad avere una diffusione significativa considerarsi completo senza il supporto di videogiochi di spessore?

Molti utenti vedono nella scarsa disponibilità di videogiochi un ostacolo fondamentale all’adozione di linux in ambito domestico. In questo articolo cercherò di fare una panoramica di quello che è lo stato attuale del gaming su linux.

Giochi open source

Analizziamo una lista di alcuni famosi giochi a sorgente aperto:

Chi utilizza Linux tutti i giorni non può non aver notato che i migliori giochi open si dividono in 2 categorie: remake di vecchie glorie o sparatutto 3D.

Gli amanti della logica stringente penseranno che gli sviluppatori open possano essere suddivisi equamente in programmatori privi di idee e pazzoidi appassionati di stermini di massa e violenza gratuita.

La realtà secondo me è leggermente diversa. La produzione di un videogioco con contenuti artistici originali e una trama che si discosti dalla distruzione indiscriminata di chi ci passa di fronte è un processo fortemente verticale. Per produrre contenuti di una certa qualità è necessario un team fortemente coeso. Serve inoltre qualcuno che abbia una visione complessiva di quello che dovrà diventare il progetto.

Il modello di sviluppo open semplicemente si adatta male a queste necessità.

Salta anche all’occhio come tutti i giochi tecnicamente migliori siano basati su una qualche declinazione del vecchio motore grafico di quake 3. Quell’ id tech 3 rilasciato sotto licenza gpl dalla id Software nel 2005.

Questo fatto potrebbe essere visto come la prova della mancanza di strumenti open di un certo livello per lo sviluppo di videogiochi open source. In realtà strumenti validi non mancano ma la tendenza è quella di avere una estrema frammentazione.
Esistono motori grafici open di primissimo livello come Ogre 3D o Irrlicht. Non mancano motori fisici altrettanto buoni come Bullet per il 3D o chipmunk per il 2D. Quello che manca è un ambiente omogeneo per lo sviluppo rapido.

Ci sono comunque delle eccezioni a quanto detto. Si stanno facendo strada framework come pygame o panda3d che riescono a fornire allo sviluppatore un ambiente confortevole in grado di impacchettare e nascondere la complessità dietro a API ben studiate da utilizzare con linguaggi dinamici (nel caso specifico python).

Da citare anche il blender game engine che ha raggiunto una certa maturità con lo sviluppo del gioco Yo Frankie! sponsorizzato dalla Blender Foundation.

Giochi commerciali

Il discorso per quanto riguarda i giochi commerciali è più delicato. Il problema in questo caso è più economico che tecnico.

Una qualsiasi software house medio grande potrebbe tranquillamente sostenere le spese per la produzione in casa di strumenti avanzati ad-hoc. Se questo non avviene c’è un solo e semplice motivo: non è economicamente conveniente.

La diffusione di linux sul desktop è semplicemente troppo bassa per garantire entrate sufficienti a coprire gli investimenti necessari alla conversione e al mantenimento di una versione dedicata di un gioco “tripla A”.

Merita però un discorso a parte quello che viene definito il panorama indie dell’indistria videoludica. Gli sviluppatori indipendenti possono trarre vantaggi dallo sviluppo “multipiattaforma” sin dalla nascita.

Possiamo pensare alla piattaforma Windows come una ricca landa delle opportunità… popolata però da lupi e leoni. Dall’altro lato abbiamo il mondo linux che offre un bacino di utenza estremamente limitato ma una concorrenza praticamente nulla.

Uscire con un gioco multi piattaforma può garantire ad un piccolo team di ottenere la giusta inerzia in termini di visibilità proprio grazie agli utenti dei sistemi non mainstream. La cosa è spiegata in un interessante post di Jeffrey Rosen della Wolfire Games sul blog del gioco Overgrowth.

Un altro esempio è dato dal gioco World Of Goo. Rilasciato per tutte le piattaforme possibili ha ricevuto elogi e recensioni in svariati blog e siti legati all’ecosistema linux. Il risultato è stato un numero di download per la versione linux di tutto rispetto.

Altra tecnologia indipendente che fa ben sperare per il futuro è il motore multipiattaforma Unigine. La demo Heaven rilasciata per il pinguino di recente ha dimostrato che si possono raggiungere dei livelli qualitativi pregevoli anche con tecnologie multipiattaforma.

Naturalmente non sono tutte rose e fiori. Mi sembra doveroso per esempio citare il fatto che Jonathan Blow ha dovuto sospendere il porting del piccolo capolavoro Braid su linux dopo essersi scontrato con difficoltà tecniche riguardo alla gestione dell’audio con le librerie SDL e con la gestione del puntatore del mouse sotto X11.

Quelli che ho elencato sono solo piccoli segnali in un ecosistema complesso e grande come quello dei videogiochi ma lasciano comunque qualche spiraglio di speranza per un futuro più giocoso anche per gli utenti linux.

46 Commenti »

I commenti inseriti dai lettori di AppuntiDigitali non sono oggetto di moderazione preventiva, ma solo di eventuale filtro antispam. Qualora si ravvisi un contenuto non consono (offensivo o diffamatorio) si prega di contattare l'amministrazione di Appunti Digitali all'indirizzo info@appuntidigitali.it, specificando quale sia il commento in oggetto.

  • # 1
    elevul
     scrive: 

    La cosa che considero bella di linux è il fatto che l’interfaccia grafica ed il \motore\ sottostante sono separati, quindi un eventuale gioco fatto partire direttamente da linea di comando (o che disabilita il WM) avrebbe prestazioni migliori che non su windows, dove tutto gira in background.
    Per il resto, per quello che mi riguarda, windows, mac o linux sono la stessa cosa.
    Sono, tra l’altro, curioso di vedere i giochi valve portati su MAC che, avendo base unix, potrebbero spingere altre case a produrre giochi per MAC e, di conseguenza, anche per linux, avendo questi due sistemi molte basi comuni.

  • # 2
    DeepEye
     scrive: 

    Attualmente stiamo assistendo ad una migrazione di massa dei migliori titoli verso le console, perche il mercato pc non è cosi profittevole. Non vorrei essere pessimista, ma ho idea che considerando l’esigua percentuale dell’installato linux, alle case non gliene può fregar di meno di mettersi a produrre un porting per quella piattaforma, visto che sono gia in costante diminuzione i porting per windows. E ancora meno sono i titoli prodotti in esclusiva per pc.

  • # 3
    Cesare Di Mauro
     scrive: 

    Spendo qualche parola su un paio di punti che, a mio avviso, meritano di essere trattati.

    Il primo è sulla generale scarsa tendenza dell’utenza Linux (e, in generale, di chi gravita attorno al FOSS) di NON spendere soldi nel software, perché la mentalità che impera è quella di averlo “gratuitamente”. Quindi perché “spendere”?

    Così facendo, però, si porta al collasso una società che vorrebbe sviluppare giochi per Linux, com’è capitato con la nota (in quest’ambiente) software house Loki Games ( http://en.wikipedia.org/wiki/Loki_Software ), che è fallita e ha chiuso i battenti.

    Se il mercato è già irrisorio, e gli utenti non comprano… non si arriva a portare la pagnotta a casa, con tutte le conseguenze che ne derivano. Anche perché un modello diverso dall’incasso di royalty derivanti dalla vendita dei giochi, personalmente non lo vedo, ed è il motivo per cui i giochi continuano a essere venduti, e a cui si AFFIANCANO servizi come il Live di Microsoft, che rappresentano un valore aggiunto (e che genera ALTRO profitto; ma quello principale è legato alle royalty, appunto).

    L’altro punto riguarda le librerie da utilizzare nello sviluppo di un videogioco. Le DirectX già da tempo hanno soppiantato le OpenGL, in quanto sono molto più comode da utilizzare e offrono strumenti migliori ai programmatori. Questo si traduce in una generale maggior produttività e, di conseguenza, a minori costi di sviluppo.

    A maggior ragione se consideriamo l’uniformità delle API DX, che a partire dalla DX 10 offrono un modello unico a chi programma (rendendo la produzione di giochi molto simile a quella delle console), mentre le OGL continuano a essere legate alle famigerate (e, purtroppo, osannate) “estensioni”, spesso proprietarie (e capita, infatti, che le STESSE innovazioni vengono introdotte con estensioni diverse dai produttori di GPU). Il che porta, per le OGL, a sviluppare code-path diversi, con ricadute in termini di costi di sviluppo e testing.

    Senza dimenticare che da anni ormai le OpenGL sono rimaste a inseguire le DirectX in termini di progresso e innovazioni: sono queste ultime a “dettare il passo”.

    Tutto ciò porta le software house a preferire Windows come piattaforma di sviluppo, evitando di imbarcarsi in progetti multipiattaforma che, a fronte di costi molto più elevati, non garantisce comunque entrate adeguate allo sforzo fatto.

    Soltanto dei grossi nomi si possono permettere questo lusso, vuoi anche per una tradizione che si portano dietro (id da sempre ha preferito le OGL).

    Ma non è certamente riciclando l’ormai primitivo engine di Quake 3 che si può pensare di realizzare prodotti tripla A al giorno d’oggi. Questo dovrebbe essere ben chiaro.

    My 2 cents, al solito.

  • # 4
    densou
     scrive: 

    se poi vogliam aggiungere carne al fuoco allora dovremmo pure considerare gli utenti capaci di sistemare gli eventuali problemi tramite aggiornamento delle componenti inerenti ‘il videogiocare’ [x11, mesa, kernel, ecc…]

    preciso: mica tutte le distro permettono dai gestori di pacchetti (via gui) di installare sempre le ultime versioni di TUTTE le cose sopracitate, e, ci metto la mano sul fuoco, pochi utenti si sognerebbero ugualmente di fare qualche click per aggiornare il necessario. (Chissà perché c’è questa tendenza a rovinare win in 2 minuti ma con Linux “l’uomo comune” è più titubante a toccare qualsiasi cosa ritenga ‘dubbia’, boh).

    Non serve aggiungere alto, chi vuole capire avrà capito ;)

  • # 5
    goldorak
     scrive: 

    Ci sono state esperienze in passato per portare giochi retail su linux. Io stesso ne possiedo alcuni tra cui Alpha Centauri, un altro gioco di Sid Meier e poi Railroad Tycoon il 2 o il 3 ora mi sfugge. Poi a un certo punto questo tipo di iniziativa e’ scomparsa del tutto. E non penso per questioni legati alla pirateria quanto piuttosto per una generale apatia del pubblico linuxiano.
    Detto questo, oggi la situazione e’ un tantino diversa. Ci sono alcuni strumenti che sebbene non perfetti consentono in buona parte di far funzionare (non le ultime novita’) giochi di qualche anno fa senza grandi problemi. O tramite wine o usando virtualbox (ma in questo caso ti devi trascinare anche la virtual machine di xp).

    A me la cosa che fa piu’ rabbia e che ci sono certe tipologie di giochi che si potrebbero sviluppare direttamente con le opengl e quindi renderli multipiattaforma senza grandi sforzi. Parlo di wargames che francamente non necessitano di DX11 o 10 o anche 9.
    Ma no, ce’ ancora questa idea che e’ windows o niente.
    Devo dire pero’ che forse la situazione sta cambiando ma non perche’ il mercato di linux si e’ ingigantito quanto piuttosto perche’ Microsoft ha del tutto abbandonato la piattaforma pc.
    Di fatto oggi come oggi i giochi pc sono o porting merdosi di versioni console, oppure giochi sviluppati da software house piccole indinpendenti. Sono pochi gli sviluppatori importanti che ancora capiscono come fare un gioco pc decente (non solo a livello di gameplay, ma di interfaccia, de features, di modding etc…). E tra questi la Valve ha gia’ in programma di portare i suoi giochi su piattaforma Apple. Da li il passo e’ breve a linux.

    Per ultimo vorrei spendere una parola per i patiti di simulazioni hardcore. In windows ce’ Orbiter (una specie di Microsoft Space Simulator ma molto piu’ hardcore hehe….) ma gira anche su linux grazie ad un nuovo plugin grafico fatto in opengl. E poi non dimentichiamo FlightGear che negli ultimi anni ha fatto passi da giganti. Si non e’ MS Flight Simulator, ma mentre quest’ultimo e’ ormai morto e sepolto FG e’ vivo e vegeto e funziona su tutte le piattaforme, Win, MAC, Linux, anche FreeBSD.

    Insomma le scelte ci sono. Come si dice sempre, se non fai parte della soluzione fai parte del problema. ^_^

  • # 6
    Don Luca
     scrive: 

    Non dimentichiamoci di Wine e i suoi derivati, Cedega in primis.

    Ormai hanno raggiunto livelli tali da poter permettere di giocare a diversi giochi windows su linux a velocità molto vicina a quella “nativa”.
    Su Mac abbiamo Cider che alla fine è la stessa cosa e funziona molto molto bene, tant’è che molti giochi commerciali ormai sono portati su mac usando le sopracitate librerie (vedi Spore o Warhammer Online).

  • # 7
    Flare
     scrive: 

    Dei pyGames mi è piaciuto molto Endgame: Singularity :D

  • # 8
    D
     scrive: 

    Purtroppo l’unico business che funziona in linux è quello legato alle consulenze, alle assistenze basati principalmente sul fatto che stranamente i software in qualche modo riescono sempre a risultare ostici all’utente comune.
    Il punto è che se è possibile non rendere semplice un programma serio per spingere l’utente a pagare l’assistenza, lo stesso non si può fare con un videogioco dove per definizione dev’essere qualcosa tipo click’n go.
    Già vediamo molta gente passare dal pc alle console perchè non ha voglia di sbattersi con le rogne di windows legate essenzialmente all’aggiornamento dei driver video e le patch dei giochi (che poi si tratta di due installer in genere automatizzati, niente di traumatico), figuriamoci se gli stessi sarebbero disposti a farsi il sangue cattivo con kernel, librerie di vario di genere che a turno si fottono mouse, audio, forum, blog, faq a volte scritte anche in portoghese e non tradotte…
    La Loki purtroppo è fallita a causa dell’eccessiva frammentazione delle distribuzioni esistenti. Fino a quando il mondo sembrava nelle mani di redhat e suse, lo sforzo di sviluppo ed investimento sembrava plausibile poi il sogno è finito…

  • # 9
    floc
     scrive: 

    il problema e’ il bacino d’utenza, tutto qua, il resto ne e’ una conseguenza… ormai i giochi costano come produzioni hollywoodiane non si puo’ pretendere che si sbattano x svilupparli anche x linux tra l’altro in mancanza di ambienti adeguati come avete fatto gia’ notare. questione senza soluzione imho

  • # 10
    ginojap
     scrive: 

    Concordo in pieno con il commento di Cesare Di Mauro. Dalle mie parti (toscana) si dice: “Senza lilleri non si lallera.” (i lilleri sarebbero i soldi).
    E’ vero che l’utente linux ha in testa il concetto che tutto debba essere scaricato gratis. Ma e’ anche vero che nessuno vuole pagare per qualcosa che non da emozioni (parlando di giochi). I giochi per windows sono molto sofisticati e hanno un prezzo, qualcuno dice alto, e forse a ragione, ma tutto sommato accessibile. Andare al cinema con tutta la famiglia una volta costa l’equivalente dell’acquisto di un bel gioco come potrebbe essere battlefield bad company 2. In accordo a quanto dice l’articolo, dubito fortemente che un team di sviluppo open source possa ed ha gli strumenti per realizzare un gioco come quello che ho menzionato nel mio esempio. Probabilmente il meglio che possono fare e’ veramente clonare il vetusto Quake 3. E quanto dovrei pagarlo un gioco del genere? I giochi sono un po’ come i film. Una volta guardati si guardano molto meno volentieri la seconda volta. Nessuno spenderebbe soldi per giocare a “pong” e qualunque videogioco (compreso Battlefield bad company 2) un giorno diventera’ come “pong”. L’open source non avra’ mai le risorse per competere con i giochi windows di conseguenza anche linux non avra’ mai successo come sistema operativo (e per successo intendo gente disposta a pagarlo pur di averlo). Gran parte degli utenti preferisce avere un solo sistema operativo installato sulla macchina con il quale poter fare tutto, anche giocare, invece di confodersi con boot manager e partizioni.
    A mio avviso, l’unico motivo per cui OSX ha un discreto successo e’ solo perche’ molto furbamente la Apple lo fornisce unitamente alla suite di utilita’ personale iLife, dando cosi’ delle ragioni valide e “reali” di utilizzo che fanno chiudere un occhio sulla situazione penosa dei giochi per Mac.

  • # 11
    Rouler
     scrive: 

    Il futuro dei client linux lo vedo molto incerto. La eccessiva frammentazione dei vari dialetti, le difficoltà intrinseche di configurazione, la scarsità di software con gui decenti, il mancato (o scarso) supporto ad hardware recenti ha portato ad una contrazione del parco macchine installato. Da sistemista Debian quale sono, ho visto diminuire (quasi scomparire) la richiesta di client linux, ormai relegati a “resuscitare” vecchie glorie. Di conseguenza vedo del tutto impossibile uno sviluppo del mercato game in una nicchia sempre più nicchia.
    Poi, forse, Mac OSX, darà una spinta al mercato, ma stiamo sempre parlando di un kernel Mach non proprio diffuso nel mondo client *nix.

    Altro discorso per quello che riguarda i server…

  • # 12
    madmax
     scrive: 

    Vi siete dimenticati di Hedgewars !!!
    Clone di Worms fatto strabene e con funzionalità LAN e online con server dedicato :)
    http://www.hedgewars.org

  • # 13
    madmax
     scrive: 

    Vi siete dimenticati di HEDGEWARS !!!
    Clone di Worms fatto strabene e con funzionalità LAN e online con NET dedicata ;)

  • # 14
    ilprigioniero
     scrive: 

    mah.. quando ci sarà UNA SOLA distro di “Linux” come standard su cui tutti svilupperanno allora sì mi prenderò la briga di rimpiazzare Windows.
    Ma se devo impazzire per installare qualcosa o aggiornare, che so, seamonkey su Puppy, non grazie! Fondamentalmente “Linux” non regna nei miei PC che poche decine di minuti per volta. Installo una distro, la uso un po’, cerco di aggiornare qualcosa *che non si trova in repository dedicati* e BUM m’incatzo malamente, non ci riesco manco a murì, leggo attentamente i consigli sui vari forum, provo e riprovo, alla fine desisto e maledico il momento in cui ho deciso di sprecare ancora tanto tempo. Tutto ciò almeno una volta l’anno.
    Di videogiochi su “Linux” se ne potrà parlare seriamente solo e soltanto quando ci sarà una sola “distro” o versione con supporto degno di questo nome, con procedure standard e semplici per installare/disinstallare programmi e driver e accedere ai parametri delle periferiche. Allora sì, butterò alle ortiche Windows e comprerò i giochi che finalmente esisteranno in gran numero anche sul “Linux” finalmente uguale per tutti.
    Quando? Meglio giocare al superenalotto, ho più possibilità d’imbroccare un 6 che di vedere quel momento.

  • # 15
    Jay
     scrive: 

    Io qualche anno fa giocavo a dawn of war su ubuntu (tramite wine) a velocità superiore che su vista! Eccezionale!
    Comunque, come ha già fatto notare qualcuno, penso che il mercato pc sia morto. Pochissime esclusive (programmate malissimo), hardware troppo costoso, e porting indecenti. Quindi, se già si sviluppa poco per windows…figurarsi per linux! Anch’io c’avevo sperato anni fa, ma il mondo va ormai da tutt’altra parte.
    Tuttavia, secondo me, ciò non è un male. Con una console si possono gustare tutti gli aspetti di un moderno videogioco, in particolare quelli artistici, senza dover smanettare su settaggi, risoluzioni, drivers…
    Certo…in certi giochi l’assenza di mouse e tastiera si fa sentire. Ma è un gran giocare.

  • # 16
    Cipo
     scrive: 

    tra un po’ arriva steam su mac, chissa che non si smuova qualcosa…

  • # 17
    Megawati
     scrive: 

    Un discorso da fare, che non so quanto sia importante ma che almeno un pò secondo me sì, è che i DRM sotto Linux non sono praticabili come sotto Windows.

    Primo perché non è possibile infilare rootkit a tradimento nel sistema senza che l’utente lo venga a sapere e senza che ci possa far nulla, e secondo perché di “linux” ne esistono infinite versioni, se andiamo a contare tutte le varie combinazioni di distro, kernel, patch e moduli… quindi sviluppare un securom o uno starforce (per dirne due, ma ce ne sono tanti) sotto linux la vedo molto, ma molto più dura. E comunque sarebbero molto, ma molto più aggirabili.

  • # 18
    D
     scrive: 

    “Primo perché non è possibile infilare rootkit a tradimento nel sistema senza che l’utente lo venga a sapere”

    Ne sei proprio sicuro ? Non mi pare di aver mai visto su linux un programma intelligente capace di informare l’utente in tempo reale di cosa succede (ed i log si possono sempre cancellare). Poi per carità se vogliamo metterla sulla questione dei sorgenti siamo sempre al solito discorso: è normale che si pensi che una persona debba per forza saper programmare (oltretutto bene, niente praticandi) o essere un ottimo sistemista per poter far andare in santa pace perfino un banale videogioco ?
    “Click’n Go” non dice proprio niente ? Lo scopo di un videogioco non dovrebbe essere quello di riempire in allegria 10 minuti di tempo senza far uscire matti dietro chissà quali problemi ?

    “e secondo perché di “linux” ne esistono infinite versioni, se andiamo a contare tutte le varie combinazioni di distro, kernel, patch e moduli… quindi sviluppare un securom o uno starforce (per dirne due, ma ce ne sono tanti) sotto linux la vedo molto, ma molto più dura.”

    Perchè questo discorso dovrebbe valere solo per zozzerie come securom e non per la realizzazione dei giochi in sè ?
    Se il proliferare di tante distribuzioni dovrebbe rendere difficile la realizzazione di programmini dannosi come le protezioni, a maggior ragione rende difficile la creare di mondi dove la complessità si spreca.

    “E comunque sarebbero molto, ma molto più aggirabili.”

    Come già detto prima, solo per chi è programmatore, sistemista, power (molto power) user. Tutti gli altri starebbero a somatizzare.

  • # 19
    giac
     scrive: 

    Prima di mollare linux giocavo a OpenArena e soprattutto a Tremuluous… quello era molto divertente. Entrambi erano open e basati sul solito engine di quake 3 che ormai aveva fatto venire la sbornia.
    Di giochi commerciali avevo Unreal Tournament 2003, che girava nativamente anche su linux, nel cd c’era uno script per installarlo su linux e ci ho giocato un po ma ricordo che dopo solo due anni era un macello cercare di farlo funzionare perche le librerie delle distro erano cambiate e l’eseguibile non trovava quelle che andavano bene, allora dovevo scaricare i sorgenti della versione corretta, copiarla su una cartella e indicarla all’installer… un macello insomma.
    Gli svilupaptori di UT avrebebro dovuto rilasciare ogni tot mesi un client aggiornato per le varie distro, un lavoraccio.
    Su windows 7 lo stesso eseguibile progettato per xp invece gira ancora benissimo, a 8 anni di distanza.
    Forse anche su linux dovrebbero implementare un meccanismo come i subsystem di windows (http://www.appuntidigitali.it/3006/i-subsystem-di-windows-fra-retrocompatibilita-ed-evoluzione/), risolverebbe molti problemi.

  • # 20
    evilripper
     scrive: 

    ottimo articolo, certamente il fatto che su linux non ci siano videogiochi “decenti”(che poi con cedega molti funzionano), spinge gli utenti medio bassi a scegliere win(me compreso :-D ). Certo come hanno già detto basterebbe usare le opengl ma aime’ gli sviluppatori devono fare i fighi con le dx tuttavia un ulteriore blocco è causato dalle console (oltretutto credo che il porting da xbox a pc non sia molto difficoltoso ne sapete qualcosa?).
    Infatti ora i giochi vengono fatti principalmente per console! :-D
    Staremo a vedere che succederà nel futuro, la salvezza del gaming on pc è che ci sia un innovazione pesantissima (come per es. i giochi nei browser :-D ) altrimenti la produzione proprio in generale per pc dei giochi calerà sempre di più!

  • # 21
    Cesare Di Mauro
     scrive: 

    Guarda che i programmatori non usano le DX solo per “fare i fighi”, e le motivazioni le esposte in un commento precedente.

    Quanto al porting da XBox (360 suppongo) a PC, è tutt’altro che facile, in quanto le due architetture sono molto diverse (paradossalmente è molto più vicina la PS3 al PC). Per questo motivo titoli come Fable 2 difficilmente arriveranno su PC (bisognerebbe riscrivere l’engine).

    Console e PC sono due mondi diversi. Inoltre non è affatto vero (non mi riferisco a te) che il mercato dei PC è in declino. Anzi, le notizie che arrivano ogni tanto dimostrano che continua a essere in crescita.

  • # 22
    Pluto
     scrive: 

    Secondo me i programmatori usono le dx per non altra scelta.

    Microsoft ha abustato della sua posizione dominante infilando una libreria che definisce un protocollo proprietario per usare tutte le schede video.

    Dovrebbero rifiragli una belle multa.

  • # 23
    Cesare Di Mauro
     scrive: 

    Non ti seccare, ma stai sparando una cosa che è completamente fuori dal mondo. Mi sa tanto del classico complotto giudomassocomunistliberticida.

    L’ideologia fa male: meglio rimanere pragmatici e, soprattutto, ancorati alla realtà. ;)

  • # 24
    D
     scrive: 

    A volte mi viene da dire “che schifo l’informatica moderna” dal momento che concetti sacri come realismo e logica dovrebbero essere “uber alles” ed invece non passa giorno dove vengono calpestati da ogni forma possibile di fanatismo.
    Gente che vede complotti in ogni dove, gente che compra fidandosi ciecamente di un’etichetta senza farsi nemmeno sfiorare dal dubbio, gente che è convinta di cambiare le basi sulle quali gira il mondo semplicemente sostituendo un SO, una suite d’ufficio o un browser internet… blah… che nausea…

  • # 25
    Andrea R
     scrive: 

    Cesare Di Mauro:
    “Quanto al porting da XBox (360 suppongo) a PC, è tutt’altro che facile, in quanto le due architetture sono molto diverse (paradossalmente è molto più vicina la PS3 al PC”

    Ti sei confuso a scrivere? Perchè è vero il contrario. La PS3 con il Cell ha un’architettura molto particolare che richiede ottimizzazioni specifiche a livello di threading.

  • # 26
    ginojap
     scrive: 

    Infatti se non erro gli unici che usano le librerie OpenGL sono quei pazzi della id che possono permettersi far uscire i giochi dopo anni di sviluppo senza mai garantire una data di uscita. Non a caso spesso dicono “Esce quando e’ pronto”.

    Va anche detto pero’ che queste uscite che fanno loro, andando contro tutte le regole di marketing, non sempre funzionano bene e penalizzano anche prodotti che meriterebbero maggior successo. Enemy Territory Quake Wars, tanto per fare un esempio, e’ un ottimo gioco ma tutto lo sviluppo si e’ fermato alla patch 1.5. Non sono mai uscite nuove mappe e sembra essere un prodotto ormai dimenticato dalla stessa id. Peccato! (forse se avessero usato le DX non sarebbe successo).

  • # 27
    Cesare Di Mauro
     scrive: 

    @Andrea R: nessuna confusione. :-P

    Ribadisco parola per parola. Ovviamente parlo a livello di architettura dell’intero sistema, non del singolo componente (nel tuo caso, hai parlato di Cell). ;)

  • # 28
    Pluto
     scrive: 

    @D
    Non ho intenzione di cambiare il mondo, anzi sarebbe proprio l’ultima cosa che farei. Sono convinto, però, che il modello della crescita perenno non possa funzionare e le cose cambieranno da se in un modo un po’ troppo brusco.

    Ho solo espresso una opinione, tutto qua.

  • # 29
    Emanuele Rampichini (Autore del post)
     scrive: 

    @tutti
    Commento solo adesso per via di impegni universitari. :D

    @elevul

    Sono, tra l’altro, curioso di vedere i giochi valve portati su MAC che, avendo base unix, potrebbero spingere altre case a produrre giochi per MAC e, di conseguenza, anche per linux, avendo questi due sistemi molte basi comuni.

    Sono stati trovati riferimenti ad un possibile client steam per linux ma ancora non è nient’altro che un rumor.
    http://www.phoronix.com/scan.php?page=news_item&px=ODA1Nw

    @Cesare #3
    L’analisi economica dell’articolo è simile alla tua linea. Però mi piacerebbe sapere cosa ne pensi riguardo al discorso degli sviluppatori indipendenti. Sinceramente il post di Jeffrey Rosen della Wolfire Games in cui afferma che “non tutti i 5% valgono lo stesso” mi ha aperto una prospettiva che non avevo considerato.
    Sul discorso directX vs opengl non mi esprimo visto che tecnicamente non conosco nessuna delle due.L’unica cosa che ho letto è che il Khronos group in passato non ha tenuto conto più di tanto del settore ludico in fase di stesura delle specifiche. Pare però che con la nuova versione (4.0) la faccenda stia lentamente migliorando.

    @D

    Già vediamo molta gente passare dal pc alle console perchè non ha voglia di sbattersi con le rogne di windows legate essenzialmente all’aggiornamento dei driver video e le patch dei giochi (che poi si tratta di due installer in genere automatizzati, niente di traumatico), figuriamoci se gli stessi sarebbero disposti a farsi il sangue cattivo con kernel, librerie di vario di genere che a turno si fottono mouse, audio, forum, blog, faq a volte scritte anche in portoghese e non tradotte…

    Beh questo è in parte vero… ma non del tutto. Per esempio, per quanto riguarda la demo di world of goo, ti posso assicurare che l’ho provata su diversi sistemi (kernel vari, librerie varie, distro varie,hardware vario) senza il benchè minimo problema.

    @MadMax

    Vi siete dimenticati di HEDGEWARS !!!

    Mea culpa… comunque ne ho dimenticati molti altri. :P

  • # 30
    Emanuele Rampichini (Autore del post)
     scrive: 

    Ecco un altro indizio del possibile sviluppo di un client steam per linux fresco fresco di feed rss:

    http://www.phoronix.com/scan.php?page=article&item=steam_linux_script&num=1

  • # 31
    Cesare Di Mauro
     scrive: 

    Non credo che un gioco sconosciuto possa cambiare qualcosa. Se avesse portato l’esempio di Doom 3, ad esempio, analizzandone le vendite per piattaforma, sarebbe stato già diverso.

    Per quanto riguarda le OpenGL, all’inizio erano rivolte al mercato professionale, e soltanto dopo che le DirectX (che erano nate esclusivamente per i giochi, invece) hanno cominciato a prendere piede il consorzio s’è interessato anche a questo settore.

    S’è, però, mosso troppo lentamente, tanto che, come dicevo prima, già a partire dalle DirectX 9 c’è stato il sorpasso in termini di corsa alle innovazioni. Finora la situazione è quella e non credo che cambierà ormai. Hanno perso il treno, come si suol dire.

    Anche perché, se parli con gli sviluppatori (e ne abbiamo avuto uno qui, che ha scritto diversi articoli in merito, fra cui uno proprio sul confronto DirectX e OpenGL nello sviluppo di un gioco, che ti consiglio di leggere perché è illuminante), ti diranno in coro che non soltanto le DirectX sono più semplici da utilizzare, ma offrono anche diversi strumenti e, altra cosa importante, se hai un problema contatti Microsoft e con gli ingegneri risolvi (ovviamente parlo di sviluppatori che lavorano per grosse aziende), o magari ti consigliano un workaround e nella successiva release delle librerie correggono il problema.

    Tutto ciò con le OpenGL te lo scordi. Mica puoi chiamare il consorzio se hai un problema: ti arrangi e basta.

  • # 32
    Fray
     scrive: 

    Linux è un ottimo OS (in tutte le sue incarnazioni).
    Peccato che per il mercato Desktop nessuno si vuole mettere in testa che NESSUNA Software house è interessata a vederlo crescere come reale alternativa a Windows.
    Per questo non deve progredire più di tanto, sarebbe un competitor tropo scomodo, anche nel settore videogiochi.
    (i driver proprietari su Linux sono arretratissimi, quasi preistorici) su Windows ci spendono capitali già solo per le DirectX.

    Detto questo, detto tutto.

  • # 33
    Cesare Di Mauro
     scrive: 

    Le software house non sono interessate a perdere tempo per un sistema che:
    – ha una quota di mercato che non arriva nemmeno all’1%
    – ha più di 600 distribuzioni
    – non ha una struttura omogenea (leggi: cartelle e file non si trovano tutti negli stessi posti)
    – non ha una sistema unico di gestione dei pacchetti / repository
    – non ha API stabili (applicazioni)
    – non ha ABI stabili (driver et similia)
    – non ha ambienti di sviluppo di qualità
    – non ha supporto (in caso di problemi)

    Da programmatore (persona che dovrebbe essere prima di tutto pragmatica e realista) tutto ciò rappresenta un enorme freno.

    Il resto sono favole di chi vive di ideali e non ha idea di cosa significa sviluppare un progetto che deve confrontarsi col mercato e le difficoltà di realizzazione, mantenimento e supporto di un prodotto.

  • # 34
    joe4th
     scrive: 

    Che collezione di luoghi comuni…mi sembra di rileggere le stesse cose di dieci anni fa… ;-) La Loki e’ stata pioniera in questo campo e se andiamo a ben vedere i binari e demo dei giochi loki e ID girano tutt’ora su una distribuzione recente (alla faccia delle API e ABI stabili). Anzi girano meglio, perché le macchine sono piu’ veloci e le libGL ancora piu’ stabili. Ricordiamo che le librerie SDL usate tutt’ora, opera di Sam Lantinga, arrivano da lì (quindi non c’era bisogno di contattare gli ingegneri microsoft, gli ingegneri erano loro e il supporto la rete, credo fosse piu’ facile raggiungere direttamente Torvalds che farsi cagare da microsoft).

    Il Mac ha API e ABI stabili (la Apple se ne guarderebbe bene) ma non mi sembra che si strappino i capelli per produrvi titoli…

    I videogiochi di oggi non sono piu’ creati come si faceva su Amiga, opera di qualche team di programmatori solitari che smanettava sulle copperlist per consumare qualche ciclo in meno (ricordate il team 17…). E’ inoltre c’e’ una separazione tra tutti gli ambienti (motori, grafica, musiche, sceneggiatura, etc.), acquistati magari da terze parti, in cui ognuno ha una superspecializzazione. E’ molto piu’ simile a una produzione di un film, e i budget non sono dissimili di decine se non centinaia di milioni di dollari. Con budget di queste entita’ cosa volete che freghi degli ambienti di sviluppo piu’ o meno intuitivi o semplici. Se serve ti fanno il port anche per C64.

    Gli ambienti Playstation sono diversi dai DirectX (perfino quando le DirectX erano le DirectX 5 e non 10) eppure producono e molto.

    Il problema principale è che all’utenza Linux non frega poi molto di giocare… Se gli frega, e se ha un PC X86 (e non Arm, PowerPC o Itanium64), lo fa dal lato Windows nativo se ha la doppia partizione nativa…; non credo sia nemmeno questione di quote di mercato. Anche se avesse una quota dello 0.1%, ma quello 0.1% vuol dire 10milioni di utenti e di questi 10 milioni ti potrebbero garantire 500mila copia senza concorrenza, allora probabilmente si butterebbero a capofitto…
    Inoltre quando la Loki ci ha provato (fine millennio), e’ vero che c’era meno crisi, ma la diffusione di Linux era minore e soprattutto si puo’ dire che non c’era nemmeno una libreria GL accelerata decente (chi ricorda heretic II, senza acc. 3D? non sfigurava affatto) se non qualche estensione per Mesa, come la Utah-GLX. Il resto bisognava affidarsi a librerie GL commerciali come quelle di AcceleratedX. Paradossalmente però l’audio era piu’ stabile della babele attuale di ALSA, OSS, e dei vari sound daemons (esd, pulse)…

    I miei 0.02E.

  • # 35
    Cesare Di Mauro
     scrive: 

    Che su Linux API e ABI non siano stabili non me lo invento certo io, e il fatto che ci siano vecchie applicazioni che funzionano tuttora non dimostra che sia sempre così, logica alla mano.

    Per quanto riguarda gli ambienti di sviluppo, comodità & co. incidono sulla produttività e, quindi, sui tempi di sviluppo, e, di conseguenza, sui tempi di rilascio. E non mi si venga a dire che le software house non hanno scadenze da rispettare, perché vi scateno un’orda di programmatori inferociti che farebbe paura anche al Kracken. :D

    Che poi i giochi di oggi si sviluppano in maniera molto diversa rispetto al passato è cosa ovvia, ma è anche il motivo per cui è difficile pensare di supportare tante piattaforme.
    Quanti titoli per PlayStation 3 sono stati cancellati, oppure portati anche su XBox360 e/o PC? Eppure le console vendono, ma se non vendono abbastanza le software house sono costrette a operare scelte infelici come queste.

  • # 36
    joe4th
     scrive: 

    Vorradire che scriveremo i giochi multipiattaforma in giava…write once run everywhere…

  • # 37
    Cesare Di Mauro
     scrive: 

    Non c’andremo lontano. In futuro i giochi si scriveranno in C#, con qualche altro linguaggio come Python in mezzo per la parte di scripting.

    A questo punto basterebbe avere lo stesso runtime disponibile su tutte le piattaforme, e il gioco è fatto.

  • # 38
    joe4th
     scrive: 

    Per rendere un gioco multipiattaforma basta avere le basi comuni. I giochi su PC e XBOX hanno una base comune, nonostante le CPU siano (ora) diverse. Non si deve considerare solo la fase di assemblaggio finale come un’unico ostacolo insormontabile.

    Gli artisti che fanno i modelli, le scenografie, il campionamento dei movimenti, etc., lo stesso storyboard, avvengono sulla piattaforma che si preferisce. E anche questo fa parte dei costi, non ci sono solo i programmatori che scrivono o assemblano il codice che vanno pagati. Ci possono essere dei programmatori che non sanno disegnare un quadrato, come ci sono modellatori 3d che non sanno la differenza tra un JPG o un TIF o PNG o cosa sia un puntatore.

    I giochi su PC raramente sfruttano l’ultima goccia di ottimizzazione, proprio perche’ l’hardware è cosi variabile che ti puoi trovare magari differenze di prestazioni di un fattore 10 o 20 o anche di piu’. Non è che perché un gioco deve girare in Linux, tutto deve essere fatto e costruito in ambiente Linux ex-novo.

    L’engine della ID è vecchio, bene se ne scriva uno piu’ nuovo o si porti direttamente quello di Windows.

    Qualcuno ha citato YoFrankie. Ebbene Yofrankie gira sul blender game engine, ma ciascuno degli autori sviluppa dove gli pare: Campbell Barton sviluppa principalmente su Linux, Ton su Mac.
    Non solo, ma senza praticamente rifare nulla, YoFrankie puo’ girare anche su un motore diverso da BGE, per esempio CrystalSpace (potete provare a scaricare la versione per Linux, c’e’ un eseguibile autoscompattante con tutte le librerie) : il gioco è lo stesso, ma i punti di vista cambiano, e dà più la sensazione di “arcade”.

  • # 39
    joe4th
     scrive: 

    Tempi di sviluppo. Cesare giustamente ha citato i tempi di sviluppo. Per i titoloni e’ chiaro che sono sacrosanti. Non posso fare uscire FIFA Soccer 2010 a mondiali di calcio finiti, o il gioco di Avatar 2 anni dopo il film. Perderei molta della pubblicità, però d’altro canto esiste anche (o meglio NON ESISTE ANCHE) Duke Nukem Forever… :-)

  • # 40
    Cesare Di Mauro
     scrive: 

    Forse non sono stato chiaro. Cerco di spiegarmi meglio.

    Yo Frankie sarà pure multipiattaforma, ma non credo che il codice sia “unico”: ci saranno sicuramente caterve di

    #ifdef WINDOWS fai questo
    #ifdef LINUX fai quest’altro
    ecc. ecc.

    Ed è tutto codice che va scritto e mantenuto.

    Tutt’altra cosa è avere, invece, un codice unico che gira su un runtime come .NET, lasciando l’onere di sbrogliare le “diversità” della piattaforma al runtime che gira sotto. Lavoro, quest’ultimo, che viene fatto una sola volta e condiviso da qualunque applicazione, passata, presente e futura.

    Poi è chiaro che gli asset per un gioco sono gli stessi e si possono riciclare, ma per il codice questo è molto più difficile, ed è anche il motivo per cui è nato Java, ad esempio.

  • # 41
    Emanuele Rampichini (Autore del post)
     scrive: 

    @Cesare
    In realtà una versione di Yo Frankie gira direttamente utilizzando il blender game engine quindi è possibile svilupparlo veramente su qualsiasi piattaforma a patto di avere blender installato e una scheda video decente.

  • # 42
    Cesare Di Mauro
     scrive: 

    In questo modo si sposta semplicemente il problema di cui parlavo su Blender… ;)

  • # 43
    joe4th
     scrive: 

    Si sposta su blender e quindi sull’engine (in realtà non è nemmeno necessario l’intero blender, ma solo il runtime, che si chiama “blenderplayer”). Sarà chi fa l’engine a mantenerlo multipiattaforma (iera sera si discuteva del port del BGE per iPAD). Quindi chi si vuole concentrare sul gioco non si deve preoccupare dell’engine che usera’ (o acquisterà). Se poi il motore non lo soddisfa, puo’ modificarlo e farsi la sua versione, o collaborare
    (ovviamente esiste un biglietto di “ingresso” per collaborare).
    O pagarne gli sviluppatori attuali se ha una forza economica sufficiente per farlo. Esattamente come fanno tutt’ora in una scala monetaria molto piu’ grande la ECA, Valve, etc.; quindi il problema è supportare con gli strumenti di Linux: se ci sono 600 distribuzioni, è anche vero che sono suddivise per quelle 4 o 5 mainstream e quindi supportarle in quel modo (magari mettendoci una persona per distribuzione: in produzioni milionarie, spendere 10-20mila euro per il QA sui vari Linux non è che sia da strapparsi i capelli dalla disperazione).

    L’errore di quasi tutti gli sviluppatori di software commerciale (o proprietario) per Linux è che, avendo in mano qualcosa che già gira su Windows, tentano di esportarne paro paro il modello (sistema che funzionava negli Unix proprietari, come Solaris e HP/UX e un po’ funziona nelle distribuzioni Linux Enterprise con Oracle): ciò un binario, unico mio, inviolabile, potentissimo, deve funzionare ovunque, guai a chi lo tocca, fulminato all’istante. Alcune hanno chiuso, altre hanno migliorato il QA e continuato a produrre software di qualità (VMWare, mathworks, etc.).

    Il problema però a mio avviso non è tecnico né economico, ma di utenza. Dando per buono il modello suggerito da Cesare (ossia gli introiti provengono principalmente dalla vendita dei titoli, quasi sempre nei primi sei mesi dall’uscita, per quanto io non trascurerei il gaming online dove si paga e anche salato per connettersi) la domanda è: ammesso di portargli i giochi, poi gli utenti Linux li comprerebbero? Perché alla fine c’e’ una spirale dalla quale non si esce: gli utenti dicono che non li comprano perché non ci sono, le aziende non li producono perché pensano che gli utenti non li comprerebbero…

  • # 44
    Cesare Di Mauro
     scrive: 

    Mi sembra che l’esperienza di Loki sia eloquente: la software house che produceva giochi per Linux c’era, ma è fallita a causa delle scarse vendite.

    Per quanto riguarda l’engine multipiattaforma, intanto bisogna scriverlo e tenere conto, appunto, di ogni piattaforma. Quindi lo sforzo è, ovviamente, maggiore di un engine monopiattaforma, ed è il motivo di cui ti lamenti parlando in generale di software multipiattaforma: le software house, semmai si decidono di fare un porting, cercano di realizzarlo col minimo costo, alla “bene e meglio”.

    Molto meglio quello che dicevo prima: un engine unico che gira su un runtime “universale” come potrebbe essere quello di .NET o Java, scaricando su quest’ultimo i costi (ridotti) del suo mantenimento, visto che è condiviso da qualunque applicazione. Tanto la tendenza è quella: codice managed per tutto; non si scappa.

    D’altra parte bisogna tener conto anche del fatto che un engine 3D non si può mica applicare a qualunque tipologia di gioco. Giusto per essere chiari, l’engine di un RPG non è certo simile a quello di un simulatore di volo. Le esigenze, insomma, sono decisamente diverse, ma a volte anche in seno alla stessa tipologia ci sono modi diversi di affrontare gli stessi problemi (sennò sarebbe anche la morte della ricerca).

    Non è un caso, infatti, che ci siano così tanti engine in circolazione, e se dovessimo pensare di realizzarli multipiattaforma, beh, i costi sarebbero sempre maggiori.

  • # 45
    Marco
     scrive: 

    “la mentalità che impera è quella di averlo “gratuitamente””

    Software commerciale per linux ce n’è parecchio nei segmenti di mercato dove conta (server, middleware, ma anche workstation).
    Quando (e se) ci sarà un mercato anche per i videogames arriveranno anche quelli: è solo una questione economica.

    Oltre al codice managed c’è anche chi vede il gaming del futuro su cloud: a quel punto basterà un client minimale, o un plugin per il browser.

  • # 46
    Emanuele Rampichini (Autore del post)
     scrive: 

    Oltre al codice managed c’è anche chi vede il gaming del futuro su cloud: a quel punto basterà un client minimale, o un plugin per il browser.

    Ne volevo parlare nell’articolo ma visto la quantità di cose da dire sull’argomento ho deciso di dedicargli un articolo in futuro.

    Quando (e se) ci sarà un mercato anche per i videogames arriveranno anche quelli: è solo una questione economica.

    Alla fine la storia è sempre quella. Gli unici che possono sfuggire da questa regola come già detto sono gli indipendenti. Sviluppare sin dall’inizio con l’idea di uscire su tutte le piattaforme possibili in quel caso potrebbe essere una buona scelta. Di certo non mi aspetto di vedere un capitolo della serie Call Of Duty sul pinguino a breve.

Scrivi un commento!

Aggiungi il commento, oppure trackback dal tuo sito.

I commenti inseriti dai lettori di AppuntiDigitali non sono oggetto di moderazione preventiva, ma solo di eventuale filtro antispam. Qualora si ravvisi un contenuto non consono (offensivo o diffamatorio) si prega di contattare l'amministrazione di Appunti Digitali all'indirizzo info@appuntidigitali.it, specificando quale sia il commento in oggetto.