
Na
primeira parte, falei sobre um laptop do stand de fãs de
Gravity Falls , com o qual participei de vários festivais de ficção científica há 2-3 anos. Este ano, a equipe foi inspirada em um novo filme sobre
Jumanji e decidiu se posicionar nesse universo. Minha atitude para com ele não é tão clara, mas o filme antigo e a série foram muito bons. Quando chegou a hora de começar a trabalhar no interativo, decidi fazer um análogo móvel do jogo de tabuleiro para os visitantes do festival, com a possibilidade de brincar juntos no estande e resolver quebra-cabeças. Sob o corte - o que saiu da minha implementação e como ela apareceu no festival
Starcon 2018.
Jogo de tabuleiro Jumanji
No filme original, os jogadores (até 4, de acordo com o número de figuras no jogo) jogavam dados, suas figuras se moviam para o valor apropriado e um mistério surgiu no centro do jogo. Eles tiveram alguns segundos para entender do que ela estava falando, após o que a escrita começou a ser executada. Morcegos voaram, animais selvagens apareceram - tudo isso veio ao mundo do jogo.
Um momento de dúvidaTeoricamente, os jogadores poderiam dar o próximo passo imediatamente em ordem de prioridade e terminar o jogo rapidamente. De fato, cada enigma trazia novas dificuldades para continuar o processo. Havia um princípio diferente na série e não havia esse problema.
Na série animada, o jogo se comportou de maneira diferente - mesmo que as mesmas figuras e campos aparecessem lá, na prática isso não importava. Não importa quantas pessoas (ou outras criaturas) estavam presentes perto do campo no momento do jogo, todas elas foram puxadas para dentro depois que o enigma apareceu - até resolver o problema no mundo do jogo, dizendo a resposta em voz alta.
Implementação de jogos de tabuleiro
A ideia era simples - combine essas opções. O jogador lança um dado, faz um movimento, após o qual um enigma aparece no centro do campo. Até que a resposta seja dada, o próximo jogador não poderá andar. Como sou mais programador do que cratera, decidi fazer o jogo como um aplicativo para dispositivos móveis.
Entendi que essa interatividade implica certos inconvenientes para os visitantes. Se em cada estande do festival o visitante fizer o download de um novo aplicativo, gastar tráfego, bateria, espaço no dispositivo, muito em breve ele se cansará. E, no final, nem todo mundo tem dispositivos móveis, e seria injusto privar as pessoas de entretenimento em potencial. Por isso, decidi fazer duas versões, móvel (online) e estacionária (offline), com a entrada da resposta diretamente em nosso tablet. O celular deveria ser usado apenas como uma interatividade adicional, embora eu tivesse grandes esperanças.
Versão offline
Com a versão offline do cliente, tudo foi bem simples. Minha esposa desenhou os gráficos, fiz um protótipo no Unity - a figura se move ao redor do tabuleiro, o enigma é exibido. Beleza! Eu não gastaria muita energia na interface, afinal, o aplicativo deveria ter funcionado apenas dois dias e desempenhado principalmente a função de transmitir perguntas aos visitantes, mas não consegui deixá-lo completamente cru. Adicionada a criação de jogadores (até quatro) indicando o nome, a abordagem da câmera, várias pequenas coisas. Na primeira versão, as perguntas do filme foram elaboradas. Conhecendo a política das lojas de aplicativos, decidi apresentar essa versão com antecedência para poder corrigir alguns batentes lentamente - afinal, o jogo foi feito usando um filme conhecido, embora sem monetização e publicidade, mas os direitos autorais ainda pertencem ao editor. Então, meus medos não se concretizaram - primeiro no
Google Play , e mais tarde a
App Store confirmou o aplicativo sem problemas e, enquanto isso, comecei a refinar o servidor e o cliente para trabalhar on-line.

Primeiras classificações do Google Play
Eu não adicionei localização, porque Não esperava que mais ninguém usasse o aplicativo, exceto como visitantes do festival, mas, tendo em vista que os convidados podem ser de diferentes países, não adicionei restrições regionais ao jogo. Eu nunca publiquei links para a primeira versão (exceto para o teste entre nossa equipe de espectadores), mas, para minha surpresa, os comentários do
Google Play ainda começaram a aparecer. Entre as primeiras resenhas, havia estrangeiros no espírito de “o que responder a perguntas? Não consigo passar pelo jogo "e com classificações baixas. Eu tinha medo que uma classificação baixa assustasse até os visitantes que pudessem instalar o aplicativo no festival, e decidi na próxima versão adicionar o modo de jogo
Sem perguntas e ativá-lo por padrão se o idioma do dispositivo for diferente do russo. Nesse modo, o jogo se transformou no jogo de tabuleiro mais simples, com o espírito de "
rolar os dados, avançar por N células, quem chegou à linha de chegada mais rapidamente - venceu "
, mas houve menos críticas (outras apareceram, mais abaixo).
Versão online
Na verdade, comecei a trabalhar no servidor mesmo antes da versão offline. Eu sabia que o
Laravel não é a plataforma mais adequada para um servidor de jogos, mas me pareceu mais fácil criar um protótipo e preencher o banco de dados de perguntas pelo site. O site tinha seções fechadas nas quais eu podia adicionar perguntas, criar um jogo on-line e gerenciar seu processo (iniciar o jogo após selecionar as figuras de todos os participantes, confirmar as respostas às perguntas e concluir o jogo).

Implementou uma API para se conectar ao jogo, selecionar formas, rolar dados. Testado pelo
Postman e alternado para o lado do cliente.
A pesquisa do servidor com o cliente a cada N segundos não é, obviamente, a implementação da qual você deve se orgulhar em 2018, mas esse mecanismo simples funcionou como deveria. Eu fiz um sistema de economia baseado em um pequeno ativo, adicionei configurações para o aplicativo onde você pode selecionar o modo de jogo e baixar o banco de dados atual de perguntas do servidor. Existem várias listas - uma lista básica de perguntas (perguntas do filme que estavam presentes na primeira versão), uma lista de perguntas para a versão estacionária e uma lista de perguntas para a versão online. A pergunta pode estar em várias listas ao mesmo tempo, mas geralmente apenas em uma. O botão também permite que você baixe a versão atual das perguntas do site. Dos 4 modos de jogo, 3 funcionam com base na versão offline (com duas listas diferentes de perguntas + um modo sem perguntas), e o último exige a criação preliminar do jogo pelo host do estande e não pode ser iniciado no modo automático. Aqueles que desejam aprender mais sobre o princípio de operação da versão online podem ler o próximo spoiler, onde tentei maximizar (talvez até desnecessariamente) para descrever tudo em detalhes.
Como funciona a versão onlinePrimeiro, os visitantes (um grupo de 1 a 4 pessoas) chegam ao apresentador com seus dispositivos com aplicativos instalados. Nas configurações, selecione o modo de jogo
No stand online . Agora, quando o jogo começa, uma janela de entrada de código de 4 dígitos aparece no cliente. O host do jogo de seu dispositivo entra no site e cria um jogo no servidor em uma seção fechada, após o que ele exibe um código de jogo exclusivo. Em situações normais, este é o único código que os jogadores precisam digitar (exceto o nome). Assim, todos os jogadores inserem o código do jogo e, no cliente, o campo para selecionar a figura e inserir o nome do jogador é exibido. Ao mesmo tempo, o servidor começa a pesquisar (com base no código do jogo) a presença de figuras ocupadas - por exemplo, se o jogador
Peter escolher um macaco, as próximas três
pesquisas de servidor permitirão que apenas as três figuras restantes estejam disponíveis para o jogador
Judy . Se
Judy tentar escolher um macaco depois que
Peter o escolher, mas antes que a lista de figuras disponíveis seja atualizada, ela receberá um erro e precisará tentar novamente.

Após selecionar uma figura, os jogadores entram no modo de espera e um identificador exclusivo de 7 dígitos é retornado ao cliente, que não é exibido em nenhum lugar, mas é usado para identificar solicitações transmitidas pelo jogador. Aqui, novamente, o servidor começa a pesquisar, mas não pela disponibilidade de números gratuitos, mas por obter informações detalhadas sobre o jogo, incluindo seu status. E isso continua enquanto o status corresponder a
pendente . As informações sobre o jogo também incluem um campo com a data da última atualização. Este campo também é transmitido em uma solicitação ao servidor, para fornecer informações completas somente quando a data for alterada e, em outros casos, enviar apenas uma notificação de que tudo continua o mesmo. Finalmente, quando todos os jogadores selecionam peças, o anfitrião altera o status do jogo para
ativo a partir de seu dispositivo.
Na próxima vez em que as informações forem atualizadas, os visitantes abrirão o campo de jogo. Os jogadores se movem em ordem de sucessão (que já havia escolhido uma peça); se uma dupla cair nos dados, o jogador atual permanece em movimento. Existem dois tipos de perguntas na versão online.
- O primeiro tipo são perguntas com uma resposta inserida no campo correspondente, semelhante à maneira como isso acontece na versão estacionária. Quando você clica no botão Responder , é feita uma solicitação ao servidor, onde é determinado se a resposta está correta. Na maioria das vezes, pode haver várias opções válidas que não diferenciam maiúsculas de minúsculas.
- O segundo tipo são perguntas que precisam de confirmação. Não há botões além de exibir novamente a pergunta. É necessário que o próprio líder clique na resposta Contar na página do jogo no site após os jogadores preencherem as condições relevantes do enigma e informar o líder sobre isso. Depois disso, a jogada fica disponível para o próximo jogador em ordem de prioridade, e assim por diante até que alguém chegue ao centro do campo. Formalmente, depois disso, o host precisará clicar no botão Concluir no site, após o qual o jogo desaparecerá da lista de ativos, e as tentativas de se reconectar do cliente com esse código retornarão um aviso de que o jogo já está terminado.

A possibilidade de se reconectar ao jogo também foi implementada. Se um visitante iniciou um jogo on-line e, digamos, foi ao menu, escolheu um modo diferente, jogou a versão off-line e decidiu se conectar ao jogo antigo novamente, ou até decidiu continuar o jogo em outro dispositivo, ele pode fazer isso usando o facilitador . Primeiro, ele também insere um código de jogo de 4 dígitos e, em vez de escolher uma peça gratuita, ele precisa clicar no botão
Inserir código do jogador . O código do jogador de 7 dígitos mencionado anteriormente não é mostrado em texto não criptografado na interface do jogo, mas é visível para o host junto com os nomes e figuras dos jogadores em uma seção fechada no site, para que o jogador possa se identificar e inserir esse código adicional. Se o jogo já foi iniciado, depois de inserir o código do jogo, o visitante será solicitado a inserir o código do jogador existente. Esse recurso foi testado, mas nunca foi usado no festival e, portanto, permaneceu redundante.
Dificuldades repentinas
A finalização da versão final do aplicativo demorou mais do que eu pensava e a atualização foi lançada no mercado apenas alguns dias antes da convenção. E, é claro, a
App Store bloqueou =) Claro, isso é culpa minha - eu assumi que o uso do nome do filme pode estar incorreto, mas foi usado apenas no contexto de um suporte de fã, e não houve problemas com a primeira versão do aplicativo, então relaxei . No início, apenas o ícone estava bloqueado, após alterá-lo e verificá-lo novamente, já havia uma descrição no mercado (já estava presente na primeira versão) e uma notificação foi emitida de que a próxima verificação do aplicativo levaria mais tempo. Em geral, me pareceu estranho que a atualização foi rejeitada, e a primeira versão já baixada com a descrição e o ícone “errados” foi deixada para download, mas pelo menos alguma coisa. Eu estava em pânico - mais alguns dias de verificação, e o aplicativo não será mais relevante, e todos os visitantes com
iOS são excluídos do festival para a versão on-line da minha interação. Sem saber se deveria esperar por uma alegre carta de confirmação, na noite anterior à convenção, adicionei freneticamente uma versão on-line em texto - embora não muito bonita, mas eficiente, com a qual todos os proprietários de dispositivos com acesso à rede pudessem passar interativamente.

Primeiro dia do festival
E agora, o dia da convenção chegou. Naquela época, eu já sabia que meu pedido de interatividade não era o único - ainda havia o principal aplicativo do Megaphone para a busca global em toda a Starkon. Espero que a presença do meu aplicativo não tenha criado nenhum inconveniente para os organizadores, mas pelo menos ainda não o ouvi falar. Mas a versão estacionária do jogo foi capaz de integrar-se na missão principal. Seu significado era que os visitantes com aplicativos Starkon instalados andavam pelos estandes, realizando tarefas exclusivas e, após a conclusão bem-sucedida, recebiam um código específico para cada estande (que foi inserido pelos participantes do estande para evitar a distribuição) e a coleta de códigos de todos os estandes participava do desenho prêmios. No estande
de Jumanji , me ofereci para me encarregar dessa missão. Como uma tarefa do nosso ponto de vista, sugeri passar por uma versão offline do meu jogo com perguntas bastante simples. Aqueles que desejarem podem baixar o aplicativo para o dispositivo e seguir seu próprio ritmo, mostrando-me mais tarde um resultado bem-sucedido ou sob minha liderança "
jogue Jumanji com Alan Parrish " em nosso tablet. É claro que isso não era tão canônico quanto o laptop antigo de festivais passados, mas não parecia tão ruim com uma caixa de tablet pintada sob
Jumanji .

O jogo online era um interativo separado e independente. Para ela, os visitantes tinham que instalar o aplicativo (ou usar a versão em texto online, mas todos escolheram o aplicativo). A situação foi agravada pelo fato de o novo aplicativo
iOS não ter sido confirmado, e na
App Store você pode encontrar apenas a primeira versão, sem um jogo online e mesmo sem a capacidade de baixar a versão atual das perguntas. Além disso, no primeiro dia do festival, como de costume, havia mais visitantes, incluindo aqueles que queriam fazer a missão oficial; portanto, apenas duas pessoas com
Android iniciaram a busca on-line no primeiro dia, mas a abandonaram nos primeiros enigmas. Fiquei um pouco chateado, porque a versão online consumia muita energia, seria uma pena não experimentá-la. Mas eu esperava que o segundo dia tivesse mais sucesso nesse sentido - aconteceu.
O segundo dia do festival
O segundo dia começou com notícias encorajadoras - a
App Store finalmente confirmou a nova versão do aplicativo, escrevendo também que, em caso de necessidade semelhante (em resposta à minha carta com o raciocínio de que eu precisava do aplicativo estritamente para determinadas datas), uma notificação adicional deveria ser enviada para verificação mais rápida (para ser honesto, desde então não esclareci esse ponto, pois não havia mais essa necessidade). Nesse dia, parecia que havia menos visitantes que queriam fazer a busca global, e eu sempre sugeri passar a versão online do meu jogo. Os quebra-cabeças do jogo on-line eram mais complicados, geralmente algum outro estande do festival era descrito lá, e os jogadores tinham que entender o estande em questão, chegar a ele e descrever ao apresentador (ou mostrar uma foto desse estande). Equipes de 1 a 4 jogadores puderam participar, e mesmo que todos jogassem por sua própria figura, eles precisavam resolver quebra-cabeças juntos, como foi o caso da série. Se necessário, o anfitrião pode dar uma dica (se o visitante não conhecer o universo do estande da charada, mas você não quiser classificar todas as opções). Nesse dia, havia mais pessoas assim e quase todo mundo passou por toda a missão, pela qual fiquei extremamente feliz. No total, havia cerca de dez jogadores de sucesso, menos do que eu esperava, mas após o último dia houve um aumento óbvio. Lembro-me especialmente da garota que iniciou o jogo on-line sozinha na primeira parte do festival, e retornou e interrogou mais perto do fim, quando ficamos com medo de que ela abandonasse a missão. Aconteceu que ela simplesmente não conseguiu resolver um dos mistérios por um longo tempo, mas no final ela concluiu tudo com sucesso!)
Eu pensei que, como recompensa especial por completar a versão online, entregarei um distintivo e apenas quem da equipe chegará ao centro do campo mais rapidamente, mas havia poucos participantes, então todos foram premiados e o fundo do prêmio foi reabastecido com ímãs acrílicos feitos à mão e pintados à mão no estilo de
Jumanji . Espero que os participantes da interativa tenham ficado satisfeitos com os prêmios e com o jogo em si.

Uma lição para o futuro
Parece que é hora de eu entender há muito tempo que o conteúdo desses projetos é geralmente mais importante do que a forma em que é apresentado. Um dos erros que cometi foi focar na aplicação em detrimento de enigmas. É claro que consegui escrever vários quebra-cabeças, mas os adicionei no ônibus do telefone a caminho do
Expoforum , o que poderia afetar tanto a originalidade quanto o número - eles quase certamente serão repetidos quando o jogo for repetido. Mas quebra-cabeças interessantes são o que eles esperam de
Jumanji . No futuro, mais tempo precisa ser dedicado a coisas tão importantes.
Sumário
Quase meio ano se passou desde o festival. Durante esse período, não atualizei mais o jogo - planejei que seria necessário apenas nos dias do festival e não contei com mais apoio. Curiosamente, ainda continuo recebendo novos comentários do
Google Play . E embora a maioria deles esteja em árabe com uma solicitação para adicionar o idioma árabe (talvez eu não conheça nada sobre a etimologia da palavra
Jumanji ? Achei que ela tem mais raízes africanas), as críticas continuam aparecendo com perguntas sobre a versão online. Se eu tivesse tempo no futuro, implementaria mais algumas coisas para que o jogo funcionasse sem a minha intervenção direta, mas, na minha opinião, ele já cumpriu sua missão principal. Foi uma experiência única para mim - é muito bom ver como a sua missão vai com a ajuda do seu aplicativo.
Gostaria de agradecer a todos que me deram essa oportunidade - os organizadores do festival, minha equipe e, é claro, os visitantes que participaram. Espero que este não seja o meu último festival e nem o último interativo =)
Técnico interativo em convenções fantásticas. Parte 1