Ir al contenido principal

Back to work!

¡Hola! Estoy emocionado de anunciar que he retomado la actividad en mi blog "Jugando Haciendo Juegos" después de una pausa. En esta nueva etapa, el blog se centrará en proporcionar información valiosa desde dentro de la industria de los videojuegos, incluyendo trucos, curiosidades, herramientas, recursos y consejos sobre cómo crear videojuegos desde la comodidad de tu habitación utilizando Unity. El blog ya cuenta con varios artículos útiles que pueden servir como recursos iniciales. Por ejemplo, hay guías detalladas sobre cómo hacer copias de seguridad de tu código de Unity con GitHub, lo que es crucial para la gestión de versiones y el trabajo colaborativo. También encontrarás tutoriales sobre el diseño de interfaces de usuario, el desarrollo de controladores de personajes y cómo crear un PressKit para tu juego. Mi objetivo es compartir conocimientos prácticos y experiencias personales para ayudar tanto a principiantes como a desarrolladores más avanzados a mejorar sus hab

Usabilidad en los juegos (Parte 1)

Una de mis ultimas lecturas ha sido "The Gamer's Barin" de Celia Hodent donde entre muchas cosas explica los conceptos básicos de la usabilidad en los juegos. Os presento en una serie de dos artículos las conclusiones mas importantes.

La usabilidad es el primer paso para ofrecer una excelente experiencia de usuario porque intenta comprender cuando realizar tareas simples en un juego puede crear importantes obstáculos que pueden, en casos extremos, llevar a los jugadores a dejar de jugar el juego. En el mejor de los casos, un juego con mala usabilidad se experimentará como molestias o puede impedir que los jugadores descubran o disfruten de algunas características y en el peor de los casos, tu excelente juego puede volverse totalmente imposible de jugar. Para asegurar que un juego tenga una buena usabilidad se trata de eliminar las frustraciones innecesarias e indeseadas en aquello que el jugador percibe.


Si el juego es lo suficientemente innovador, tal vez pueda funcionar con problemas de usabilidad significativos. Si los jugadores están dispuestos a hacer un esfuerzo extra para superar las frustraciones porque están oyendo un zumbido o porque todos sus amigos lo están jugando.

Por ejemplo, Minecraft funcionó con algunos problemas de usabilidad porque ofrecía algo único y la experiencia creativa era profunda, como ningún otro cuando fue publicado. Sin embargo, es probable que los sucesores de Minecraft, que son inherentemente menos innovadores, no tendrán ese lujo. 

En el caso de juegos gratuitos, la facilidad de uso es aún más crítica porque los problemas podrían afectar el compromiso inicial o retención porque el compromiso de los jugadores para jugar es bajo cuando no tienen que aportar ningún dinero por adelantado. Pequeñas frustraciones podrían impedirles ir más allá de los primeros minutos de tu experiencia de juego. Esto también podría impactar dramáticamente sus ingresos si los jugadores, por ejemplo, no entienden por qué o cómo comprar un artículo en la tienda virtual del juego.

Los profesionales de interfaces de usuario a menudo dicen que una interfaz utilizable es aquella que se siente "transparente" al usuario. Sin embargo, este concepto puede ser mal entendido, especialmente cuando se considera el HUD (barra de estado) de un videojuego. El HUD (heads-up display) es la representación visual de información en los videojuegos y a veces los desarrolladores de juegos a veces creen que eliminar la barra de estado por completo ofrecería una mayor inmersión a los jugadores, pero podría terminar ser contraproducente porque la barra de estado es para evitar que los usuarios tengan que recordar información importante o tengan que buscarla. Aunque ciertamente debes evitar un HUD torpe y abrumador.



Eliminarlo la barra de estado por completo es menos inmersión para los jugadores porque necesitan abrir menús para obtener la información que necesitan, lo que los lleva fuera del mundo del juego. Lo mejor seria dar información útil directamente dentro del mundo del juego en lugar de a través de un HUD. Esta solución resulta ser más inmersiva y elegante. Pero hay que tener en cuenta que es mucho más difícil de hacer bien.  Un ejemplo de una interfaz bien resulta es el caso del sistema de salud en Dead Space esta integrada en el propio personaje.



Una forma más precisa de detectar la causa de una mala usabilidad consiste en observar y analizar el comportamiento de los jugadores que manipulan el juego. Durante las pruebas de usabilidad, como las pruebas de juego, donde los jugadores juegan el juego sin guía (como si estuvieran en casa) la experiencia del usuario es relativa al usuario final. Por lo tanto, es necesario verificar lo que experimentan y analizar lo que es. Hay que analizar la posible causa de sus frustraciones. La repetición de pruebas es clave para el desarrollo de un videojuego por lo que siempre será necesario el bucle de diseño-implementación-prueba



Las pruebas para el para software y diseño web a las que se hace referencia con más frecuencia fueron elaborados por el experto y consultor en usabilidad Jakob Nielsen (1994). Nielsen originalmente derivó un conjunto de diez heurísticas, o principios generales, para la interacción:
  1. Visibilidad del estado del sistema: el sistema debe transmitir información a usuarios con respecto a qué acciones se pueden hacer. Una vez que los usuarios han interactuado con el sistema, el sistema debe responder con mensajes rápidos y apropiados. Por ejemplo, Al hacer clic en el botón "Jugar", esperas un comentario que te informa que el juego se esta cargando.
  2. Proximidad entre el sistema y el mundo real: el sistema debería comunicarse utilizando un lenguaje y conceptos familiares para el público objetivo. El sistema también puede usar metáforas o analogías con lo real. Por ejemplo, en un juego, una mochila es una metáfora familiar para el inventario del jugador.
  3. Control y libertad del usuario: los usuarios pueden cometer errores o cambiar de opinión, por ejemplo, al comprar en línea. Permitiéndoles deshacer o cambiar la cantidad de un artículo en el carrito de compras o permitirlos eliminar un elemento fácilmente son ejemplos que permiten el control y la libertad del usuario.
  4. Consistencia y estándares: es importante seguir las convenciones de la plataforma porque las palabras, iconos o acciones familiares ayudarán a los usuarios a comprender como funciona el sistema Por ejemplo, la funcionalidad de búsqueda es representado tradicionalmente por un icono de lupa, que constituye una convención y es probable que ya sea entendido por los usuarios. En los juegos, por ejemplo, el El botón O (círculo) en Play Station 4 (PS4) generalmente se usa en los países occidentales para cancelar o volver al navegar por los menús.
  5. Prevención de errores: el sistema debe diseñarse de forma que se evite errores de usuario que puedan ocurrir. Si los jugadores están a punto de desmontar un objeto precioso (tal vez para obtener algunos ingredientes de elaboración) , solicite confirmación en caso de que haya sido un error.
  6. Reconocimiento en lugar de memorización: para minimizar la carga de memoria de un usuario, es importante para hacer visibles objetos, acciones y opciones. Evitar forzar que el usuario deba recordar la información de una parte del diálogo al siguiente. Del mismo modo, mostrando una imagen de todo la información y resaltando el botón que los jugadores necesitan presionar un cierto contexto no requiere que un jugador recuerde donde esta el botón, a diferencia de cuando solo se muestra la etiqueta del botón (símbolo).
  7. Flexibilidad y eficiencia de uso: ofrecer a los usuarios la posibilidad de personalización. La experiencia mejora al permitirles agregar o eliminar opciones y personalizar su interfaz. En juegos, por ejemplo, permitiendo una reasignación de controles es una buena práctica de usabilidad y accesibilidad.
  8. Diseño estético y minimalista: elimina todo lo irrelevante que distrae. Cada unidad extra de información actúa como ruido innecesario y el ruido necesita ser filtrado por los usuarios para que puedan identificar información relevante y centrarse en ello. En los juegos trata de eliminar toda la información innecesaria en el HUD y en los menús, especialmente en la pantalla de inicio
  9. Ayuda a los usuarios a reconocer, diagnosticar y recuperarse de errores: los mensajes de error deben utilizar un lenguaje sencillo para explicar con precisión el problema y sugerir una solución. Del mismo modo, en un juego no solo reproduzca un sonido molesto cuando los jugadores intentan disparar mientras no tienen municiones. Además del efecto de sonido, por ejemplo, puede mostrar un texto que diga: "¡Sin munición!"
  10. Ayuda y documentación: A pesar de que un sistema debe ser utilizable sin documentación, es importante ofrecer al usuario sistemas eficientes e inteligibles y ayuda cuando lo necesiten. Ayuda contextual, frecuentemente simbolizada por un signo de interrogación en un círculo, es un ejemplo de información adicional proporcionada donde podría ser necesario Los juegos no deben requerir manuales para jugar. Sin embargo, es una buena práctica recopilar todos los consejos de herramientas que se ven en el juego hasta ahora en un espacio dedicado que los jugadores pueden consultar si tienen olvidado de algo. 

En concreto las reglas generales para la interacción en juegos fueron definidas unos años mas tarde. Veamos algunos ejemplos de estas reglas enfocadas específicamente a videojuegos.

  • Los controles deben ser personalizables y predeterminados a la configuración estándar de la industria (Federoff 2002).
  • Se debe dar retroalimentación inmediatamente para mostrar el control del usuario (Federoff 2002).
  • Avanza el juego para aplicar presión al jugador, pero no para frustrarlo (Federoff 2002).
  • Proporcionar metas claras; presenta objetivos generales tanto a corto como a corto plazo (Desurvire et al. 2004).
  • El juego debe dar recompensas que sumergen al jugador más profundamente en el juego al aumentar sus capacidades (power-up) y expandir las posibilidades de personalización (Desurvire et al. 2004).
  • Los jugadores descubren la historia como parte del juego (Desurvire et al. 2004).
  • Evitar grandes bloques de texto (Schaffer 2007).
  • Los jugadores deben sentir que tienen el control; necesitan el tiempo y la información parar responder a las amenazas y oportunidades (Schaffer 2007).
  • No facilite que los jugadores se atasquen o se pierdan (Schaffer 2007).
  • La interfaz de usuario debe ser coherente (Laitinen 2008).
  • La terminología y el lenguaje utilizados en el juego deben ser fáciles de entender (Laitinen 2008).
  • La interfaz de usuario debe diseñarse de modo que evite que el jugador cometa errores que no son parte del juego (Laitinen 2008).

Comentarios

Entradas populares de este blog

El diseño de la interfaz de usuario

El estudio del diseño de interfaz de usuario en videojuegos es un tema que se ha estudiado en profundidad pero que muchos desarrolladores que empiezan no prestan mucha atención centrando su energía en las mecánicas del juego y especialmente el arte ya que muchas veces el éxito o el fracaso de un juego dependen de ello. Pero más lejos de la realidad la capacidad lúdica de un juego muchas veces también viene determinada por el diseño de la interfaz que hace de dialogo entre el jugador y el juego. Uno de los mejores análisis de las interfaces de usuario en videojuegos lo encontramos en los estudios realizados por Anthony Stonehouse y Marcus Andrews . El diseño de la interfaz de usuario en los juegos difiere de otro diseño de interfaz de usuario porque implica un elemento adicional: la ficción. La ficción involucra un avatar del usuario real, o jugador. El jugador se convierte en un elemento invisible, pero clave de la historia, como un narrador en una novela o película. Esta ficc

GitHub y Unity

Para el proyecto que estoy desarrollando voy a utilizar GitHub como repositorio de archivos y versiones. Aunque muchas veces uso el propio sistema de Unity, por el motivo que sea también vamos a utilizar un sistema general ampliamente utilizado por los desarrolladores de software. En primer lugar debemos tener una cuenta GitHub que nos podemos hacer gratuitamente. Una vez hecha vamos a utilizar un programa de gestión de versiones como es Sourcetree para gestionar el flujo de las versiones, ramas, etc. de nuestro juego. Una vez tenemos la cuenta de GitJub, si queremos utilizar SourcreTree necesitas una cuenta de Atlassian Bitbucket. Sin no disponemos de ella la podemos crear en el momento de la instalación o previamente a través de su página web. A partir de aquí solo tenemos que ejecutar Sourcetree y enlazar las cuentas. En el vídeo tenéis todo el proceso completo. Una vez tenemos en enlace hecho debemos enlazar con la cuenta de GitHub con la opción de Edit account

Como hacer copias de tu código de Unity con GitHub

Podriamos escribir un libro entero de las bondades de Git para el trabajo colaborativo y la gestión de versiones en un entorno como Unity. De hecho hay mucha literatura en internet para aprender a utilizar Git en todo tipo de entornos de programación. Así mismo para aquellos que empiezan seguramente lo primero que deberían aprender como hacer una copia de seguridad periódica de sus proyectos.. y ya habrá tiempo para, poco a poco aprender todo el potencial de una herramienta como esta. En su momento hice un tutorial para usar Git con una interfaz gráfica como SourceTree como punto de entrada al mundo de Git, pero en esta ocasión me gustaría explicar, paso a paso como utilizar GitHub para hacer copias de seguridad de tu proyecto en Unity. Para iniciar este proceso se deben hacer tres pasos: 1.- Crear una cuenta en GitHub En la pantalla principal de GitHub debemos crear una cuenta nueva (Sign up) y seguir el asistente para tener una cuenta gratuita con los parametros por defecto que nos