PDA

View Full Version : NO FLAME! Solo chiarimenti tra 360 (o ps3) e PC!


Bloodyz
12-03-2012, 09:22
Salve ragazzi, ne esco pazzo.. ogni volta mi devo sentir dire "Ma perchè ti prendi il pc per giocare? Ti basta una 360 che è potentissima!"

Ogni volta, ogni volta che mi si presenta occasione mi tocca discutere (e voglio evitarlo ma continuano a punzecchiarmi) perché il "PC addirittura si vede peggio di una console".

SENZA FLAME e senza antipatie vorrei chiarire e parlare con voi sulla potenzialità di una console, perchè giochi come battlefield 3 gira su 360, fullhd non nativi ecc..

Io in genere rispondo che i giochi per console sono adattati all'hardware della console, che non è la stessa cosa di svilupparlo per PC. Cerchiamo di fare un discorso costruttivo :) Grazie ^^

X360X
12-03-2012, 13:08
I giochi per console non sono mai fullhd, è lo scaler della console che ce li fa girare, ed è naturalmente ben diverso dal fullhd nativo per quanto la 360 possa avere uno scaler che non è male.

Inoltre girano di norma a una trentina di fps e con un minimo di filtri.

Anche le texture sono più scarse ma con qualche rinuncia quà e là puoi fare gran belle cose ancora oggi se sei bravo (dopotutto è un hardware fisso e questo semplifica le cose...ancora più facile se sviluppi per una sola delle console)

Anche prendendo un porting di quelli fatti senza impegno lo stesso gioco su PC sarebbe sempre e comunque migliore anche solo mettendolo in fullhd, perché è così e basta, non per mia opinione.

Ma di norma i miglioramenti sono ben di più (si va appunto dai porting fatti a cavolo, dove la differenza è minore, fino a giochi come GTAIV e Battlefield 3 in cui c'è l'abisso tra la versione console e PC)

Questo è un discorso OGGETTIVO sulla grafica, stoppata su PC proprio dalle console del resto (dopotutto sono il business maggiore). Ma questo permette di giocare con PC non costosi almeno...

Può bastarti una console? Si, perché no.
Graficamente è meglio del PC? No, non può farcela.
Su PC sono più pesanti? Si, ma non solo perché non è un hardware fisso, anche perché sono migliori...poi ci sono casi infelici ma lasciamo stare

Io gioco con PC e console, so quello che dico...

Bloodyz
12-03-2012, 14:09
Ottimo ragionamento oggettivo.

Una cosa che non ho ben capito o che forse io sostengo in modo sbagliato, che forse potrà essere utile ai lettori del thread, è lo sviluppo e il porting.

Si ma da che piattaforma nasce il gioco?
Da quanto ne sò, mi viene più facile pensare, che un gioco sia costruito per PC e adattato a console varie, ma credo che per gli sviluppatori sia più facile creare un gioco dedicato ad un hardware fisso e poi ampliarlo con varie migliorie per PC.

Ad esempio.. un gioco come skyrim mi pare fosse sviluppato per console e successivamente adattato a pc. Effettivamente sembrerebbe da qualche video visto (E RICHIEDO URGENTEMENTE CONFERMA!) che la versione per console presenti texture migliori.. che nella versione PC si vedeva proprio male. Ora, io ho giocato a skyrim per PC e ho visto qualche video su youtube per xbox o ps3 (video di comparazione) ma non mi è sembrata tutta questa mostruosa differenza, addirittura da dire che quella del pc faccia schifo.


Ma a sto punto mi viene in mente: potrebbe mai uscire un gioco per PC che non sia limitato da successivi porting console? L'idea è che si potrebbe spingere di più sul pc, ma siccome devono stare a pari passo con le console.. questo non accade :\

hibone
12-03-2012, 14:44
Una console ha hardware predefinito, e software predefinito, per cui il gioco può essere ottimizzato ad arte per sfruttare al meglio l'hardware. Nel caso del pc invece le piattaforme variano, variano le versioni dei driver, varia il software che gira sulla macchina assieme al gioco, e quindi generalmente non c'è modo di ottimizzare il gioco in modo che si comporti in modo ottimale su qualsiasi piattaforma, a prescindere da processore e scheda grafica.

Questo è quello che generalmente rende meno prestanti i giochi per pc rispetto a quelli per console, a parità di configurazione hardware, il fatto che i pc odierni abbiano un hardware molto più potente delle console permette eventualmente di colmare il divario, con risultati molto diversi in funzione della configurazione del pc.

Per quanto riguarda il porting, la prima differenza tra un gioco per pc e quello per console riguarda l'impostazione del gioco, rispetto al tipo di controller.

A differenza di 15/20 anni fa, quando generalmente era previsto l'uso di un gamepad anche su pc, oggi la maggior parte dei giochi per pc prevede l'uso della tastiera, le console invece continuano ad utilizzare il gamepad, che in termini di controlli è molto più limitato, mi riferisco esclusivamente al numero fisico di "pulsanti" da assegnare ai tasti. Va da se che è proprio l'impostazione del gioco che differisce, come puoi notare se confronti i controlli di un gioco nato esclusivamente per pc, con un gioco nato per console e portato su pc.

Poi ovviamente c'è la differenza nella programmazione, visto che il sistema operativo che gira sulla console, che per quanto lo si voglia chiamare firmware è un sistema operativo, è differente da quello che gira su pc.

Dato che il porting è un'operazione che si fa in un secondo tempo, e spesso viene eseguita anche in base al successo del gioco, è probabile che spesso un gioco non venga impostato nell'ottica di portarlo verso una piattaforma diversa, e questo implica che il codice non è predisposto per lavorare su sistemi operativi differenti.

Questo significa che per eseguire un porting generalmente occorre riscrivere buona parte delle routine che si appoggiano al sistema operativo della macchina, e questo può avere ripercussioni anche sul gioco, un esempio è il caso di HALO. La ragione è data dal fatto che se il porting viene messo in conto, solitamente il gioco viene programmato in modo che sia indipendente dal sistema operativo, utilizzando una serie di routine che facciano da interfaccia tra il gioco vero e proprio e il sistema operativo. Cambiando tale serie di routine è possibile adattare il gioco senza intervenire di fatto sul gioco stesso, e quindi lasciandone inalterato il look & feel.

Se però il porting non viene preventivato, solitamente il gioco viene programmato senza interporre tale cuscino, e quindi come detto, fare il porting, impone di modificare le routine stesse.

Chiaramente la capacità di sfruttare l'hardware in questo secondo caso, dipende notevolmente da quanto è ottimizzato il codice originale, e quindi da quanto stretto è il legame tra la macchina nativa e il codice che è stato scritto per girarci sopra...

È un po un casino :)

Alla fine della fiera quello che conta è il tipo di impostazione con cui preferisci giocare, se mouse e tastiera o gamepad, con quanta frequenza sei disposto a cambiare l'hardware ( che conta relativamente ), e quanto sei disposto a sbatterti per far funzionare un gioco.

Se di questi ultimi due aspetti non ne vuoi assolutamente sentir parlare vai su console, in caso contrario puoi anche prendere un pc, ed eventualmente installarti un emulatore per console :D

Bloodyz
12-03-2012, 15:04
Premetto che ho avuto xbox 360 e wii in passato, ma per me il grande amore è sempre il PC, con il quale non ho mai smesso di giocare dai tempi di Doom. Soggettività a parte, volevo meglio evidenziare la parte della piattaforma che citavi nel post.

Da quanto ho capito, credo tu alludi al framework, se il gioco è stato scritto in un framework adattabile a multipiattaforma viene più facile la conversione senza dover entrare nel codice specifico delle classi e lati grafici. Certo.. se fosse così è più facile.. un pò come il .net insomma.

Comunque ovviamente concordo con te per il fatto che il codice ad hoc per un determinato tipo di configurazione, permette di sfruttare al meglio le potenzialità hardware, ma io penso che tutto sommato, non è una questione di hardware quanto di os/firmware... limitazioni proprio d'ambiente.

Ma quindi chiudendo il discorso porting, sarebbe più corretto dire che il gioco viene sviluppato in un framework trasformabile in diverse piattaforme con leggeri cambiamenti piuttosto che dire "è stato sviluppato per Xbox e poi fatto il porting nel PC".

X360X
12-03-2012, 16:35
Comunque ovviamente concordo con te per il fatto che il codice ad hoc per un determinato tipo di configurazione, permette di sfruttare al meglio le potenzialità hardware, ma io penso che tutto sommato, non è una questione di hardware quanto di os/firmware... limitazioni proprio d'ambiente..

su queste cose più specifiche l'altro utente ne saprà certamente più di me

ma per quanto potrà agevolare un ambiente più chiuso (anche se Windows\DirectX non è propriamente definibile aperto) l'hardware mi sembra fondamentale. Devi fare un gioco che va bene per una marea di configurazioni diverse invece che una soltanto...

Però ripeto, il sistema chiuso fa la differenza ma non bisogna dimenticare la qualità maggiore dei giochi PC (anche fosse un orribile porting con la sola risoluzione in full come modifica già si sentirebbe) e la bravura/impegno di chi sviluppa la versione PC, magari considerata meno perché li fa guadagnare meno...

Bloodyz
12-03-2012, 16:59
su queste cose più specifiche l'altro utente ne saprà certamente più di me

ma per quanto potrà agevolare un ambiente più chiuso (anche se Windows\DirectX non è propriamente definibile aperto) l'hardware mi sembra fondamentale. Devi fare un gioco che va bene per una marea di configurazioni diverse invece che una soltanto...

Però ripeto, il sistema chiuso fa la differenza ma non bisogna dimenticare la qualità maggiore dei giochi PC (anche fosse un orribile porting con la sola risoluzione in full come modifica già si sentirebbe) e la bravura/impegno di chi sviluppa la versione PC, magari considerata meno perché li fa guadagnare meno...

Si indubbiamente l'hardware ti limita, era sottointeso, magari posso evidenziarti il discorso con un esempio:

Ho due pc uno con 512 ram, monocore 3ghz e una scheda video del cucco e l'altro pc è un quadcore con una gtx 580, 8gb di ram. Ora.. a parità di sistema operativo (mettiamo un windows xp anche se non supporterebbe 8gb di ram XD) se nel primo riesce a girarmi Morrowind.. nel secondo dovrebbe schizzare di fps!!

Invece nelle console accade diversamente, se battlefield nella 360 va a 30 fps, nel pc bisogna vendere un rene e firmare un patto col diavolo per ottenere gli stessi fps. Certo.. dici: riduco la grafica.. (e magari ti scatta lo stesso) con il risultato che nel pc ci hai giocato da schifo e lento mentre scorrevole e normale nell'x. Ora..la differenza che ti dicevo, sta nel fatto che l'os dell'x strasfrutta l'hardware interno ad hoc a differenza di un qualsiasi windows con un pc assemblato. Questo intendevo per differenza di os.

Per quanto riguarda la bravura di chi sviluppa per pc, è presto fatto. Al giorno d'oggi esistono linguaggi di programmazione capaci di versatilità tra una piattaforma e un'altra senza tante difficoltà. Un pò come creare un file con word pad, e salvarlo poi in doc o in pdf. Non penso proprio che sviluppano solo per pc, poi lo ricominciano da capo o lo riadattano modificandone il codice ... ci vorrebbe un altro anno di lavoro XD

hibone
12-03-2012, 21:03
Da quanto ho capito, credo tu alludi al framework, se il gioco è stato scritto in un framework adattabile a multipiattaforma viene più facile la conversione senza dover entrare nel codice specifico delle classi e lati grafici. Certo.. se fosse così è più facile.. un pò come il .net insomma.

non esattamente.
un software che gira su una macchina può lavorare accedendo direttamente all'hardware, oppure attraverso l'interposizione di un ulteriore livello di software che si occupa dell'hardware sottostante, oppure attraverso un mix delle due cose ovviamente.

nel primo caso devi fare specifico riferimento all'hardware sia per quanto riguarda gli indirizzi, i registri e quant'altro, nel secondo devi fare riferimento alle API del sistema operativo.

nel momento in cui cambi l'hardware, o il sistema operativo, vai a cambiare il set di istruzioni che il gioco può usare, per cui se vuoi trasferire il gioco su una macchina diversa, ecco che devi riscrivere per intero il gioco.

per ovviare a questo problema, solitamente, si scrive un ulteriore pezzo di codice, che traduce le funzioni per accedere all'hardware in un nuovo set di funzioni che non dipendono dall'hardware e che stanno tra il gioco e l'hardware ( o tra il gioco e il sistema operativo della macchina )

in questo caso per fare il porting non devi riscrivere tutto il gioco, ma solo lo strato software intermedio, che di solito è molto minore, in termini di righe di codice.

questo però non sempre è sufficiente, nel caso di xbox/xbox360, dove il sistema operativo è derivato dal mondo pc, questo è possibile, ma quando le differenze sono notevoli, specie se la struttura e i principi di funzionamento dell'os cambiano radicalmente, fare una cosa del genere è impossibile, se ci fai caso infatti, i giochi per pc che girano su linux o su macos sono ben pochi.

un ulteriore problema è dato dal fatto che lo strato di codice che viene introdotto, aumenta la quantità di overhead, rubando risorse e sul pc, e sulla consolle, e quindi non può essere estremamente complesso, perché altrimenti la cpu passa più tempo a convertire le chiamate a funzione che ad eseguire il gioco vero e proprio.

per quanto riguarda il mondo pc poi c'è un ulteriore problema. dato che in funzione del tipo di sistema operativo, delle funzionalità del processore, della versione dei driver e delle caratteristiche della scheda video, esiste una miriade di combinazioni diverse, e dato che alcune funzionalità avanzate esistono su talune piattaforme ma non su altre, non è possibile, soprattutto in virtù dei tempi imposti dal mercato, realizzare un software capace di sfruttare al meglio tutte le funzionalità avanzate presenti su una data piattaforma.

un esempio è il caso del multithreading, i giochi di 5-10 anni fa, giravano esclusivamente su singolo processore, e sul multicore sfruttavano solo uno delle unità di elaborazione della macchina, ora succede l'opposto.

Ma quindi chiudendo il discorso porting, sarebbe più corretto dire che il gioco viene sviluppato in un framework trasformabile in diverse piattaforme con leggeri cambiamenti piuttosto che dire "è stato sviluppato per Xbox e poi fatto il porting nel PC".

In linea generale no. La ragione è semplice, se prendi una consolle diversa dalla xbox il discorso viene meno. In linea generale, la possibilità di passare in modo relativamente semplice ( non programmo giochi quindi non ho idea di quanto possa essere una mazzata convertire un gioco ) da una piattaforma all'altra deriva dal fatto che la microsoft ha pianificato, e successivamente realizzato una progressiva convergenza tra le librerie grafiche di xbox e quelle pc, complice il fatto che, se non erro, l'os di xbox è un porting di windos, e quindi fornisce molte delle chiamate a funzione di un normale windows pc.

Questo permette, eventualmente, di compilare lo stesso gioco, sia per girare su pc che su xbox riducendo la quantità di aggiustamenti necessari, ma non credo, ovviamente imho, che sia sufficiente, ma dubito che se l'impostazione stessa del gioco non prevede il porting, sia possibile passare agevolmente da una piattaforma all'altra.
Non è come impostare i parametri nel file di configurazione del gioco, per intenderci.

hibone
12-03-2012, 21:17
Per quanto riguarda la bravura di chi sviluppa per pc, è presto fatto. Al giorno d'oggi esistono linguaggi di programmazione capaci di versatilità tra una piattaforma e un'altra senza tante difficoltà.

chiedi pure nella sezione programmazione, ma dubito che sia il linguaggio di programmazione a fare il lavoro.

e non è che esistano poi chissà quanti linguaggi di programmazione. di sicuro vengono usati il c e il c++, dubito che venga utilizzato il C# e non sono neppure tanto sicuro sul primo. ma almeno che io sappia non mi risulta che esistano capolavori realizzati in java flash python o altri...

il linguaggio di programmazione è uno strumento di lavoro come un altro, e se non sei capace ad usarlo, non vai da nessuna parte, questo è sicuro.

Non penso proprio che sviluppano solo per pc, poi lo ricominciano da capo o lo riadattano modificandone il codice ... ci vorrebbe un altro anno di lavoro XD

no. segmentano il gioco in varie parti, tutte dipendenti da un unico pezzo di codice il quale dipende dalla piattaforma.

cambiando quest'ultimo pezzo di codice riescono a creare due versioni del gioco. quindi se a fare il gioco per una piattaforma ci mettono 3 anni, per farlo per la seconda ci metteranno 6 mesi.

é lo stesso criterio per cui quando, cambi scheda video, non vai a reinstallare l'intero sistema operativo, ma cambi solo i drivers, questo non vuol dire che i drivers nvidia li ottieni cambiando due righe in quelli di amd/ati. :)

Bloodyz
13-03-2012, 10:55
Beh sei stato ben chiaro :) Complimenti per la risposta direi più che esauriente :)

Quindi nella logica delle cose abbiamo una sorta di codice tra quello che gestisce l'hardware e quello del gioco in sè che fà da tramite?

Ossia, c'è un codice che permette di richiamare l'hardware del pc (api) e uno simile per le console (quindi si parlerebbe di api anche su console). Quando programmi il gioco, chiami queste api che hanno orientativamente comandi simili? Nel caso di porting si limitano a riconvertire gli stessi comandi versione api console?