Come devo raccogliere i dati sul comportamento degli utenti in un MMO?


9

In un MMO, e sto cercando di raccogliere dati sui comportamenti degli utenti allo scopo di modificare le regole del gioco per ottenere la massima soddisfazione dell'utente.

Chiaramente un modo per farlo è quello di inserire manualmente cose specifiche in un'applicazione, proprio come si potrebbe usare Console.WriteLine()per visualizzare il contenuto di una variabile o la StopWatch()classe per vedere quanto tempo impiega l'esecuzione per eseguire qualcosa. Ma puoi usare un profiler al posto di StopWatch e puoi usare un debugger al posto di WriteLine.

Come devo raccogliere i miei dati? Esistono tecniche generalizzate per la strumentazione di un'applicazione per osservare il comportamento dell'utente o qualche forma di tecnica di strumentazione del codice?

Inoltre, sono interessato solo alle tecniche di raccolta; puoi presumere che io sappia già come trasmettere, archiviare e analizzare tali dati.

Risposte:


14

Stiamo utilizzando l' interfaccia / architettura orientata ai comandi per controllare l'attività degli utenti.

Significa che le richieste al server causano l'istanza del lato server di istanze di classi che rappresentano comandi (azioni atomiche che l'utente può preformare).

Ad esempio, supponiamo che l'utente effettui un acquisto in un negozio di articoli:

//We could have done something like
someShop.sell(item, player); // This function deducts money from the player
                             // and stores the new item in their inventory

//Instead we do this:
$buyItemCmd = new BuyItemCommand(item); // The player is already known from the sessionId
$cmdExecuter.run($buyItemCmd);

Ora aggiungiamo le funzionalità di registrazione / auditing cmdExecuterche si applicano a tutti i comandi. In questo modo c'è poca o nessuna duplicazione del codice e possiamo disattivare il controllo, riconfigurando specifiche costanti della classe di comando e / o modificando cmdExecuter.

Aiuta a mantenere le cose organizzate. Attualmente creiamo un record di database per ogni comando "importante". Questo aiuta a tracciare comportamenti interessanti per noi.

Ulteriore lettura
dell'interfaccia orientata ai comandi di Martin Fowler


Questo è nella vena di quello che stavo cercando, grazie.
Robert Harvey,

@RobertHarvey (Se decidi di usarlo) Mantieni le classi di comando snelle, dopo tutto sono metodi. Dovrebbero essere molto magri.
AturSams,

Il vantaggio è che possiamo vedere esattamente quali buff sono stati applicati all'utente e quali mostri ha combattuto quando c'è stato un picco in xp / s. A volte abbiamo bisogno di eliminare alcuni dati ma al momento non c'è molta attività quindi non ci riguarda molto.
AturSams,

7

La "tecnica" è qui così semplice che quasi non merita di essere chiamata come tale: devi solo registrare i dati dei sistemi di gioco che ritieni rilevanti.

Come cui registrate quei dati (su un database, su file, qualunque cosa) è troppo ampio per essere discusso qui (e le tecniche e i modelli non sono particolarmente specifici per lo sviluppo di giochi in ogni caso, rendendoli più adatti per la discussione su SO), così come è la questione di quali sistemi siano rilevanti. Non esistono tecniche automatiche intelligenti per rispondere a queste domande; sarebbe una vera prodezza dell'intelligenza artificiale.

La cosa di cui vuoi essere sicuro con un gioco in cui è presente un componente server è che server dovrebbe fare tutto il logging possibile. Nulla di ciò che ottieni dal cliente può essere attendibile, e specialmente se utilizzerai questi dati per personalizzare le modifiche al gioco, non vuoi che i giocatori possano manometterle.

Il client dovrebbe solo registrare e trasmettere statistiche a cui normalmente anche il server non avrebbe accesso. Ad esempio, se si desidera registrare mappe di calore dei clic dell'interfaccia utente, probabilmente è possibile solo sul client.


2

In un MMO disponi già di dati su dove sta andando l'utente, quali ricerche intraprende e quale equipaggiamento usa inviato al server.

Altri dati che potrebbero interessarti sono il modo in cui usano le varie guide, per quanto tempo mantengono aperte le schermate delle statistiche e dell'inventario. Ad esempio, è possibile registrare il numero di volte in cui una funzione è stata attivata con il mouse rispetto alla tastiera.

Un fattore importante è consentire all'utente di annullare (o effettuare la raccolta opt-in) della raccolta di dati (non critici) per conformarsi alle normative sulla privacy. E per consentire al server di decidere quali dati devono essere registrati durante la sessione di gioco / la prossima ora per risparmiare un po 'di larghezza di banda ai tuoi giocatori.


1
e non dimenticare i tassi di successo e insuccesso per ricerche specifiche, un buon modo per scoprire se parti del gioco sono troppo difficili o troppo facili.
jwenting
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.