Installazione e manutenzione dei giochi
Questo articolo descrive una serie di procedure consigliate che possono aiutare a ridurre la frustrazione dell'utente circa il tempo necessario per installare un gioco, impedire chiamate di supporto non necessarie e consentire agli utenti di iniziare a giocare il gioco il più rapidamente e senza dolore possibile.
Installazione iniziale
Gli utenti acquistano giochi perché amano giocare loro, non perché amano installarli. L'installazione di un gioco deve essere il più veloce, semplice e il più doloroso possibile per l'utente finale. Idealmente, gli utenti finali non dovrebbero nemmeno vedere un'interfaccia utente di installazione; dovrebbero essere in grado di rilasciare il disco del gioco nel vassoio e iniziare a giocare.
Ottimizzazione dell'interfaccia utente di installazione
Gli aspetti comuni delle interfacce utente di installazione del gioco esistenti interferiscono con l'esperienza dell'utente finale desiderata:
Porre all'utente domande non necessarie.
Ad esempio, molti giochi chiedono se l'utente vuole installare DirectX. Se il gioco richiede l'esecuzione di Microsoft DirectX e la versione corretta di DirectX non è già installata, il gioco deve semplicemente installare DirectX.
Porre le domande dell'utente a cui la maggior parte degli utenti risponderà nello stesso modo.
Per gli utenti tipici, le impostazioni predefinite per il percorso di installazione, menu Start percorso e così via, sono tutte appropriate. Offrire opzioni avanzate per gli utenti che vogliono modificare queste impostazioni.
L'interfaccia utente di installazione deve essere progettata per consentire all'utente tipico di iniziare a giocare il gioco il prima possibile. Se l'esecuzione automatica è abilitata nel computer dell'utente, ovvero l'impostazione predefinita, il programma di installazione deve presupporre che l'utente voglia giocare il gioco il prima possibile, ignorando eventuali domande non necessarie. Il programma di installazione deve iniziare a installare il gioco nel percorso di installazione predefinito, preferibilmente usando un programma di installazione simile a quello descritto in Installa su richiesta. È opportuno consentire agli utenti di modificare le impostazioni di installazione prima di avviare automaticamente l'installazione. Tuttavia, questa operazione deve essere eseguita richiedendo all'utente di premere una chiave per le opzioni di installazione avanzate e quindi procedere automaticamente con le opzioni predefinite se l'utente non raggiunge tale chiave entro cinque o dieci secondi.
Se l'esecuzione automatica non è abilitata nel computer dell'utente, il programma di installazione deve presupporre che l'utente non desideri che il programma di installazione inizi l'installazione automatica del gioco. Se il programma di installazione viene avviato da alcuni mezzi diversi da AutoRun, dovrebbe avviare l'interfaccia utente di installazione avanzata.
Riduzione del tempo necessario per l'installazione
La maggior parte dei giochi di Microsoft Windows oggi richiede da cinque minuti a mezz'ora per completare il processo di installazione. Al contrario, la maggior parte dei giochi console richiede non più di trenta secondi dal momento in cui l'utente inserisce il CD del gioco al momento in cui l'utente può giocare il gioco. Questa differenza è dovuta al fatto che la maggior parte dei giochi windows sono progettati per eseguire la maggior parte, se non tutti, del loro contenuto dal disco rigido del computer; le console, che non dispongono di un luogo in cui archiviare in modo permanente grandi quantità di contenuto, richiedono che il contenuto venga eseguito dai supporti di origine. Durante il caricamento del contenuto dal disco rigido locale, i tempi di caricamento del gioco sono più veloci, il lato negativo è che tutto il contenuto deve essere copiato dal supporto di origine al disco rigido a un certo punto. La maggior parte dei giochi di Windows sceglie di copiare tutto il contenuto sul disco rigido contemporaneamente, come parte di un processo di installazione. Questo impedisce all'esperienza iniziale dell'utente con il gioco facendo in modo che l'utente guardi un indicatore di stato per alcuni minuti prima di poter giocare il gioco.
Esistono due approcci che possono essere usati per ridurre al minimo il tempo impiegato per l'installazione iniziale del gioco: Installazione minima e Installazione su richiesta.
Installazione minima
In uno scenario di installazione minimo, il gioco installa solo un set minimo di contenuto sul disco rigido. In genere, questo è costituito solo dal file eseguibile del gioco e dalle DLL. Il resto del contenuto è accessibile direttamente dal supporto di origine. Questo riduce drasticamente il tempo necessario per l'installazione, poiché il file eseguibile di un gioco è raramente superiore a 10-20 MB. Lo svantaggio è che il gioco richiede più tempo per caricare il contenuto durante il gioco, perché deve caricarlo dal supporto di origine più lento.
Per creare una configurazione di installazione minima in un'installazione basata su Windows Installer:
Raggruppare tutti i componenti da installare nel disco rigido in una funzionalità contrassegnata per l'installazione in locale.
Questa funzionalità verrà definita funzionalità "Bootstrap".
Raggruppare tutti i componenti da eseguire dal supporto di origine in una funzionalità contrassegnata come "esecuzione dall'origine".
Quando si apre un file che potrebbe trovarsi nel supporto di origine, usare la funzione MsiGetComponentPath per determinare il percorso del file, anziché impostare come hardcoded il percorso.
In questo modo si garantisce che il file possa essere trovato anche se la lettera di unità dell'unità CD/DVD dell'utente cambia.
Comprimere il contenuto che rimane sul CD/DVD.
La quantità di tempo di CPU impiegato per decomprimere il contenuto in genere sarà nascosta dalla velocità di trasferimento lenta dei dati dall'unità CD/DVD.
Raggruppare il contenuto in file contigui di grandi dimensioni e accedervi in ordine sequenziale.
I tempi di ricerca delle unità CD/DVD sono abysmal rispetto a quelli dei dischi rigidi e la maggior parte delle unità CD/DVD non raggiunge i picchi di velocità di trasferimento, a meno che non stia leggendo un file contiguo di grandi dimensioni.
Disporre il contenuto del CD/DVD nell'ordine in cui è probabile che sia accessibile.
I tempi di ricerca vengono notevolmente ridotti quando si accede ai file nello stesso ordine del layout su disco.
Installare su richiesta
In uno scenario di installazione su richiesta, come per l'installazione minima, il gioco viene inizialmente installato nel disco rigido solo i file necessari per avviare il gioco. Tuttavia, invece di accedere al contenuto rimanente dal supporto di origine ogni volta che è necessario, il gioco installa effettivamente ogni parte di contenuto sul disco rigido perché è necessario per la prima volta e quindi accede dal disco rigido locale in ogni uso successivo. Il tempo necessario per l'installazione iniziale è ridotto come in per un'installazione minima, ma dopo la prima volta che si accede a ogni parte di contenuto, i tempi di caricamento migliorano.
Per creare una configurazione di installazione su richiesta in un'installazione basata su Windows Installer:
Raggruppare tutti i componenti da installare inizialmente nel disco rigido in una funzionalità contrassegnata per l'installazione in locale.
Si noti che questa operazione è identica alla funzionalità Bootstrap per un'installazione minima.
Raggruppare il contenuto rimanente in più funzionalità in base ai componenti che è probabile che vengano usati insieme.
Ad esempio, in un gioco basato su livello raggruppare tutto il contenuto usato in un determinato livello in un'unica funzionalità. Si noti che Windows Installer consente di condividere un componente da più funzionalità, quindi se si dispone di contenuto usato su più livelli, è possibile aggiungere tale contenuto alle funzionalità per tutti i livelli necessari senza replicare il contenuto. Tutte queste funzionalità devono essere contrassegnate come "Annunciate", il che significa che inizialmente non verranno installate, ma possono essere installate in un secondo momento in base alle esigenze.
Quando è necessario un file, verificare prima di tutto se il file è già installato usando la funzione MsiQueryFeatureState.
Se non è ancora installato (ovvero lo stato è INSTALLSTATE_ADVERTISED), chiamare la funzione MsiConfigureFeature per installare la funzionalità in locale. Quando si apre il file dopo l'installazione, chiamare MsiGetComponentPath per determinare il percorso del file. Anche se non strettamente necessario per questo scenario (poiché il contenuto verrà sempre installato nel disco rigido prima che venga usato), questo semplifica il supporto dell'installazione minima oltre all'installazione su richiesta.
Se possibile, prevedere il contenuto che sarà probabilmente necessario a breve e installarlo in background durante il tempo di inattività.
L'installazione in background è più appropriata quando il gioco è a un punto che non ha bisogno di ogni ultimo once di prestazioni fuori dal computer; ad esempio, durante la visualizzazione di un film introduttivo, una scena di taglio, un menu e così via.
Crea un'opzione nel menu delle opzioni del gioco per forzare l'installazione di tutto il contenuto rimanente.
Per implementare questa funzionalità, creare una funzionalità padre di tutte le funzionalità install-on demand e quindi chiamare MsiConfigureFeature per installare questa funzionalità master in locale. In questo modo verranno installate anche le sottofeature in locale.
Il layout del contenuto deve essere simile a quello per un'installazione minima, ad eccezione del fatto che il contenuto deve essere raggruppato solo con altri contenuti che potrebbero essere necessari contemporaneamente (ad esempio, tutto il contenuto per un livello deve essere insieme).
Gioco post-installazione
Esecuzione automatica
Per giocare a un gioco già installato, l'utente deve rilasciare solo il disco di installazione nel vassoio dell'unità. La prima cosa che il file eseguibile autorun sul disco deve fare è controllare se il gioco è già stato installato e, in tal caso, avviare il gioco. Supponendo che il gioco sia stato installato usando un'installazione basata su Windows Installer, il controllo per determinare se il gioco è installato può essere eseguito con una singola chiamata alla funzione MsiQueryProductState.
Conversione di un'installazione install-on-demand in un'installazione completa
Mentre un'installazione install-on-demand consente all'utente di iniziare a giocare il gioco molto prima di un'installazione completa, un utente potrebbe voler installare in modo esplicito il resto del contenuto del gioco sul disco rigido locale. L'utente potrebbe voler essere in grado di riprodurre il gioco senza richiedere il supporto di origine o potrebbe semplicemente voler evitare i tempi di caricamento più lunghi del gioco che derivano dall'installazione di contenuti su richiesta. Se l'installazione del gioco usa Windows Installer, il gioco può fornire un'opzione nell'interfaccia utente delle opzioni nel gioco per completare l'installazione del contenuto rimanente. Quando l'utente seleziona questa opzione, il gioco può chiamare MsiConfigureFeature per forzare l'installazione delle funzionalità rimanenti in locale. Non è necessario generare un'applicazione di installazione separata per farlo.
Manutenzione del software e del contenuto del gioco
Uno dei vantaggi offerti dai giochi di Windows rispetto ai giochi console è la relativa facilità con cui l'editore può rilasciare gli aggiornamenti al gioco dopo la sua versione iniziale. Se questi aggiornamenti introducono nuovi contenuti o si risondono semplicemente bug, è importante rendere il processo di aggiornamento il più semplice possibile per l'utente finale. Il processo di aggiornamento è ancora più importante per i giochi online, che in genere richiedono che tutti gli utenti eseguano la versione più recente del gioco per connettersi.
Verifica automatica della disponibilità di aggiornamenti
Gli utenti non devono ricordarsi di cercare patch. Se è disponibile un aggiornamento per il gioco, l'utente dovrebbe almeno ricevere una notifica e, idealmente, la patch dovrebbe essere già scaricata.
Un modo semplice per verificare la disponibilità di aggiornamenti per un gioco consiste nel connettersi a un server Web ospitato dall'editore usando un URL specifico e scaricare un file di testo che specifica il numero di versione della versione disponibile più recente del gioco, insieme a un URL da cui scaricare un pacchetto che aggiornerà il gioco alla versione più recente.
Verificare la disponibilità di aggiornamenti ogni volta che l'utente gioca il gioco è adeguato per assicurarsi che l'utente esegua la versione più recente. Tuttavia, se l'esistenza di un nuovo aggiornamento viene individuata immediatamente prima che l'utente tenti di riprodurre il gioco, l'utente potrebbe essere costretto a ritardare la riproduzione del gioco fino al termine del download dell'aggiornamento. Per aggiornamenti di grandi dimensioni o connessioni lente, questo ritardo potrebbe essere nell'ordine di ore. Per evitare di forzare l'attesa dell'utente prima di giocare, il gioco può usare l'Utilità di pianificazione per pianificare controlli periodici per i nuovi aggiornamenti. Se viene rilevato un aggiornamento, il gioco può iniziare a scaricare immediatamente l'aggiornamento, in modo che sia probabile che sia completamente scaricato e pronto per l'installazione alla successiva riproduzione del gioco.
Download automatico delle patch
Dopo che il gioco ha rilevato che è disponibile un nuovo aggiornamento, dovrebbe iniziare immediatamente a scaricare l'aggiornamento. Poiché l'attività che verifica la disponibilità di aggiornamenti viene in genere eseguita automaticamente in background, il download deve essere il più discreto possibile. Il servizio trasferimento intelligente in background (BITS) è una funzionalità del sistema operativo che consente alle applicazioni di scaricare file da Internet anche se l'applicazione stessa non è in esecuzione. I processi di download BITS vengono eseguiti solo quando l'utente è connesso e solo quando il computer è già connesso alla rete. BITS non tenterà di forzare la connessione del computer alla rete autonomamente. Se l'utente si disconnette dalla rete o si disconnette, il processo BITS viene sospeso e riprenderà a scaricare la volta successiva che l'utente accede e si connette alla rete. L'applicazione può configurare i processi BITS in modo da usare solo la larghezza di banda di rete che altrimenti rimarrà inutilizzata, per impedire al processo di influire sulle prestazioni di qualsiasi altra applicazione che potrebbe usare la rete (ad esempio, un gioco online). BITS è disponibile in Windows XP e Windows 2000 Service Pack 3.
Risorse aggiuntive
Per altre informazioni sulle tecnologie a cui si fa riferimento in questo articolo, vedere gli argomenti seguenti:
- Windows Installer
- Utilità di pianificazione
- Servizio trasferimento intelligente in background (BITS)
Per altre informazioni sull'uso di Windows Installer per i giochi, passare alla colonna Driving DirectX del mese successivo, "Introduzione a Windows Installer per sviluppatori di giochi".