Joystick arcade

Estamos preparando, para el sábado 22 de mayo, una jornada temática en memoria de los videojuegos arcade: las máquinas que fueron responsables de juntar, en las salas recreativas, a muchos aficionados a los videojuegos durante las décadas 80 y 90 del siglo pasado.

Durante una de las actividades podrás montar tu propio joystick arcade, y utilizarlo en los torneos y otras actividades de la jornada. Los componentes necesarios son asequibles y muy sencillos de conectar. El proceso está detallado en el blog de Retro Parla, que hicieron algo similar previamente, y quizás vengan a echarnos una mano y todo 😊.

Este ya tiene unos años, está montado sobre una caja de plástico que ya venía perforada. En este taller haremos nosotros las cajas.

El formato es diferente a otros talleres anteriores, tendremos distancia entre mesas, y supondrá una aventura terminarlos a tiempo sin la ventaja que supone juntarnos para ayudarnos entre todos. Si quieres crear tu joystick arcade, tienes que conseguir los componentes por tu cuenta, antes del día de montaje. Puedes elegir a tu gusto la personalización, colores, tamaño, número de botones y todas sus características.

Los componentes se pueden conseguir en muchas tiendas online de artículos tecnológicos. Por unos 11 euros encontramos el kit completo de un modelo básico (22 euros un kit doble para 2 jugadores), enviado desde España y con los gastos de envío incluidos, a falta de la caja para montarlo. Si compras los componentes por separado tendrás mayor flexibilidad para personalizar tu joystick, y es la opción preferida.

Para evitar hacer publicidad, en este artículo no se mencionan sitios de compra, se pueden consultar en el hilo «fabricar joystick» del chat interno de Zenvoid Studio.

Palanca direccional

El terminador puede ser con forma de bola (más populares en Japón) o con forma de mango. La forma y el color es una cuestión de gustos personales.

Internamente tienen 4 interruptores, y puedes encontrar dos tipos de conexión:

  • Individual, con dos cables por cada interruptor. En la foto: joystick de la derecha con mango rojo.
  • Unidos en un conector de 5 pines (un cable por interruptor y otro compartido). En la foto: joystick de la izquierda con mango negro.

Si vas a crear la placa USB con un Arduino (consulta los apartados posteriores), es ligeramente más conveniente el modelo de 5 pines, pero cualquiera de los dos son válidos. Si prefieres comprar una codificadora USB ya preparada, comprueba que la conexión y el cable suministrado coinciden.

Las hitbox arcade fueron mencionadas durante nuestras reuniones por Elías, que tiene intención de crear una. Este tipo de controlador no lleva palanca, ambas manos utilizan botones, y pueden proporcionar una ventaja tan importante que han sido prohibidos en algunas competiciones. Por otro lado, requieren una adaptación, y a algunas personas nos sigue gustando jugar con el mango 😁.

Puerta restrictora (restrictor gate)

Es la pieza de plástico que se sitúa debajo de la palanca y determina la forma de su movimiento. Las formas más habituales son cuadrada, circular y octogonal. De nuevo, es una cuestión de gustos personales y motivo de interminables debates entre aficionados.

Para algunos juegos podría ser más conveniente una forma de restrictora en concreto, pero no hay ninguna que se pueda proclamar como la preferida universalmente, encontrarás opiniones diferentes si preguntas a personas diferentes.

Son baratas y fáciles de cambiar, normalmente van sujetas con 4 pestañas. Suele venir una restrictora con la palanca; si no te convence, puedes cambiarla por otra. Es una de las ventajas de crear un joystick personalizable.

Codificadora USB

La placa codificadora USB más habitual se puede ver en el artículo de Retro Parla. Muchos joysticks de Asia utilizan ese modelo, y vienen con los cables preparados para conectar fácilmente. Se las conoce en algunas tiendas con el nombre de «zero delay USB encoder», o parecido. Resulta que, a pesar de su nombre, tienen un retraso entre 1 y 2 frames, cosas del marketing.

No hay que obsesionarse demasiado con el frame perdido: para un uso normal puede servir perfectamente. Muchos de los mandos de consola y ordenador, incluso los oficiales, tienen también retraso a pesar de ser notablemente más caros.

Sin embargo, por sugerencia de Paco (que nos hablará sobre MiSTer durante la jornada), hemos probado una alternativa: el codificador DaemonBite, basado en Arduino.

Además de mejorar el tiempo de respuesta, hacer un joystick basado en Arduino y con firmware open source tiene un atractivo especial. Si se utiliza un clon de la placa «Pro Micro» compatible con Arduino, el precio es equivalente a la solución barata, pero manteniendo todas las ventajas. Podrás presumir de tener un joystick PRO metido en una fiambrera 🤪.

El inconveniente es que se tarda más en prepararlo. Si te decides por esta solución y no tienes experiencia con Arduino, te instalaremos el firmware y te ayudaremos a soldar los pines y cables el día 22 de mayo, durante el taller, pero recuerda avisarnos previamente para tener todo previsto.

Botones

Utilizaremos un diámetro de 30mm para los botones de acción, y 24mm para los de control. Suele ser la opción más habitual, pero puedes elegir otros si prefieres.

Cuidado con los modelos de mayor profundidad (pensados para montar en un mueble de recreativa) porque podrían no caber en algunas cajas.

Además del color, hay más opciones de personalización. Hay botones que hacen click al pulsarlos y otros que son más silenciosos. Algunos van iluminados con LEDs (y requieren mayor número de cables). Hay modelos en los que el botón tiene mayor resistencia a la pulsación (hay que darle más fuerte), una característica que a algunas personas les puede resultar incómoda y que parece ser más frecuente en los botones de mayor longitud. La descripción del vendedor no siempre indica todas sus características.

¿En qué caja montamos todo eso?

La solución de Retro Parla para las cajas me parece más interesante que comprar una preparada. Es más barato, más personalizable y, como habrás observado, a algunas personas nos llena de satisfacción complicarnos la vida haciendo cosas.

En cuanto al modelo de caja a utilizar, también hay diversidad de opiniones. Algunos preferimos un tamaño más grande, para apoyar cómodamente las manos. Si descartamos las fiambreras del supermercado, hay personas que se han decantado por la estética de las cajas de almacenaje de una famosa cadena de muebles que se venden desmontados (y que tienes que fijar a la pared para evitar que se los lleve el viento cuando entra corriente por la ventana).

Caja de electricidad de más de 300mm de largo, que se convertirá en joystick.

Para la disposición de los botones, existen plantillas listas para imprimir con los formatos más habituales. Seguramente llevaremos la mayoría de las cajas ya perforadas antes del día 22 de mayo, para evitar entretenernos demasiado.

¿Y si no quiero hacer un joystick?

Si ya tienes un joystick arcade, puedes traerlo. Si no tienes joystick ni tienes intención de crear uno en el taller, puedes traer un mando de PC o consola (PS3, PS4, XBOX) con conexión USB, para participar en otras actividades de la jornada. Es recomendable traerlo incluso si quieres montar un joystick, por si no te da tiempo a terminarlo durante el día.

Y si no tienes mando ni joystick, te dejaremos uno lleno de virus 😆. Recuerda usar alcohol antivirus después de utilizar un joystick o cualquier otro objeto compartido.

Cómo hacer un GDD (parte 1)

Este artículo es una continuación de la breve guía para nuevos proyectos. Los documentos de diseño de juego, típicamente abreviados como GDD (Game Design Document), se crean durante las etapas previas al desarrollo. Cuando hablamos de diseño de juego, no nos referimos únicamente al diseño gráfico, sino al conjunto del juego, a la idea completa que tenemos en la cabeza y que es necesario organizar, dividir y documentar para ayudar al resto del equipo a entenderla. Y también para ayudarte a ti, el diseñador del juego, a comprender mejor todos los aspectos de tu propia idea.

Las imágenes que ilustran este artículo pertenecen al documento de diseño de Anima, uno de los videojuegos presentados a CPCRetroDev 2020, el concurso de creación de videojuegos de la universidad de Alicante.

El GDD de Anima está creado por Carlos Perezgrín, y la estructura inicial del mismo fue propuesta por Fran Gallego, también conocido como Profesor Retroman. Mis agradecimientos a Carlos por haber compartido su documento y darme permiso para usarlo como ejemplo.

Si quieres, puedes usar los siguientes puntos como ideas para empezar con tu GDD. No es necesario extenderse mucho, un GDD no es un trabajo de la escuela, no tenemos que impresionar al profesor con un número elevado de hojas. Es un documento para ayudarte a ti y a todo el equipo, tiene que ser práctico.

Nombre del juego

Elegir un nombre es más difícil de lo que parece. Si aún no está decidido el nombre definitivo, se puede utilizar un nombre provisional de proyecto.

Breve descripción general

Imagina que alguien te pregunta cómo es tu videojuego. Pues eso es lo que tienes que explicar aquí. ¿En qué consiste?, ¿cómo se juega?, ¿es un arcade?, ¿requiere reflejos y habilidad?, ¿es un juego de rompecabezas o puzzle?, ¿cuales son los principales atractivos para el jugador?, ¿a qué tipo de público podría gustar?, ¿cómo es el nivel de dificultad?, ¿cuánto dura una partida?, ¿son partidas cortas de 1 minuto, o tiene un desarrollo largo?

Ejemplo del juego Ánima (descripción general)

Argumento e historia

Si el juego tiene argumento e historia, incluye un breve resumen de la idea argumental y presenta a los protagonistas.

Ejemplo del juego Ánima (historia)

En algunos casos no hay historia. Puede ser el caso si tu juego es un puzzle o juego de mesa con fichas y tablero.

Protagonista, personajes y objetos

Necesitarás algunos bocetos de los protagonistas, personajes secundarios, enemigos u objetos importantes del juego. Se puede juntar con el apartado anterior si los protagonistas están muy unidos con la historia.

Ejemplo del juego Ánima (protagonista)

Al principio, los gráficos del juego todavía no estarán creados, es suficiente con hacer un dibujo sencillo de la idea aproximada. Un dibujo hecho a mano en un cuaderno es una buena opción, rápida y efectiva; haz una foto y adjúntalo al documento. Después, el artista gráfico podría encargarse de crear bocetos más elaborados si se considera oportuno.

Ejemplo del juego Ánima (enemigos)

Otra opción es hacer descipciones textuales detalladas de tus personajes y cooperar desde el comienzo con el artista gráfico para crear los bocetos.

A veces podría no haber personajes ni enemigos, sólo unos pocos objetos. Este también puede ser el caso de muchos juegos de mesa o puzzle, pero a cambio tendrás que trabajar las reglas del juego con mucho detalle en el apartado de las mecánicas, no conseguirás librarte del GDD por elegir un juego de tipo puzzle 😉

¿Un jugador o varios jugadores?

Si es para un jugador, podrías necesitar inteligencia artificial o patrones fijos de movimiento de los enemigos, objetos y personajes controlados por el ordenador. Los detalles van en el apartado de mecánicas y diseño de niveles, en este apartado es suficiente indicarlo a nivel general.

Si hay opción de varios jugadores, puede ser en local (en el mismo ordenador, por turnos o simultáneos) o por red. Cuidado con el modo multijugador por red, puede ser sencillo en algunos casos, pero en otros podría complicar las cosas hasta niveles insospechados. Si no tienes experiencia en desarrollo multijugador, te recomiendo consultar con otras personas del grupo y buscar apoyo en esa materia previamente.

¿Es necesario guardar y continuar la partida?

Esta pregunta puede parecer opcional, pero es muy importante pensarlo desde el principio. Si no se tuvo en cuenta la opción de guardar la partida, pero quieres agregarla posteriormente, podría suponer un gran esfuerzo o incluso tener que replantear una buena parte de la programación del videojuego.

¿Tendrá versión móvil o es exclusivo de PC?

Para tener una versión jugable lo antes posible, puedes empezar con la versión de PC. La versión móvil puede hacerse posteriormente, sin mucha dificultad, siempre que el juego haya sido diseñado para ello.

Si tienes intención de que el juego funcione en móviles, hay que evitar mecánicas o características que no son adecuadas para una pantalla táctil, y en especial cualquier acción que requiera un ratón (coordenadas del puntero, doble click, botón derecho…). Si el juego está pensado exclusivamente para PC, tendrás mayor libertad en el diseño de pantallas, en el control, y en las mecánicas del juego.

La pantalla de un dispositivo móvil tiene unas dimensiones reducidas, y eso afectará al diseño del interfaz de usuario, el HUD (Heads-Up Display, la información que se presenta al jugador), el texto, tamaño de los botones y áreas interactivas.

El juego en detalle

Llega el momento de la descripción detallada de tu juego, las mecánicas, el diseño de niveles y pantallas, el interfaz de usuario…

Para evitar alargar demasiado este artículo (y también porque ya me cansé de escribir por hoy, todo sea dicho), continuaremos con la creación del GDD en la segunda parte, próximamente. ¿Verdad que fastidia cuando se interrumpe un artículo en la parte más interesante? XD

Guía para nuevos proyectos

Este artículo está dedicado a las tareas de organización en Zenvoid Studio, para planificar y desarrollar nuestros proyectos. Habrá continuaciones posteriores. Los procedimientos expuestos aquí están basados en los consejos y experiencias que, amablemente, han compartido con nosotros otros grupos dedicados al desarrollo de videojuegos.

Puede haber varios proyectos abiertos en paralelo, en distintas fases de realización. Cada persona decide en qué proyecto participar, según sus intereses. Puedes participar en varios proyectos al mismo tiempo, si dispones de tiempo y ganas para ello.

Quien propone un proyecto asumirá el papel de game designer. Puede haber más perfiles de tipo game designer en el equipo, pero sólo uno será el coordinador general y defensor del proyecto, que se encargará de zurrar con un látigo a los otros participantes cuando se duerman. Bueno, lo de zurrar con el látigo quizás correspondería al productor, pero de esos no tenemos. Ni látigos tampoco, estamos en ello.

Algunos proyectos requieren colaboración de múltiples perfiles. Puedes centrarte en la parte que más te gusta y contar con apoyo en las áreas que no son tu especialidad, o simplemente distribuir tareas para avanzar más rápido.

Veamos a continuación las tareas que tenemos que hacer antes de aventurarnos con el desarrollo. No es necesario seguir un orden concreto, se pueden hacer en paralelo.

Crear un prototipo del juego

Es opcional, en algunos casos será conveniente y en otros no será necesario. El prototipo no es el juego, es simplemente una muestra de ideas muy simplificada. Se lo mostraríamos al productor, si lo tuviésemos. Como no tenemos, me lo puedes enseñar a mi, e iré rápidamente a comprar un látigo 😉

Con el prototipo, organizaremos una presentación en una próxima reunión, lo mostraremos a todo el grupo para que sepan que tu idea es genial y se animen a participar.

Si tu especialidad es el arte visual, en lugar de un prototipo podrías crear arte conceptual y bocetos de la idea, que serán igualmente efectivos.

Y si no puedes crear un prototipo ni tampoco arte conceptual, un documento o presentación con la explicación detallada de tu proyecto servirá para que se entienda la idea. Como no tenemos forma de extraer información directa de cerebros ajenos (todavía), debes comunicar tus ideas al grupo de alguna manera.

Formar el equipo y elegir los perfiles

Si tienes la intención de hacerlo tú todo, no sería necesario formar equipo. Incluso en ese caso, siempre puedes contar con sugerencias, pruebas y ayuda puntual del grupo.

Lo más habitual es que necesites colaboradores, excepto cuando el proyecto es muy sencillo. Es improbable dominar todas las áreas y materias necesarias para crear un videojuego. Haz una lista de los puntos en los que necesitarás apoyo.

  • El diseñador del juego (game designer) serás tú, pero puedes elegir cooperar en el diseño con otra persona si lo crees conveniente.
  • Uno o varios programadores.
  • Arte visual. Los dibujos conceptuales y los gráficos finales del juego son tareas diferentes, pueden crearse por personas distintas, o la misma.
  • Interfaz de usuario.
  • Diseño de niveles.
  • Efectos de sonido, música.

Durante el desarrollo, mantendremos una tabla para recordar quién tiene asignada cada tarea, y quién está trabajando en cada escena o componente del juego en cada momento. Es importante delimitar correctamente las escenas y elementos asignados a cada desarrollador para evitar colisiones en las modificaciones.

Los proyectos ya empezados tienen prioridad, para que se completen satisfactoriamente. Por ese motivo, cuando hay varios proyectos en curso, podría ser difícil que encuentres perfiles disponibles para empezar uno nuevo. En ese caso, una opción sería guardar la idea durante un tiempo y volver a exponerla en un momento más favorable.

Crear un GDD (Game Design Document)

Hemos hablado de los GDD en otras ocasiones, los documentos de diseño del juego (Game Design Document). Sirven de referencia durante el desarrollo, permiten mantener al equipo enfocado en una línea de trabajo concreta, anticiparse a las dificultades y tomar decisiones.

Como es la parte más extensa, continuaremos con una guía para crear el GDD próximamente, en otro artículo. Hasta entonces, este juego servirá como ejemplo:

Charge Kid es un videojuego creado con Godot Engine, ha sido publicado en PC y consola. Lo más interesante para nosotros es que el desarrollo es open source, su código fuente completo está disponible. Y además, los autores han sido especialmente generosos por compartir el documento de diseño del juego.

Sin embargo, se mueve

Esta es una entrada atípica, con un video sobre un tema que quería tratar en algún momento. Una de las partes de ese video la he mencionado otras veces, sobre las frecuencias de muestreo en los archivos de audio. Es posible que me hayas oído hablar sobre eso en alguno de los talleres de sonido y música en Medialab-Prado.

Pero la temática principal del video no es el sonido. Tampoco tiene relación directa con los videojuegos, excepto por haberse creado con Godot Engine. Trata sobre confusiones, sobre errores, sobre desinformación. Sobre una sociedad con tantos medios tecnológicos y un nivel tan abrumador de datos en sus manos, que en lugar de sentirse mejor informada, se encuentra tan perdida como nunca antes en la historia.

Instrumentos de música virtuales

Para crear la música o el sonido ambiental que acompaña a una obra audiovisual, podemos elegir entre sonidos electrónicos, sonidos de instrumentos acústicos, o una combinación entre ambos. Los instrumentos de música tradicionales son ideales si buscas un resultado orgánico y natural, pero es probable que no tengas acceso a todos los instrumentos que te gustaría.

Imagina que estás creando la música de fondo de la escena de presentación de un videojuego. Se trata de una aventura, con muchos enigmas y puzzles por resolver… y sin saber por qué, tienes en la cabeza una sencilla melodía ejecutada por un saxo. Es justo lo que necesitas, la ambientación perfecta para el proyecto. Pero no tienes un saxo, y tampoco la práctica necesaria para tocarlo.

La solución está en las librerías de sonido de instrumentos. En este artículo vamos a enlazar con el proyecto FreePats, que consiste exactamente en eso: una colección de instrumentos digitalizados para que cualquier persona (o bicho) los pueda utilizar libremente en sus proyectos. Los bancos de sonido de FreePats son open source, libres, gratuitos y permisivos.

Primero hay que descargar el banco de sonido. Llamamos «banco de sonido» al conjunto de sonidos digitalizados de un instrumento en concreto, junto con su fichero SFZ, que contiene las instrucciones necesarias para que el sintetizador pueda imitar al instrumento de música original.

En la web de FreePats se pueden descargar los bancos de sonido en distintos formatos y tamaños. Si no tienes preferencia por uno en concreto, recomiendo SFZ FLAC.

Para utilizar el banco de sonido, necesitamos un sintetizador compatible con el formato SFZ. Hasta hace poco no teníamos una solución que fuese software libre y multiplataforma para cargar bancos de sonido en este formato, y había que recurrir a formatos más antiguos, o usar programas diferentes para cada sistema operativo. Ahora tenemos sfizz, una aplicación que viene a cubrir ese hueco.

La manera habitual de utilizar sfizz, es insertarlo dentro del software de edición de audio (lo que en inglés se conoce como DAW, Digital Audio Workstation). En este ejemplo, sfizz está funcionando como un plugin dentro de Ardour.

Cuando cargamos el fichero SFZ, sfizz utilizará las muestras de grabaciones reales para crear un instrumento virtual, que responde a las notas de entrada teniendo en cuenta la intensidad, duración, articulaciones y otros efectos. Ahora puedes simular un saxo, con ayuda de un dispositivo MIDI, o bien programar la melodía en el secuenciador.

Insertar plugins y conectarlos con las pistas del software de audio es más sencillo de lo que parece. Si tienes interés en estos temas pero desconoces cómo funcionan estos programas, continuaremos en otro artículo, y dedicaremos una jornada próximamente en Zenvoid Studio.

Escríbenos si tocas algún instrumento de música y tienes interés en participar en el proyecto FreePats. Gracias a las personas que colaboran con su tiempo, es posible digitalizar muestras de instrumentos musicales que sirven para crear nuevos bancos de sonido y hacer que la colección de instrumentos virtuales siga creciendo 🙂