domingo, 14 de febrero de 2016

Aleatoriedad percibida


La aleatoriedad suele ser muy importante a la hora de crear un juego, ya que permite generar un elevado número de posibilidades mediante la combinación de unos pocos elementos. Por ejemplo, solo con combinar tres elementos de cada uno de los cuales haya cuatro posibilidades tendremos nada menos que 4 × 4 × 4, es decir ¡64 posibilidades por tan solo 12 elementos! Una fantástica manera de rentabilizar nuestro esfuerzo, ¿no?

Si embargo, en la práctica es habitual que los primeros resultados que obtenemos al incorporar aleatoriedad a un juego no sean tan buenos como esperábamos, ya que el desarrollo del juego suele ser extrañamente monótono y repetitivo, cuando esperábamos justo lo contrario. El problema, en este caso, no suele estar en lo difícil que es crear un número realmente aleatorio (que también lo es), sino en la propia definición de los números aleatorios.


Los números aleatorios se caracterizan precisamente por ser una sucesión en los que cada elemento tiene siempre la misma probabilidad de ocurrencia. Continuando el ejemplo anterior, imaginemos que queremos elegir 3 veces un número del 1 al al 4. Si la primera vez obtenemos aleatoriamente un 3, el número siguiente puede ser nuevamente cualquier número del 1 al 4. Por tanto, las secuencias 1-1-1, 2-2-2, 3-3-3, 4-4-4, son totalmente posibles, aunque sean poco probables. Y curiosamente, al jugador estas sucesiones obtenidas al azar y que tienen la tendencia a aparecer con mayor frecuencia de lo que esperamos, tendrá la sensación de que son... pues... poco aleatorias.

Ya en QuizSapiens tuvimos que hacer un esfuerzo muy superior al previsto en un principio para que la selección de las preguntas no solo fuera aleatoria, sino que lo fuera. Aunque el método para abordar para caso es diferente, hemos condensado nuestras ideas sobre la aleatoriedad en el siguiente concepto:

Aleatoriedad percibida: sucesión de elementos tal que un ser humano es incapaz de apreciar en ella ningún otro patrón que no sea, precisamente, la imposibilidad de encontrar un patrón.

Este concepto no solo es muy útil para enriquecer la experiencia del jugador sino que también ayuda a que el jugador disfrute del máximo potencial del juego en un tiempo mínimo posible.

Como ejemplo muy simplificado, recientemente nos encargamos de la elaboración de un sencillo algoritmo encargado de seleccionar canciones y, como era de suponer, asignarles un número a cada una y elegir números al azar resultó no ser una buena idea. Nuestro algoritmo final elige un conjunto de 10 canciones y las almacena de manera que no se repitan hasta que se hayan reproducido la mitad de las canciones de la lista. De esta manera, evitamos el patrón «las mismas canciones se repiten con demasiada frecuencia», pero también el patrón «no se repiten las mismas canciones hasta que ha sonado la lista completa», que podría ser igualmente molesto. Por supuesto, se podría complicar hasta el infinito el sistema de selección para ofrecer al usuario una experiencia «agradablemente aleatoria» y es que la aleatoriedad, tal como decía Óscar Wilde de la espontaneidad, es una pose dificilísima de mantener.