Come posso determinare i requisiti hardware / software minimi dei miei giochi?


72

Con me che vado da solo nello sviluppo ho solo risorse limitate a mia disposizione, cioè un PC con cui sviluppo e collaudo il gioco. quindi so solo per certo che il mio gioco funziona con quella configurazione.

Quali opzioni ho nel testare il gioco sulle diverse combinazioni hardware / sistema operativo? È un gioco desktop per Windows.


3
Questo è sempre stato un grande vago per me, quindi ho pensato che un po 'più di discussione al riguardo potesse essere buona.
Jari Komppa,

Domanda fantastica! Me lo sto chiedendo da solo
Dream Lane,

Risposte:


29

Al di fuori della mia testa, suggerirei di provare a far funzionare il gioco su alcuni altri PC di amici o parenti. Dopodiché potresti prendere in considerazione una qualche forma di beta test, ovvero pubblicare una demo o qualcosa del genere in modo da poter ottenere feedback dalla community.


1
Esattamente. Basta testare su una vasta gamma di macchine di fascia bassa.
David McGraw,

1
Ok ... hai ragione, ma è quello che può pensare in modo propizio a tutti. Non capisco perché questa particolare risposta abbia troppi punti positivi. Senza offesa, è assolutamente giusto.
Notabene,

24

Uno dei miei modi preferiti per trovare queste informazioni è usare le macchine virtuali.

Visto che è possibile configurare l'hardware e la memoria consentiti dalla VM, è possibile testare una vasta gamma di configurazioni sul proprio PC. Ciò consente anche di testare su più sistemi operativi.


7
L'aspetto negativo dei test VM è che essenzialmente stai sempre eseguendo la stessa velocità di clock e il supporto 3D è ancora abbastanza spaventoso. Ti aiuteranno a coprire le tue basi assicurandoti che il tuo gioco funzioni a 32/64-bit e la gamma di scelte di Windows.
Errore 454

Sono d'accordo, mentre la VM copre molte basi, ha dei limiti. A giudicare dalla pletora di risposte, tuttavia, penso che il richiedente starà bene ^ _ ^
G. Davids,

1
@Error 454 Non con ESXi, come descritto nella mia risposta. Puoi effettivamente controllare la quantità di CPU e risorse di memoria che desideri che il sistema operativo abbia
Ray Dey,

@Ray Dey scusa, non è vero, ESXi ti dà un SVGA virtuale , non c'è accesso diretto alla tua scheda video: kb.vmware.com/kb/1011942
Errore 454

@Error 454 Non ero sicuro delle capacità del video, quindi non ho commentato. Avrei dovuto renderlo più chiaro. Ma grazie per avermelo chiarito :)
Ray Dey,

16

Dovresti avere qualche idea approssimativa di minspec semplicemente sviluppando il tuo gioco - ad esempio se hai fatto una scelta esplicita per usare D3D10 +, ovviamente stai eliminando macchine XP. Quindi è un punto di partenza.

Trova un modo per testare il maggior numero possibile di macchine, idealmente dopo aver implementato un modo per raccogliere automaticamente le metriche delle prestazioni (poiché gli utenti possono essere inaffidabili), nonché informazioni non identificabili sulla macchina su cui è in esecuzione il gioco (processore / i, numero di core, tipo di GPU, RAM, sistema operativo e così via - dai un'occhiata al tipo di dati raccolti da Steam Hardware & Software Survey ). Uno dei modi migliori per farlo è quello di dare il tuo gioco ad amici e parenti, come è già stato suggerito molte volte. Un altro modo potrebbe essere quello di avvicinare una comunità di sviluppatori di giochi per hobby e vedere se sono interessati a testare il tuo gioco. Non sono sicuro che una cosa del genere sarebbe una domanda appropriata qui su GDSE, ma probabilmente potresti trovare alcune persone nell'area 'chat' e puoi anche guardarti intorno / pubblicare su siti Web come:

Tutti questi siti web hanno forum o forum secondari dedicati in qualche modo a mostrare i giochi, e quindi potresti essere in grado di ottenere una risposta ragionevolmente buona da essi. Mi assicurerei di rivelare in anticipo le statistiche raccolte e / o inviate dal tuo gioco e perché le stai raccogliendo. Le persone possono infastidirsi se lo scoprono dopo il fatto.

Nota che il sondaggio di Steam è anche uno strumento utile in sé per valutare quale dovrebbe essere un minspec: può aiutarti a vedere quale potrebbe essere il rapporto costo / beneficio di supportare una particolare funzionalità o classe di hardware.


13

Verifica:
- Quanta RAM utilizza
- Quanta trama + memoria GPGPU utilizza
- Frequenza fotogrammi minima / Frequenza fotogrammi corrente * Velocità CPU * SpeedUpFactorOf (numero minimo di core che puoi utilizzare)
- Equazione simile per le unità di calcolo GPU
- quale livello di opengl / directx / cuda richiesto dal tuo motore di gioco dall'adattatore grafico
- quanto spazio su disco richiede l'installazione + informazioni utente ...

Testare anche su varie configurazioni hardware.


2
Per la maggior parte dei software, quella relazione tra numero di core e frame rate non è lineare.
Ponkadoodle,

2
Questa relazione implica anche che il gioco è limitato alla CPU, il che non è spesso vero.
Kromster dice di sostenere Monica il

Intendevo dire che, in generale, ogni programmatore dovrebbe controllare quali tecnologie ha usato e da quali risorse dipendono. Ho leggermente modificato la mia risposta.
Danny Varod,

8

Fondamentalmente vuoi testare su tutte le altre macchine che puoi - dall'impianto di gioco hard-core del tuo amico alla macchina solo via e-mail e internet di tuo nonno. Soprattutto la macchina solo via e-mail e internet di tuo nonno, perché probabilmente è caricata con cruftware e altre cose che interferiranno e rallenteranno il tuo gioco in una scansione.

Il test di compatibilità del PC è una brutta lattina di worm e c'è un motivo per cui i test professionali sono costosi. Quindi vuoi testare quanti più scenari dispari possibili.

Penso che il beta test sia la strada da percorrere, sia con gli amici che con la famiglia e con una cerchia più ampia nella tua community di fan. Cosa fondamentale: non fare affidamento su report aneddotici. È possibile fare affidamento sui tuoi amici per rispondere effettivamente, ma la comunità più ampia non lo farà, a meno che tu non li renda facili.

Costruisci l'accesso alla tua app per darti informazioni concrete su FPS, tempo di avvio, ecc. Fornisci all'utente un semplice questionario, idealmente integrato nel gioco, in cui possono segnalare se hanno funzionato o meno. E avere quelle statistiche e la registrazione facilmente disponibili / trasmissibili a te, per farti analizzare in seguito. Più statistiche ottieni, migliore è la sensazione che il tuo titolo sia a) che funzioni su altri sistemi eb) che funziona bene su altri sistemi.


6

Prova il maggior numero di PC possibile (che ti aiuterà anche a rilevare tutti i bug specifici). Come sviluppatore dovresti conoscere i tuoi principali colli di bottiglia: concentrati sullo stress. Puoi chiedere ai tuoi amici, colleghi di lavoro, fidanzata, genitori, molte persone nei forum.

PS Solo per riferimento:

  • Requisiti CPU = esegui il gioco con una risoluzione minima o senza rendering GPU (spero che il codice di rendering utilizzi un minimo di CPU)
  • Requisiti GPU = esegui il gioco su una potente CPU con risoluzione predefinita e vedi quale GPU è sufficiente per svolgere l'attività, menziona anche la versione minima di Direct3D / OpenGL
  • Requisiti RAM = quanta RAM impiega il gioco (ad es. Tramite TaskManager, con colonna Dimensione VM, per vedere tutta la RAM allocata, non solo attiva)
  • Suono = quasi tutto si adatta, basta menzionare il supporto dei canali 2 / 5.1
  • Display = specifica la risoluzione minima giocabile adatta ai controlli di gioco
  • Rete = alcuni test di carico di massa e vedere quale larghezza di banda lo consente (modem 56k, DSL, T1, LAN)
  • Tastiera / Mouse / Tablet / Joystick, ecc.

2
Dopo aver ottenuto queste cifre, vorrai sicuramente aumentarle leggermente, nel caso in cui il tuo gioco fosse in esaurimento.
Il comunista Duck il

2

Per quanto riguarda i requisiti, presumo che siano necessarie le cose minime necessarie per far funzionare il tuo gioco. Dipenderà dalle tecnologie utilizzate per sviluppare i tuoi giochi.

Ad esempio, se si utilizzano API specifiche, come D3D9 o OpenGL 3.0, è necessario specificarlo, poiché alcune API non sono compatibili con le versioni precedenti.

Se costruisci con Windows con .net framework, dovrai anche specificarlo.

Per i requisiti di prestazione, provare su macchine diverse è praticamente il modo migliore per procedere, anche se potresti essere in grado di misurare le prestazioni correlate mediante il calcolo.

ad esempio, se la tua scheda video corrente funziona a 60 fps e un altro computer con una configurazione simile, ad eccezione della scheda video a metà velocità della tua, dovrebbe funzionare a metà velocità della tua macchina. Ancora una volta, questa è solo una stima, molte altre proprietà colpiranno le prestazioni in modo diverso, ma puoi usare quelle informazioni di base per testare il tuo gioco su dispositivi mirati.

Spero che sia d'aiuto, e chiunque è il benvenuto a correggermi per qualsiasi motivo.


1

A seconda del tuo mercato di riferimento (suppongo che non sia necessario un 3d all'avanguardia, ad esempio costose schede grafiche), guarderei a prendere una selezione di schede grafiche più vecchie da qualche parte come EBay in modo da poter testare su NVidia e ATi carte.


1

È sempre perfetto ottenere feedback sulla comunità come detto. Ma dove trovare community e persone che proveranno a provarlo? Pubblicarlo su alcuni forum di giochi indie ti aiuterà, ma il problema sarà ottenere un feedback reale.

Solo il pochi percento delle persone che testeranno un gioco ti scriveranno la loro esatta configurazione e i problemi che si sono verificati. La gente non lo fa e basta. Un modo molto migliore è abilitare una sorta di benchmark con la lettura della configurazione del sistema degli utenti. Chiedi all'utente di eseguire alcuni benchmark a un pulsante. Offri alcuni numeri e orari (sì, piace alla gente :-)) e lascialo confrontare con altri utenti (con l'invio di dati) ... Sarà di aiuto.

E poi hai un database pieno di configurazioni, risoluzione dello schermo, tempi di rendering e funzionalità fallite ...

Se sei su Windows chiamando DXdiag ti aiuterà a leggere la configurazione degli utenti. Ma ci sono alcuni programmi che puoi usare su altri sistemi.


1

Come menzionato da altri, il modo migliore è quello di ottenere una beta e raccogliere feedback della comunità per ottenere risultati affidabili.

Vorrei anche suggerire l'uso di ESXi. È una soluzione di macchina virtuale di VMWare. Non lasciarti scoraggiare perché è una soluzione VM. ESX è molto più basso livello.

Questo sarebbe probabilmente l'ideale per te poiché hai una macchina. È possibile testare diversi sistemi operativi, configurazioni hardware (escludendo l'hardware grafico, ESXi userebbe qualunque cosa tu abbia installato sul tuo computer).

Fondamentalmente è il suo sistema operativo molto snello che puoi installare altri sistemi operativi. Lo usiamo al lavoro per compatibilità tra molti sistemi operativi. È molto veloce e affidabile, quasi reattivo come una macchina alla vaniglia.

So che i requisiti hardware sono ciò che stai cercando ed ESXi ha una funzione molto bella in cui puoi limitare la quantità di RAM, CPU o spazio su disco utilizzata dal sistema operativo e potenzialmente emulare il modo in cui il tuo gioco funzionerebbe su qualsiasi cosa da un basso fine CPU o memoria insufficiente, utilizzo CPU o memoria di fascia alta (limitato dall'hardware effettivo).

Quindi se avessi un PC con specifiche piuttosto elevate potresti installare ESXi su di esso, installare qualsiasi sistema operativo tu volessi e giocare con l'uso della CPU e della memoria (credo che tu possa anche modificare il numero di core che usa anche il sistema operativo!)

Ecco un link ad esso: http://www.vmware.com/products/vsphere-hypervisor/index.html

La cosa migliore a riguardo? È gratis al 100%!


0

L'esecuzione di una sorta di strumento di profilazione sarebbe un modo. Per i programmi Java è possibile utilizzare VisualVM ( https://visualvm.github.io/ ). Wikipedia ne elenca alcuni altri. Vedi: https://en.wikipedia.org/wiki/List_of_performance_analysis_tools . Lo stesso vale per il debug della memoria. Vedi: https://en.wikipedia.org/wiki/Memory_debugger

Fondamentalmente questo equivale a controllare la memoria e l'utilizzo della CPU a intervalli regolari durante l'esecuzione del programma / durante il gioco. Quindi calcoli un intervallo medio ed è quello di cui ha bisogno la maggior parte del tempo. Idealmente, questo dovrebbe essere automatizzato (per coerenza e accuratezza) e si desidera escludere gli importi di tali risorse consumate, condivise o utilizzate da altri processi. Ci potrebbero essere alcuni temi prioritari che nascondono il fatto che il programma potrebbe utilizzare più memoria se fosse disponibile. Ad esempio, se il sistema operativo fosse super occupato, il programma potrebbe fondare un po 'la memoria insufficiente.

Alla fine devi testare / benchmark / profilo e quindi analizzare quei test. È utile disporre di una metrica delle prestazioni predefinita da confrontare. Ad esempio in un FPS potresti volere più di 30 FPS per giochi giocabili / divertenti. In base a ciò, imposteresti la barra minima a / sopra le specifiche hardware necessarie per soddisfare quei 30+ FPS in una certa percentuale del tempo (è sempre possibile che l'utente esegua troppo in una volta e causi arresti anomali e blocchi).

Come altri hanno già detto, hai davvero bisogno di altre persone per testarlo su una gamma di hardware diverso. In un mondo ideale avresti un gruppo di gruppi con hardware simile all'interno di un gruppo e conduresti un qualche tipo di controllo rispetto ai test degli esperimenti per vedere se più / meno memoria, CPU, GPU contano quando gli altri fattori vengono mantenuti costanti.

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.