En un MMO, y estoy tratando de recopilar datos sobre los comportamientos de los usuarios con el fin de modificar las reglas del juego para lograr la máxima satisfacción del usuario.
Claramente, una forma de hacerlo es transferir manualmente cosas específicas a una aplicación, como se podría usar Console.WriteLine()
para ver el contenido de una variable, o la StopWatch()
clase para ver cuánto tiempo lleva ejecutar algo. Pero puede usar un perfilador en lugar de StopWatch, y puede usar un depurador en lugar de WriteLine.
¿Cómo debo recopilar mis datos? ¿Existen técnicas generalizadas para instrumentar una aplicación para observar el comportamiento del usuario, o alguna forma de técnica de instrumentación de código?
Además, solo me interesan las técnicas de recolección; puede suponer que ya sé cómo transmitir, almacenar y analizar dichos datos.
La "técnica" aquí es tan simple que casi no merece ser llamada como tal: solo registra los datos de los sistemas de juego que cree que son relevantes.
La forma en que registra esos datos (en una base de datos, en archivos, lo que sea) es demasiado amplia para discutir aquí (y las técnicas y patrones no son particularmente específicos del desarrollo del juego en cualquier caso, lo que los hace más adecuados para la discusión sobre SO), como es La cuestión de qué sistemas son relevantes. No hay técnicas automáticas inteligentes para responder esas preguntas; eso sería una hazaña de la inteligencia artificial.
Lo que quiere asegurarse con un juego donde hay un componente de servidor es que el servidor debe hacer todo el registro que pueda. No se puede confiar en nada de lo que obtiene del cliente, y especialmente si va a utilizar esta información para adaptar los cambios al juego, no desea que los jugadores puedan manipularlo.
El cliente solo debe registrar y transmitir estadísticas a las que el servidor normalmente no tendría acceso también. Por ejemplo, si desea grabar mapas de calor de clics en la interfaz de usuario, eso probablemente solo sea factible en el cliente.
fuente
En un MMO ya tienes datos sobre dónde va el usuario, qué misiones realiza y qué equipo usa para enviar al servidor.
Otra información que puede interesarle es cómo usan las diferentes interfaces gráficas, cuánto tiempo mantienen abiertas las pantallas de estadísticas e inventario. Por ejemplo, puede registrar la cantidad de veces que se ha activado una función con el mouse y el teclado.
Un factor importante es permitir al usuario optar por no participar (o hacer que la recopilación se suscriba) de la recopilación de datos (no críticos) para cumplir con las normas de privacidad. Y para permitir que el servidor decida qué datos se deben registrar durante la sesión del juego / la próxima hora para ahorrar a sus jugadores algo de ancho de banda.
fuente