C'è un motivo per aggiungere opzioni per non utilizzare tecnologie avanzate in un motore di gioco?


22

Ho sviluppato un motore di gioco e ho scoperto e letto tecnologie di gioco come il filtro anisotropico, l'occlusione ambientale, l'antialiasing, ecc.

Di solito nei giochi, puoi attivare e disattivare queste impostazioni. Tuttavia, se queste impostazioni non aggiungono altro che aspetti positivi, c'è un motivo per aggiungere valori di commutazione per questi in un motore di gioco per lo sviluppatore?

Capisco che le prestazioni sono un fattore importante, ma c'è qualche altro motivo per cui queste impostazioni sono sempre disponibili a cambiare?


69
Le prestazioni da sole non sono un motivo sufficiente? Se l'hardware di un giocatore non può supportare tutte queste funzionalità con un framerate giocabile, questo da solo suona come un motivo convincente per consentire loro di disabilitarne alcune.
DMGregory

3
Se il tuo hardware non è in grado di gestire alcuni degli effetti, allora non sono affatto positivi come dici tu ... Essendo flessibile su ciò che il tuo motore può e non può fare, più persone possono giocare ai tuoi giochi / usare il tuo motore. Abbassare la grafica ma mantenere sicuro il gameplay di base è utile per alcune persone.
rlam12,

3
Quake aveva un'opzione per disabilitare quasi completamente trame e grafica al minimo, in modo che solo gli elementi di gioco principali fossero resi il più velocemente possibile, offrendo il gameplay più fluido a costo di effetti visivi. Certamente c'era un ottimo motivo per questo.
user1306322

9
Visualizzare bobbing e motion blur può letteralmente farmi star male in alcuni giochi. Chiaramente molte persone pensano di essere brave, dal momento che sembrano essere accese in quasi tutti i giochi, ma restituirei il tuo gioco con una recensione scadente se non avessi la possibilità di disattivarle.
Patrick M

2
Le convenzioni di @PatrickM per i giocatori che soffrono di simulazioni di malattia sembrano avere una buona risposta a sé stante. :)
DMGregory

Risposte:


49

Le prestazioni sono generalmente il motivo principale per cui queste funzionalità possono essere attivate e disattivate dall'utente. In generale, sono costosi e consentendo agli utenti di disattivarli, uno sviluppatore amplia il set di macchine che eseguono effettivamente il gioco per includere più macchine di fascia bassa. Questo si traduce in potenzialmente più giocatori, e quindi potenzialmente più vendite (supponendo che questi giocatori possano vivere con una ridotta fedeltà visiva).

Queste funzionalità avanzate potrebbero anche incidere maggiormente sulla durata della batteria o sull'uscita della ventola, come sottolineato da @Artelius, e quindi gli utenti potrebbero voler disabilitarli per questi motivi.

Infine, semplicemente per fornire agli utenti una scelta su ciò che preferiscono. Ad alcune persone potrebbe non piacere l'aspetto dell'antialiasing o la disabilitazione della v-sync può causare la lacerazione dello schermo. O per un esempio più pratico, considera Pillars of Eternity, che ha un'opzione per abilitare o disabilitare le legature dei caratteri. Questi probabilmente non costano molto in termini di prestazioni di runtime, ma alcuni utenti potrebbero trovare il testo più difficile da leggere con loro. Oppure (come sottolinea @SeanMiddleditch), si potrebbe desiderare di disabilitare una funzione perché è buggy su una singola macchina. Oppure si potrebbe desiderare di disabilitare una funzione per ottenere un vantaggio competitivo (ad esempio disabilitando rumorosi effetti visivi che distraggono dalla meccanica).


12
Un altro motivo per cui gli utenti potrebbero voler disattivare gli effetti computazionalmente costosi è quello di preservare la durata della batteria o ridurre il calore e il rumore della ventola.
Artelius,

14
Come nota a piè di pagina, è importante ricordare quali impostazioni possono essere disabilitate mentre si progettano bilanci / funzionalità di gioco critici. Per un po ', le granate fumogene nemiche in BF4 potrebbero essere annullate disabilitando un'opzione grafica. Ops.
Jon

26
Un altro motivo è consentire soluzioni alternative per i bug. L'hardware specifico di un utente potrebbe causare l'arresto anomalo o un errore eccessivo di una scena con l'implementazione del gioco di un certo effetto di post-elaborazione, ad esempio, o un utilizzo maggiore della memoria delle impostazioni più elevate potrebbe causare arresti anomali su alcune macchine e non solo una perdita di perf. Ho avuto un caso di una GPU che si surriscaldava facilmente e la possibilità di abbassare le impostazioni fino a quando non ne ho avuta una nuova mi ha aiutato a evitare arresti / ripristini del driver GPU.
Sean Middleditch

1
The Witcher 3 è un ottimo esempio con HairWorks. Prestazioni a parte, ci sono molte persone che vorrebbero accenderlo per tutto tranne Geralt (il personaggio del giocatore). Dicono che HairWorks rende gli animali fantastici, ma allo stesso tempo rende i capelli di Geralt terribili. Non mi interessa in entrambi i casi, ma vedo perché si sentirebbero in quel modo.
Nolonar

2
Disattivo molti effetti "fluff" in modo da potermi concentrare sul gioco stesso. Spesso, gli oggetti sono nascosti sul terreno in erba e arbusti. Quelle erbe scompaiono o sono più statiche / più sottili con impostazioni grafiche inferiori che mi permettono di vedere gli oggetti sul terreno. Gli effetti degli incantesimi rendono anche difficile mirare a piccole creature volanti, quindi avere effetti degli incantesimi inferiori rende la nuvola di particelle più piccola e si dissipa più velocemente. Un altro motivo è che abbassare i dettagli del sangue mi dà un po 'di tempo di buffer se il mio bambino di 5 anni si sveglia senza preavviso.
corsiKa

11

Come già sottolineato da Josh Petrie, la preoccupazione più importante è la prestazione. Non solo non puoi sapere quanto sia potente l'hardware degli utenti finali, quando costruisci un motore non sai nemmeno come lo useranno le persone. Forse gli sviluppatori del gioco vogliono costruire un gioco che mette così tanti poligoni sullo schermo che nemmeno il miglior hardware può renderlo in tempo reale senza disattivare gli effetti? Ma gestirlo automaticamente potrebbe non essere una buona idea: forse gli sviluppatori vogliono decidere quali effetti disabilitare su quali oggetti.

Ma oltre alle prestazioni, può anche essere di interesse estetico.

Ad esempio, il passaggio dal filtro anisotropico all'interpolazione del vicino più vicino e l'utilizzo di trame a bassa risoluzione o sprite di livello elevato porta a un aspetto nostalgico di pixel art. Un esempio popolare di gioco che fa questo è Minecraft. E ovviamente i molti giochi che ne copiano l'estetica. Non perché non sappiano fare di meglio, ma perché non vogliono.


3
Ma se un gioco fosse progettato per apparire pixelato ... perché dovresti dare all'utente la possibilità di cambiarlo? Minecraft ha davvero un modo per attivare il filtro lineare?
Nicol Bolas

6
@NicolBolas La domanda era "c'è un motivo per aggiungere valori di commutazione per questi in un motore di gioco per gli sviluppatori ". In interpretato questo come chiedere la prospettiva dello sviluppatore.
Philipp

1
Per me, la domanda sembra chiaramente focalizzata sull'utente che affronta i "valori di commutazione", non le attuali impostazioni dei parametri in-OpenGL / D3D / etc. Cioè "per lo sviluppatore" si riferisce agli sviluppatori che aggiungono l'opzione rivolta all'utente, non agli sviluppatori che utilizzano le API.
Nicol Bolas,

5

Certo, prestazioni. Alcuni effetti come Crepuscular Rays, Depth of Field e Bloom sono molto faticosi per i fps, in particolare nelle GPU più vecchie. Anche un buon modo per ottenere qualche fps extra è ridurre o disabilitare i riflessi e le ombre. Inoltre, per ripetere il punto Artelius , anche gli effetti visivi influiscono sulla durata della batteria.

A parte quello:

  • Alcuni effetti possono essere glitch. Non tutte le macchine sono uguali, e alcune GPU potrebbero gestire in modo errato il tuo codice ... avere un modo per disabilitare gli effetti è positivo per i giocatori che soffrono di tali casi ed è utile per gli sviluppatori per facilitare il debug.
  • Alcuni effetti possono ostacolare il gioco. In particolare effetti che nascondono dettagli, come Profondità di campo, Motion Blur e, in misura minore, filtraggio anisotropico e anti-aliasing.
  • Alcuni effetti possono essere fastidiosi / di distrazione. Questo succede a me con Depth of Field, quando la messa a fuoco cambia, letteralmente attira l'attenzione su di essa.
  • Alcuni effetti dovrebbero essere considerati per le opzioni di accessibilità. Questo è il caso di View Bobbing e Motion Blur, questi possono far ammalare alcune persone, non è uno scherzo.
  • Alcuni effetti dovrebbero essere considerati per il controllo parentale. Disattivare gli effetti delle particelle di sangue e simili - almeno aiuta con le recensioni dei giochi dei genitori.

Modded Minecraft è davvero un buon parco giochi per questo. Minecraft esegue il rendering di blocchi interi, quindi il conteggio dei poligoni è maggiore di quanto sembri. Aggiungete a ciò le complicazioni legate allo smaltimento di blocchi su una spazzatura raccolta e priva del linguaggio dei puntatori come Java [1], e potreste aspettarvi alcuni problemi di prestazioni - in particolare, nel vecchio hardware, come sempre. Alcune persone richiedevano una grafica migliore, mentre altri desideravano prestazioni migliori. E così, mod come GLSL Shaders Mod e Optifine sono diventati realtà , entrambi aggiungendo opzioni grafiche extra - sebbene a fini diversi - sono compatibili [2], se hai la possibilità di usarli puoi sperimentare gli effetti sulle prestazioni del effetti visivi.

[1]: Microsoft ha realizzato una porta C ++ di Minecraft per Windows 10 - basata sull'edizione tascabile - offre prestazioni molto migliori rispetto alle versioni Java precedenti. Questo non significa che Java non possa eseguire, questo non è solo un sintomo di essere C ++ ma anche di essere Microsoft.

[2]: In effetti, queste mod si sono fuse per Minecraft 1.8.9 - Mods Shader GLSL assorbiti da Optifine .


E dici che stai sviluppando un motore di gioco , quindi ti aspetti che il tuo codice abbia la possibilità di essere riutilizzato per molti giochi diversi. È una buona idea consentire allo sviluppatore del gioco di decidere se vogliono usare questi effetti e se vogliono fornire opzioni per disabilitarli o meno. Non tutti gli effetti possono avere senso per tutti i giochi e alcuni giochi possono dipendere da alcuni effetti.

Considera che alcuni giochi useranno questi effetti per creare uno stato d'animo, per trasmettere informazioni al giocatore o semplicemente per una licenza artistica.

In particolare, si tenta di utilizzare gli effetti visivi per cercare di rendere l'aspetto come se fosse visto da una telecamera anziché dall'occhio umano. Questo viene tentato utilizzando effetti come Aberrazioni cromatiche, Riflessi di lenti, Granulosità del film e altri effetti "Cinematici". Questi non sono adatti per ogni gioco e quindi non dovrebbero essere imposti dal motore di gioco.

Probabilmente la maggior parte di questo, se non tutto, viene fatto negli shader, lascia che il tuo motore di gioco consenta allo sviluppatore di caricare i propri shader.


Nota sulle opzioni di accessibilità: molti videogiochi ignorano le persone sorde. Fornire informazioni solo in modo uditivo potrebbe non essere abbastanza buono. Aggiungere effetti visivi per riflettere cose come la direzione del fuoco in arrivo o la presenza di nemici vicini (che puoi "sentire") è una buona idea [3]. E ovviamente, didascalia. Inoltre, tieni presente che ci sono persone daltoniche ... quegli elementi che si distinguono solo per il colore ... sì, considerato una riprogettazione.

[3]: Semplicemente non sai che dolore sono quei brividi in Minecraft, quando non riesci nemmeno a sentire un sibilo. Diventano casuali all'interno.

Più conosci ★


2
+1 per la nota sulle opzioni di accessibilità! Io stesso ho un buon ascolto, ma quando stavo iniziando con i videogiochi, non parlavo un buon inglese. Avere scritto testi oltre ai suoni può essere di grande aiuto quando non sei sicuro di cosa stia succedendo.
AndrejaKo

5

Qualcosa non ancora menzionato da altri:

La disabilitazione delle funzionalità grafiche potrebbe essere una soluzione alternativa valida per problemi con una determinata configurazione , non correlata alle prestazioni.

Solo un esempio, alcune opzioni grafiche semplicemente non funzionano correttamente con un determinato motore di rendering quando si esegue un gioco Windows su Wine (il livello di compatibilità di Windows per Linux).

Per un certo gioco (intenzionalmente senza nome), devo mettere a punto il filtro su trilineare e disabilitare i riflessi. Non perché il mio rig non sia all'altezza (lo è certamente), ma a causa del rendering di anomalie e crash se non lo faccio.

In un altro gioco, hai dovuto disabilitare gli effetti "fog" per qualsiasi rig che eseguesse le schede nVidia (anche su Windows nativo), perché rendevano sempre la nebbia opaca al 100%.


Qualcosa che è menzionato in altre risposte / commenti, ma in realtà è un motivo per non rendere facoltative determinate impostazioni (come densità del fogliame, gras):

Visibilità degli avversari nei giochi competitivi.

Se i giocatori possono ottenere un vantaggio competitivo impostando "l'aspetto" del tuo gioco su "davvero male", stai danneggiando l'esperienza di gioco in due modi:

  • i giocatori competitivi potranno vedere solo un gioco "brutto";
  • i giocatori ricreativi avranno uno svantaggio (potenzialmente significativo) non correlato all'abilità, semplicemente per preferire un gioco bello.

Evitatelo se possibile. Rendi gras e fogliame ingombranti per rig a basso rendimento, ma assicurati che le impostazioni più basse non offrano un vantaggio di gioco.


4

Chiarezza nei giochi competitivi

I giocatori di giochi online competitivi potrebbero preferire una vista più semplice o più chiara a una vista più bella anche se le prestazioni non sono un problema: molte opzioni visive aggiungono realismo visivo ma oscurano le cose che i giocatori vogliono effettivamente vedere.

Può darsi che nel tuo gioco sia più facile notare o colpire un nemico se configuri il client di gioco per disabilitare tutti i tipi di erba o foglie extra, effetti speciali, fumo / nebbia / fuoco, ecc. effetti a svantaggio.


2
Mi ricorda la ruggine: spegni l'erba e non c'è più posto per nasconderti!
Gigala

3
Questa risposta fornisce un'ottima ragione per non rendere tali impostazioni opzionali. Non avrei dovuto scegliere tra "bello" e "competitivo". La competitività non dovrebbe essere regolabile, e certamente non dallo stesso cursore che decide sull'aspetto.
DevSolar

@DevSolar non renderlo facoltativo non lo rende tuttavia impossibile (ad esempio wallhacking)
Joel Bosveld

@JoelBosveld: Evitare il wallhacking ecc. Non ha nulla a che fare con la domanda del PO. Rendere facoltativo il fogliame ...
DevSolar

-1

Le altre risposte sono buone, ma penso che manchino buoni esempi di effetti reali che potresti voler disattivare.

Per me, il "motion blur" davvero economico e terribile che ad esempio GTA3 aveva peggiorato il gioco. Fortunatamente ho potuto spegnerlo.

Non l'ho mai giocato, ma quello che ho visto da GTA5 è un'altra soluzione piuttosto confusa che disabiliterei se provassi GTA5. (vedi https://www.youtube.com/watch?v=VjIhl8hbO18 )

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.