
En la
primera parte, hablé sobre una computadora portátil del puesto de fans de
Gravity Falls , con el que participé en varios festivales de ciencia ficción hace 2-3 años. Este año, el equipo se inspiró en una nueva película sobre
Jumanji y decidió ponerse de pie en este universo. Mi actitud hacia él no es tan clara, pero la vieja película y la serie fueron muy buenas. Cuando llegó el momento de comenzar a trabajar en el interactivo, decidí hacer un análogo móvil del juego de mesa para los visitantes del festival, con la posibilidad de jugar juntos en el stand y resolver acertijos. Debajo del corte: lo que salió de mi implementación y cómo se vio en el festival
Starcon 2018.
Juego de mesa Jumanji
En la película original, los jugadores (hasta 4, según el número de figuras en el juego) tiraron dados, sus figuras se movieron al valor apropiado y surgió un misterio en el centro del juego. Tenían unos segundos para entender de qué estaba hablando, después de lo cual la escritura comenzó a ejecutarse. Los murciélagos volaron, aparecieron animales salvajes, todo esto vino a nuestro mundo desde el juego.
Un momento de dudaTeóricamente, los jugadores podrían hacer el siguiente movimiento de inmediato en orden de prioridad y terminar el juego bastante rápido. De hecho, cada enigma trajo consigo nuevas dificultades para continuar el proceso. Había un principio diferente en la serie, y no había tal problema.
En la serie animada, el juego se comportó de manera diferente, a pesar de que las mismas figuras y campo aparecieron allí, en la práctica no importó. No importa cuántas personas (u otras criaturas) estaban presentes cerca del campo en el momento del juego, todos fueron empujados hacia adentro después de que apareció el acertijo, hasta que lo resolvieron en el mundo del juego, diciendo la respuesta en voz alta.
Implementación del juego de mesa
La idea era simple: combinar estas opciones. El jugador tira un dado, hace un movimiento, después de lo cual aparece un acertijo en el centro del campo. Hasta que se dé la respuesta, el próximo jugador no podrá caminar. Como soy más un programador que un cráter, decidí hacer el juego como una aplicación para dispositivos móviles.
Comprendí que tal interacción conlleva ciertos inconvenientes para los visitantes. Si en cada stand del festival el visitante descarga una nueva aplicación, gasta tráfico, batería, espacio en el dispositivo, muy pronto se cansará de ello. Y al final, no todos tienen dispositivos móviles, y sería injusto privar a las personas de entretenimiento potencial. Por lo tanto, decidí hacer dos versiones, móvil (en línea) y estacionaria (fuera de línea), con la entrada de la respuesta directamente en nuestra tableta. Se suponía que el móvil se usaría solo como una interactividad adicional, aunque tenía grandes esperanzas para ello.
Versión sin conexión
Con la versión fuera de línea del cliente, todo fue bastante simple. Mi esposa dibujó los gráficos, hice un prototipo en Unity: la figura se mueve por el tablero, se muestra el acertijo. Belleza! No iba a gastar mucha energía en la interfaz, después de todo, la aplicación debería haber funcionado solo dos días y principalmente había realizado la función de transmitir preguntas a los visitantes, pero no podía dejarla completamente sin procesar. Se agregó la creación de jugadores (hasta cuatro) que indican el nombre, el enfoque de la cámara y varias cosas pequeñas. En la primera versión, las preguntas de la película estaban conectadas. Conociendo la política de las tiendas de aplicaciones, decidí diseñar esta versión con anticipación para que pudieras arreglar algunas jambas lentamente, después de todo, el juego se hizo usando una película conocida, aunque sin monetización y publicidad, pero los derechos de autor aún pertenecen al editor. Luego, mis temores no se materializaron: al principio
Google Play , y luego la
App Store confirmó la aplicación sin ningún problema, y mientras tanto comencé a refinar el servidor y el cliente para trabajar en línea.

Primeras calificaciones de Google Play
No agregué localización, porque No esperaba que nadie más usara la aplicación, excepto como visitantes del festival, pero teniendo en cuenta que los invitados pueden ser de diferentes países, no agregué restricciones regionales en el juego. Nunca publiqué enlaces a la primera versión (excepto la prueba entre nuestro equipo de luchadores), pero, para mi sorpresa, las críticas de
Google Play aún comenzaron a aparecer. Entre las primeras críticas fueron extranjeras en el espíritu de "¿qué responder preguntas? No puedo superar el juego "y con bajas calificaciones. Temía que una calificación baja asustaría incluso a aquellos visitantes que pudieran instalar la aplicación en el festival, y decidí en la próxima versión agregar el modo de juego
Sin preguntas y activarlo de forma predeterminada si el idioma del dispositivo es diferente al ruso. En este modo, el juego se convirtió en el juego de mesa más simple en el espíritu de "
tirar los dados, avanzar por N celdas, quien llegó a la línea de meta más rápido - ganó "
, pero hubo menos revisiones de este tipo (aparecieron otras, más sobre eso a continuación).
Versión en línea
En realidad, comencé a trabajar en el lado del servidor incluso antes de la versión sin conexión.
Sabía que
Laravel no es la plataforma más adecuada para un servidor de juegos, pero me pareció más fácil hacer un prototipo y llenar la base de datos de preguntas a través del sitio. El sitio tenía secciones cerradas donde podía agregar preguntas, crear un juego en línea y administrar su proceso (iniciar el juego después de seleccionar las cifras de todos los participantes, confirmar las respuestas a las preguntas, completar el juego).

Implementado una API para conectarse al juego, seleccionar formas, tirar dados. Probado a través de
Postman y cambiado al lado del cliente.
Por supuesto, sondear el servidor con el cliente cada N segundos no es la implementación de la que debería estar orgulloso en 2018, pero este mecanismo simple funcionó como debería. Creé un sistema de ahorro basado en un pequeño activo, agregué configuraciones para la aplicación donde puedes seleccionar el modo de juego y descargar la base de datos actual de preguntas del servidor. Hay varias listas: una lista básica de preguntas (preguntas de la película que estaban presentes en la primera versión), una lista de preguntas para la versión estacionaria y una lista de preguntas para la versión en línea. La pregunta puede estar en varias listas a la vez, pero generalmente solo en una. El botón también le permite descargar la versión actual de las preguntas del sitio. De los 4 modos de juego, 3 funcionan sobre la base de la versión fuera de línea (con dos listas diferentes de preguntas + un modo sin preguntas), y el último requiere la creación preliminar del juego por parte del anfitrión desde el stand y no puede iniciarse en modo automático. Aquellos que deseen obtener más información sobre el principio de funcionamiento de la versión en línea pueden leer el próximo spoiler, donde traté de maximizar (quizás incluso innecesariamente) para describir todo en detalle.
Cómo funciona la versión en líneaPrimero, los visitantes (un grupo de 1 a 4 personas) acuden al presentador con sus dispositivos con aplicaciones instaladas. En la configuración, seleccione el modo de juego
En el stand en línea . Ahora, cuando comienza el juego, aparece una ventana de entrada de código de 4 dígitos en el cliente. El anfitrión del juego desde su dispositivo ingresa al sitio y crea un juego en el servidor en una sección cerrada, después de lo cual muestra un código de juego único. En situaciones normales, este es el único código que los jugadores deberán ingresar (excepto el nombre). Entonces, todos los jugadores ingresan el código del juego, y en el cliente se muestra el campo para seleccionar la figura e ingresar el nombre del jugador. Al mismo tiempo, el servidor comienza a sondear (según el código del juego) para detectar la presencia de figuras ocupadas; por ejemplo, si el jugador
Peter elige un mono, las siguientes tres
encuestas del servidor solo permitirán que las tres figuras restantes estén disponibles para el jugador
Judy . Si
Judy intenta elegir un mono después de que
Peter lo haya elegido, pero antes de que se actualice la lista de cifras disponibles, se le dará un error y deberá intentarlo nuevamente.

Después de seleccionar una figura, los jugadores entran en modo de espera, y se devuelve un identificador único de 7 dígitos al cliente, que no se muestra en ningún lado, pero se utiliza para identificar las solicitudes transmitidas por el jugador. Una vez más, el servidor comienza a sondear, pero no por la disponibilidad de cifras gratuitas, sino por obtener información detallada sobre el juego, incluido su estado. Y esto continúa mientras el estado coincida
pendiente . La información sobre el juego también incluye un campo con la fecha de la última actualización. Este campo también se transmite en una solicitud al servidor, para que proporcione información completa solo cuando cambie la fecha y, en otros casos, solo envíe una notificación de que todo sigue igual. Finalmente, cuando todos los jugadores han seleccionado piezas, el anfitrión cambia el estado del juego a
activo desde su dispositivo.
La próxima vez que se actualice la información, los visitantes abrirán el campo de juego. Los jugadores se mueven en orden de sucesión (que previamente eligió una pieza), si un doble cae en el dado, el jugador actual permanece en movimiento. Hay dos tipos de preguntas en la versión en línea.
- El primer tipo es preguntas con una respuesta ingresada en el campo correspondiente, similar a cómo sucede esto en la versión estacionaria. Cuando hace clic en el botón Responder , se realiza una solicitud al servidor, donde se determina si la respuesta es correcta. Muy a menudo, puede haber varias opciones válidas que no distinguen entre mayúsculas y minúsculas.
- El segundo tipo son las preguntas que necesitan confirmación. No hay botones además de volver a mostrar la pregunta. Es necesario que el líder mismo haga clic en la respuesta Contar en la página del juego en el sitio después de que los jugadores cumplan las condiciones relevantes del acertijo y le cuente al líder sobre esto. Después de eso, el movimiento queda disponible para el siguiente jugador en orden de prioridad, y así sucesivamente hasta que alguien llegue al centro del campo. Formalmente, después de eso, el anfitrión tendrá que hacer clic en el botón Finalizar en el sitio, después de lo cual el juego desaparecerá de la lista de activos, y los intentos de reconectarse del cliente con este código devolverán una advertencia de que el juego ya ha terminado.

También se implementó la posibilidad de reconectarse al juego. Si un visitante comenzó un juego en línea y luego, por ejemplo, fue al menú, eligió un modo diferente, jugó la versión fuera de línea y decidió conectarse al juego anterior nuevamente, o incluso decidió continuar el juego en otro dispositivo, puede hacerlo usando el facilitador . Primero, también ingresa un código de juego de 4 dígitos, y luego, en lugar de elegir una pieza gratis, debe hacer clic en el botón
Ingresar código de jugador . El código de jugador de 7 dígitos mencionado anteriormente no se muestra en texto claro en la interfaz del juego, pero es visible para el anfitrión junto con los nombres y figuras de los jugadores en una sección cerrada en el sitio, por lo que el jugador podrá identificarse e ingresar este código adicional. Si el juego ya se inició, luego de ingresar el código del juego, se le pedirá al visitante que ingrese de inmediato el código del jugador existente. Esta característica se probó, pero nunca se usó en el festival y, por lo tanto, siguió siendo redundante.
Dificultades repentinas
La finalización de la versión final de la aplicación tomó más tiempo de lo que pensaba, y la actualización salió al mercado solo unos días antes de la convención. Y, por supuesto, la
App Store lo bloqueó =) Por supuesto, esto es mi culpa: supuse que usar el nombre de la película podría ser incorrecto, pero solo se usó en el contexto de un soporte de ventilador, y no hubo problemas con la primera versión de la aplicación, así que me relajé . Al principio, solo se bloqueó el ícono, después de cambiarlo y volver a verificarlo, ya había una descripción en el mercado (ya estaba presente en la primera versión), y se emitió una notificación de que la próxima verificación de la aplicación tomaría más tiempo. En general, me pareció extraño que la actualización fuera rechazada y que la primera versión ya descargada con la descripción e icono "incorrectos" se dejara descargar, pero al menos algo. Estaba en estado de pánico, más un par de días de verificación, y la aplicación ya no será relevante, y todos los visitantes con
iOS se cortaron en el festival por la versión en línea de mi interacción. Sin saber si esperar una alegre carta de confirmación, la noche anterior a la convención doblé frenéticamente una versión de texto en línea, aunque no muy hermosa, pero eficiente, con la cual los usuarios de todos los dispositivos con acceso a la red podían interactuar interactivamente.

Primer dia del festival
Y ahora, ha llegado el día de la convención. En ese momento, ya sabía que mi aplicación para la interactividad no era la única: todavía existía la aplicación principal de Megaphone para la búsqueda global en Starkon. Espero que la presencia de mi aplicación no haya creado ningún inconveniente para los organizadores, pero al menos aún no he oído nada al respecto. Pero la versión estacionaria del juego pudo integrarse en la búsqueda principal. Su significado fue que los visitantes con aplicaciones Starkon instaladas caminaron alrededor de los stands, realizaron tareas únicas y, al completar con éxito, recibieron un código específico para cada stand (que fue ingresado por los participantes del stand para evitar la distribución), y la recolección de códigos de todos los stands participó en el sorteo premios En
el puesto
de Jumanji , me ofrecí para estar a cargo de esta búsqueda. Como tarea desde nuestro stand, sugerí pasar por una versión fuera de línea de mi juego con preguntas bastante simples. Aquellos que lo deseen pueden descargar la aplicación a su dispositivo e ir a su propio ritmo, luego mostrarme un resultado exitoso, o bajo mi liderazgo "
jugar Jumanji con Alan Parrish " desde nuestra tableta. Esto, por supuesto, no era tan canónico como la vieja computadora portátil para festivales pasados, pero no se veía tan mal con una caja de tableta pintada debajo de
Jumanji .

El juego en línea era un interactivo separado e independiente. Para ella, los visitantes tenían que instalar la aplicación (o usar la versión de texto en línea, pero todos eligieron la aplicación). La situación se agravó por el hecho de que la nueva aplicación de
iOS no estaba confirmada, y en la
App Store solo se podía encontrar la primera versión, sin un juego en línea e incluso sin la capacidad de descargar la versión actual de las preguntas. Además, el primer día del festival, como de costumbre, hubo más visitantes, incluidos aquellos que querían pasar por la búsqueda oficial, por lo tanto, como resultado, solo un par de personas con
Android comenzaron la búsqueda en línea el primer día, pero la abandonaron en los primeros acertijos. Estaba un poco molesto, porque la versión en línea requería mucha energía, sería una pena no experimentarla en absoluto. Pero esperaba que el segundo día fuera más exitoso a este respecto, sucedió.
El segundo día del festival
El segundo día comenzó con noticias alentadoras: la
App Store finalmente confirmó la nueva versión de la aplicación, escribiendo también que en caso de una necesidad similar (en respuesta a mi carta con el razonamiento de que necesitaba la aplicación estrictamente para ciertas fechas), se debe enviar una notificación adicional a verificación más rápida (para ser honesto, desde entonces no he aclarado este punto ya que ya no era necesario). En este día, parecía que había menos visitantes que querían pasar por la búsqueda global, y a menudo sugerí pasar la versión en línea de mi juego. Los acertijos para el juego en línea eran más complicados, por lo general, se describía allí algún otro stand del festival, y los jugadores tenían que entender qué stand estaba en cuestión, llegar a él y describirlo al presentador (o mostrar una foto de este stand). Podrían participar equipos de 1 a 4 jugadores, y aunque todos jugaban por su propia figura, necesitaban resolver rompecabezas juntos, como fue el caso en la serie. Si es necesario, el anfitrión puede dar una pista (si el visitante no conoce el Universo del stand del acertijo, pero no desea ordenar todas las opciones). En este día había más de esas personas, y casi todos pasaron por toda la búsqueda, lo que me hizo extremadamente feliz. En total, hubo unos diez jugadores exitosos, menos de lo que esperaba, pero después del último día hubo un aumento obvio. Recuerdo especialmente a la niña que comenzó el juego en línea sola en la primera parte del festival, y regresó e interrogó más cerca del final, cuando tuvimos miedo de que abandonara la búsqueda. Resultó que ella no pudo resolver uno de los misterios durante mucho tiempo, ¡pero al final completó todo con éxito!)
Pensé que como recompensa especial por completar la versión en línea, entregaré una insignia y solo a quién del equipo alcanzará el centro del campo más rápido, pero había pocos participantes, por lo que todos fueron premiados, y el fondo del premio se reponía con imanes acrílicos pintados a mano hechos a mano. al estilo de
Jumanji . Espero que los participantes en el interactivo estén satisfechos tanto con los premios como con el juego en sí.

Una lección para el futuro
Parece que es hora de que comprenda hace mucho tiempo que el contenido en tales proyectos a menudo es más importante que la forma en que se presenta. Uno de los errores que cometí fue centrarme en la aplicación en detrimento de los acertijos. Por supuesto, logré escribir una serie de acertijos, pero los agregué en el autobús desde el teléfono en el camino al
Expoforum , lo que podría afectar tanto su originalidad como el número; casi seguramente se repetirán cuando se repita el juego. Pero los acertijos interesantes son lo que esperan de
Jumanji . En el futuro, se debe dedicar más tiempo a cosas tan importantes.
Resumen
Ha pasado casi medio año desde el festival. Durante este tiempo, ya no actualicé el juego: planeé que sería necesario solo los días del festival y no conté con más apoyo. Por extraño que parezca, sigo recibiendo nuevas reseñas de
Google Play . Y aunque la mayoría de ellos están en árabe con una solicitud para agregar el idioma árabe (¿tal vez no sé algo sobre la etimología de la palabra
Jumanji ? Descubrí que tiene más raíces africanas), las revisiones continúan apareciendo con preguntas sobre la versión en línea. Si tuviera tiempo en el futuro, implementaría un par de cosas más para que el juego pudiera funcionar sin mi intervención directa, pero, en mi opinión, ya ha cumplido su misión principal. Fue una experiencia única para mí: observar cómo va su búsqueda con la ayuda de su aplicación es muy agradable.
Quisiera agradecer a todos los que me dieron esta oportunidad: los organizadores del festival, mi equipo y, por supuesto, los visitantes que participaron en esto. Espero que este no sea mi último festival y no el último interactivo =)
Técnico interactivo en convenciones fantásticas. Parte 1