Con i problemi di ottimizzazione ormai all'ordine del giorno per quanto riguarda le versioni PC di giochi anche di alto profilo, ultimo di questi Dishonored 2, che spesso inficiano la visione complessiva di un titolo anche se questo viene poi spesso corretto nel giro di non molto tempo, abbiamo accolto con grande interesse un'email da parte di uno sviluppatore, riguardante proprio la programmazione di videogiochi su PC.
Il soggetto in questione lavora per un grosso team di sviluppo in nord America di cui non possiamo fare il nome, che conosce piuttosto bene Multiplayer.it (si capisce anche dal saluto speciale a Lamenticchia) e che a quanto pare, come probabilmente molti altri del settore, si è decisamente stufato delle accuse di scarso impegno mosse puntualmente dall'utenza PC nei confronti degli sviluppatori che si trovano a rilasciare giochi con inconvenienti tecnici su tale fronte. Riportiamo qua sotto la missiva, praticamente per intero.
Sono un programmatore di videogiochi in una grande compagnia, di cui non posso entrare nei dettagli. Mi sto veramente stancando di come gli utenti PC reagiscono ai giochi, so che non è corretto pubblicare un gioco che non ha performance ottimali con un buon hardware, ma nonostante questo la cosa sta andando fuori controllo.
Fatemi spiegare come funziona lo sviluppo su PC. Quando si lavora su PC, si sviluppa su una macchina, che è di fatto un PC. Questo ha solitamente un hardware molto potente per lo sviluppo, normalmente con caratteristiche molto più alte di quelle richieste per far funzionare il gioco in produzione. La ragione è che sviluppare su una macchina dalle caratteristiche basse renderebbe il processo più lungo, se non impossibile.
L'idea è che, una volta concluso lo sviluppo, il gioco venga testato su svariate configurazioni modello e, nel caso, venga effettuato il debug per le performance su queste. Come ben saprete, ci sono infinite combinazioni di CPU, RAM, GPU e schede madri. Se la compagnia è abbastanza grande e se la versione PC è considerata importante, allora possono essere testate molte combinazioni diverse ma se la compagnia non è molto grande, allora può essere più sicuro non spingere troppo sugli elementi tecnici del gioco e andare sul sicuro.
Quando si sviluppa un gioco per console, solitamente questi elementi tecnici vengono spinti quanto basta: una console oggi è praticamente un PC con DirectX 11 e qualche accorgimento aggiuntivo. Un PC da 3000 dollari ha praticamente la stessa tecnologia che si trova in una console, solo che è più veloce e ha un hardware più vario. Quando si parla di GPU, ci affidiamo completamente ai driver. Se questi non funzionano bene, non c'è modo di avere una performance stabile anche dalla migliore scheda video. Questo è vero anche per le DirectX 12, o Vulkan o qualsiasi altra API vogliate prendere come oggetto del desiderio.
Se c'è un qualsiasi collo di bottiglia, un qualsiasi problema di comunicazione tra componenti hardware, un qualsiasi conflitto tra componenti, non ci sarà modo di avere una performance solida. Se c'è un qualsiasi virus, un processo in corso (ricordate che Windows da solo occupa 600 MB di memoria video), un qualsiasi servizio sconosciuto in azione, non ci sarà modo di avere una performance convincente. Puoi ottenere delle ottime performance con DOOM, perché il PC è stato considerato una piattaforma estremamente importante per quel prodotto e dunque è stato testato su un fantastiliardo di macchine diverse.
Potresti non raggiungere mai delle performance ottimali se il budget dedicato al testing non è nell'ordine dei milioni. I giochi che escono solo su PC spesso non sono così tecnologicamente all'avanguardia proprio per questo motivo. Anche DOOM evita di fare cose particolarmente spinte dal punto di vista tecnologico.
Dunque, tutto questo parlare di Master Race sono str***ate: quello che ci si ritrova ad avere è un ammasso di hardware da 3000 dollari che funziona per miracolo e raggiunge in media un decimo delle performance che dovrebbe perché di fatto è un casino di roba messa insieme a caso. Tutti i giochi su cui ho lavorato funzionano in maniera fantastica su PC, finché non si trovano ad andare su quella determinata scheda grafica con quei particolari driver su quella specifica CPU con quel bridge e quella certa RAM su quella scheda madre. E quei dispositivi USB collegati, quel browser e quell'antivirus particolari. Su quel PC, funziona a 10 fotogrammi al secondo, con salti di frame rate e tearing, anche se è costato 3000 dollari.
E quell'utente si abbatterà come una furia su Steam perché siamo degli schifosi che non sanno scrivere tre linee di codice messe insieme. Quando un gioco funziona senza nessun problema su un PC, si tratta di una possibilità su un milione.
Allora, emergono tre possibilità:
- Smettiamo di fare giochi per gente così infantile e fastidiosa che urla al monitor mentre ci getta contro i dollari, dichiarando di essere migliori perché più ricchi. È una cosa impossibile in verità, si tratta di un mercato molto vasto da cui derivano molti soldi
- Smettiamo di sviluppare giochi ad alto tasso tecnologico su PC a meno che non si abbiano 10 milioni di tirare nei processi di certificazione della qualità
- Facciamo solo pochi giochi su PC, mentre su console ne escono molti di più.
Continuate con l'ottimo lavoro e salutatemi Lamenticchia. Ciao!
Qua sotto, riportiamo la mail originale dello sviluppatore.
Dear Multiplayer,
I often read your website and I like it very much, even more than other international websites.
I'm a videogame programmer in a large company, which I'll not disclose here.
I'm getting sick and tired of how PC players are reacting to games. I know that it's not correct to release a game that does not perform well with a good hardware, but still, this is getting out of hand.
Let me explain how developing for PC works.
When working on PC, you develop on your working machine, which is a PC. This PC has a valid hardware for developing, which is usually way higher in specs than the requirements we're going to ask.
The reason is that developing a game on a low-spec machine would make the process extremely tedious, if not impossible.
The idea is that, when done, the game will be tested on target machines, and when needed, debugged for performance there.
As you know, there are infinite combinations of CPU, RAM, GPU, Motherboard.
If the company is large enough and if PC is an important SKU, then a lot of combinations will be tested. If the company is not large enough, it will be safer to not push too much in tech and be safe.
When doing a console game, usually tech in pushed quite much: a console today is pretty much a DX11 PC with some quirks. So, a 3000$ PC has exactly the same tech you can find inside a console. It's just faster, and with mixed hardware.
When talking about GPU, we rely completely on drivers. If drivers are shit, there will be no way to get a solid performance out of the best video card. This is true also for DX12 or Vulkan or whatever API you masturbate on.
If there's any bottleneck, any problem with communication between hardware components, any conflicting component, there will be no way of getting a solid performance.
It there's any virus, any running process (remember: Windows alone takes 600MB of VRAM), any unknown service, there will be no way of getting a solid performance.
You'll get a solid performance out of Doom, because PC was extremely important and therefore tested on gazillion of machines.
You might not get a solid performance if the budget for testing is not in the millions.
PC-only games are usually far from "technology pushing" because of this. Even Doom does not really do anything too fancy.
So, this "Master race" talk is all bullshit: what you have is a 3000$ clusterfuck that works by miracle and performs on average 1/10 of what it could because it's such a mess of random stuff.
All the games I've worked on worked absolutely fantastic on PC, until there was that graphic card with those drivers on that CPU with that bridge and that RAM on that motherboard.
And those USB devices attached, that browser, that antivirus.
On that PC, it worked at 10fps, with frame rate jumps and tearing, even if it costed 3000$.
And that guy will storm on steam because we are such suckers and cannot write three lines of code in a row.
Every time a game runs fine on PC, it's a literally a chance out of a million.
So, there are three possibilities:
- We stop making games for such winy, childish, annoying people who scream at the monitor throwing money at it, claiming they are better because they are richer. This is not possible, actually: the market is very large there. Lots of money to be done.
- We stop making technically demanding games on PC unless we have 10 millions to throw at QA.
- We do only a very few games for PC, while console people gets way more games.
Keep up the good work and say hello to Lamenticchia.
Cheers.