Perché è difficile trasferire i giochi dalle console al PC? [chiuso]


27

Le porte per PC dei giochi per console spesso escono dopo un mese o due. Perchè è questo?

I giochi sono scritti in lingue che possono essere compilate anche su PC, quindi la logica di gioco dovrebbe essere compilata senza problemi. Cosa li trattiene allora? È il codice di rendering o cosa?


3
Probabilmente è dovuto alle offerte di pubblicazione. Vengono pagati, ad esempio, da Sony per aver creato un titolo esclusivo per ps3 / ps4.
Aurus,

Sto parlando di giochi che escono per alcune console. Dicono che la "porta" uscirà X mesi dopo il rilascio della console. La domanda è qual è il motivo per cui aspettano. Voglio dire, il marketing può avere qualcosa da fare, ma sono interessato dalla parte del programmatore.
Bloodcount,

Ma Aurus ha ragione, questa è la risposta più probabile. Il porting del codice dalle console al PC non è banale per diversi motivi. La maggior parte dei giochi che escono per PC brevemente dopo un rilascio della console sono stati progettati per il PC in primo luogo, o almeno la tecnologia sottostante supporta una porta facile. Altrimenti un paio di mesi probabilmente non sarebbero sufficienti
Grimshaw,

Per quanto riguarda il tuo commento "i giochi sono scritti in lingue compilabili sul PC" non è sempre stato vero. In particolare, vorrei modificare una citazione famosa, "Le console e i PC possono essere tutti computer, ma non tutti i computer sono creati uguali".
Kurtzbot,

Risposte:


47

Esistono diversi motivi per cui una porta PC può richiedere del tempo. (Mi scuso se mi sembra di ripetermi da qualche parte; è una specie di scritto al volo.)

Adattare i controlli e il gameplay

Quando giochi su una console, questo da solo pone alcune limitazioni su ciò che puoi fare, poiché tutto ciò che l'utente ha è un gamepad.

La semplice creazione di mappature 1: 1 tra i tasti della tastiera e gli ingressi del controller non è sempre una buona idea - se possibile - quindi a volte ci vuole più tempo per trovare una buona soluzione.

Astrazione / frammentazione dell'hardware

Quando sviluppi, ad esempio, un Wii U, sai esattamente come si comporta un Wii U, perché tutti i Wii Us sono identici. Questo non è vero per i PC; hai molte schede grafiche e CPU diverse e a volte qualcosa non funziona su alcune di esse. Sono necessari molti test per scoprire questi bug e anche correggerli richiede tempo.

Se non hai mai usato il tuo motore per creare una versione per PC, devi anche codificare l'astrazione dell'hardware di conseguenza. Alcuni giochi vogliono supportare più versioni di DirectX e OpenGL per Linux / Mac, e tutto ciò richiede tempo per scrivere se non è mai stato fatto prima.

Contesa di risorse

Sulle console, il gioco non deve competere con un sistema operativo per risorse, ecc. - non ci sono molte cose in background.

Su un PC, hai il sistema operativo in esecuzione, hai una pletora di programmi in background e tutto ciò significa che non otterrai una quota così grande come speravi. Ciò significa che a volte è necessario eseguire ulteriori ottimizzazioni, in particolare per i giocatori su sistemi di fascia bassa

Miglioramento delle risorse

Con una console, hai un target fisso, quindi scrivi shader, ecc. Per abbinare quel target.

Su un PC, alcune schede grafiche supportano funzionalità più avanzate e forse vuoi usare uno shader migliore per quelle. Bene, questo significa che dovrai scrivere quello shader.

Materiale specifico per la piattaforma

Gli SDK della console possono avere molte funzioni utili che non si associano facilmente a un PC, ad esempio potrebbero fornire accesso a timer hardware o a una buona API audio.

Queste cose di solito non sono disponibili sui PC; devi usare altri modi per realizzare queste cose e forse questo cambia il modo in cui devi astrarre le differenze della piattaforma.


4
Relativamente ai controlli, all'interfaccia utente, puoi ancora vederlo molto, in cui il menu sul desktop di un PC non funziona nemmeno con il mouse, ad esempio hanno eseguito il mapping 1: 1 da d-pad a tastiera. Un altro potenziale problema sono le lingue shader e il supporto del driver.
Casper Beyer,

1
Buona risposta a tutti. Tuttavia, nei casi in cui gli sviluppatori vogliono ottenere le massime prestazioni dalle console, uno strato di basso livello di codice specifico della piattaforma di solito non è sufficiente, il gioco stesso deve essere progettato per sfruttare i forti attributi dell'hardware della console, che non è è necessariamente la soluzione ideale anche per PC!
Grimshaw,

6

Un semplice motivo è che una console ha un singolo set di hardware uguale per console.

Il tuo XBox, PS3 e Wii hanno tutti lo stesso hardware dei tuoi vicini XBox, PS3 e Wii. Tuttavia il tuo computer ha una CPU diversa, una diversa scheda grafica, una diversa quantità di RAM, infatti l'intera configurazione e le impostazioni del sistema operativo, i driver installati potrebbero essere una permutazione completamente unica che nessun'altra persona al mondo ha.

Questo è ciò che rende difficile il porting su un PC. È necessario tenere conto di ogni possibile componente hardware entro i requisiti minimi di sistema e superiori. Questo è un processo difficile e difficile da programmare ed eseguire il debug. È molto difficile per gli sviluppatori conoscere ogni configurazione da programmare e quasi impossibile eseguire test su queste configurazioni.

Una volta che lo sviluppano per PC, gli sviluppatori eseguono numerosi test interni, ma possono anche fare affidamento sui beta test degli utenti per un periodo compreso tra un paio di settimane e alcuni mesi. Questo outsourcing di test con lettori beta prima che il port to PC sia ufficialmente rilasciato è in genere il motivo per cui si nota il divario nelle date di rilascio tra console e PC.


5

Il trasferimento del codice su una nuova piattaforma richiede tempo. La creazione di un timer a nanosecondi per Xbox 360 (non ho mai sviluppato in XNA) avrà bisogno di un'implementazione diversa rispetto allo stesso timer a nanosecondi in Linux, Mac o Windows. Ora immagina di avere centinaia di questi tipi di funzioni che richiedono il porting, migliaia se il motore è abbastanza potente.

Possono essere facilmente necessari un mese o due di codifica per aggiungere queste diverse implementazioni per le nuove piattaforme. Inoltre, non puoi sempre utilizzare le stesse librerie su Xbox 360 che puoi su Windows, Playstation 3 o altre piattaforme. Ciò significa che potenzialmente devi utilizzare una libreria completamente nuova per fare la stessa cosa che hai fatto sulla versione Xbox 360.

Nel complesso, questo tipo di cose si sommano in una grande quantità di tempo. Il porting su una nuova piattaforma è raramente facile per i grandi titoli AAA.


3

Non ha quasi nulla a che fare con l'essere duro in molti casi.

Non è solo una priorità. Si stanno alzando per appena uscire dalla porta in tempo. Ogni minuto di differenza richiede tempo per essere considerato. Se è possibile rilasciare su alcune console o sul PC entro una scadenza, farlo prima, quindi chiudere le porte. Rilascia presto, guadagna di più. Generalmente le console hanno fatto meglio per i giochi boxed di quest'ultima generazione, anche se ha iniziato a cambiare: le nuove console potrebbero ribaltarlo.

Inoltre, in alcuni casi, i produttori di console offrono vantaggi alle versioni esclusive, quindi l'editore ottiene uno sconto o alcuni di questi se rilasciano su una console particolare prima e su altre piattaforme in seguito. Niente di tecnico al riguardo.


1

Inizialmente, i giochi sono più difficili da realizzare su una console che su PC. Inoltre, le console hanno specifiche e hardware molto diversi tra nintendo, sony e microsoft, il che non si traduce solo in prestazioni diverse, ma comporta anche diversi problemi di collo di bottiglia.

Di solito, il gioco modificherà il proprio motore per massimizzare la qualità e le prestazioni su ogni console.

Quando ci si adatta al PC, ci sono altri problemi. Le console sono omogenee, il che significa che tutte le console hanno lo stesso hardware (tutte le PS3 hanno le stesse prestazioni hardware). Quando realizzi il tuo gioco per PC, hai come target una specifica minima, ma permetti anche all'utente di aumentare la qualità per PC più potenti. I giochi mirati per PC sono meno ottimizzati, ma sono più facili da realizzare per i programmatori.

La programmazione su console ha un vantaggio, consente ai programmatori di massimizzare le prestazioni, quindi qualsiasi gioco per console funzionerà sempre bene.

Su un PC, è peggio, perché ci sono molti hardware là fuori, ma garantito, è più libertà, il miglior gioco risultante sarà sempre su PC, perché il PC è sempre all'avanguardia, a un costo.

Il porting di un gioco da console a PC può essere complicato, perché le console sono progettate per le prestazioni di gioco, mentre i PC non lo sono, ma nel complesso, è molto più facile trasferire un gioco da console a PC rispetto al contrario, perché la console ha molta meno memoria, qualcosa come 2 o 4 volte in meno.

La modifica del codice per adattarsi a questa restrizione di memoria significherà sempre sempre una riprogrammazione completa.

Non credo sia difficile trasferire un gioco dalla console al PC, è solo una questione di API. Le aziende e i programmatori che lavorano solo con le console avranno difficoltà a eseguire il porting su PC, perché non sono abituati, ma anche perché si adattano costantemente all'API della console, quindi ciò significa che il loro codice risponderà spesso alle restrizioni del compilatore della console, e non si preoccupa necessariamente dell'apis del PC.

Ovviamente, i motori possono essere programmati per funzionare su tutte le console e PC, una volta fatto è più facile, è meglio che dire ai programmatori di portare il motore su PC dopo che gli è stato detto che non è mai stato pianificato per 3 o 4 anni.

TL; console DR sono omogenee e l'ultima generazione di console, PC eterogenei e hardware e API si evolvono costantemente. I costi sono ripartiti tra programmazione e costruzione hardware, che sono compromessi.

Una cosa buona sarebbe consentire a tutto l'hardware di eseguire tutto, ma i prezzi della console sono compensati perché le società di gioco pagano una licenza ai produttori di console, quindi bloccano il loro hardware per far funzionare solo le società di giochi che pagano. È disordinato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.