Olá, Habr! Meu nome é Zhenya e sou viciado em projetos.
- (série inconsistente de votos) Olá, Zhenya!
Após essa introdução, as referências ao trabalho geralmente são seguidas até tarde da noite nos dias de semana e durante todo o dia nos fins de semana, contando quilos de junk food comidos, descrições coloridas de noites sem dormir antes do prazo final e, no final, o vazio e o desapego que se seguem ao final do projeto ... E tudo isso será mais adiante no texto, mas primeiro um pouco de fundo.

Sou desenvolvedor da Dodo Pizza Engineering. Muitos caras de nossa equipe participam de vários projetos paralelos. No ano passado, por exemplo, foi uma busca por telegrama sobre o correio da
CMAN , que
foi dedicado ao Moscow DotNext 2018 . Este ano, decidimos continuar a tradição e fazer outro jogo já no DotNext 2019. Então, em setembro, havia alguns meses antes da conferência, e precisávamos urgentemente de um plano.
FYI: Esta é a primeira parte de um artigo sobre IT Alchemy. A próxima parte serão os detalhes técnicos do desenvolvimento do jogo.
Plano de projeto ideal
Entendemos que repetir a história do ano passado não funcionaria. Primeiro, depois foi a primeira vez, e a primeira vez por definição é única. Em segundo lugar, e isso é provavelmente a coisa mais importante - esse projeto foi desenvolvido por vários meses. E algumas semanas antes do evento, os desenvolvedores geralmente saíam para fazê-lo por tempo integral.
Bem, nosso objetivo era mais modesto: tínhamos menos pessoas, prazos mais curtos e muito trabalho principal para jogar durante o horário de trabalho. Em uma sessão conjunta de brainstorming, alguém sugeriu a criação de uma variação de TI do popular jogo Alchemy, há muitos anos.
Deixe-me lembrá-lo brevemente para aqueles que não encontraram esses horários: o jogador tem um número inicial de elementos (geralmente 4). Ao combiná-los, você pode coletar mais e mais novos que estão se tornando mais difíceis. A tarefa do jogador: abrir todos os elementos. Na Alquimia original, um número finito de elementos atingiu várias dezenas de milhares.
Captura de tela da mesma Alquimia 2013Nossa idéia me pareceu um projeto ideal por um mês por três razões:
- Tarefas tecnicamente claras: implante um servidor back-end, escreva um cliente para telefones, desenhe uma interface e imagens de elementos.
- As palavras dos temas de TI devem ser combinadas (hehe, se for o caso).
- A tarefa que eu pessoalmente me propus: fazer o jogo apenas no meu tempo livre, nos finais de semana, sem muito esforço. Definitivamente, não queremos repetir a experiência do ano passado.
Regras de montagem: chegar dentro do prazo em 30 dias
O que precisa ser feito primeiro para montar um projeto viável em um mês? É isso mesmo - reduza o escopo! De fato, todo o nosso trabalho foi perfeitamente dividido em quatro blocos:
- Servidor de back-end. Misha Kumachev ( Ceridan ), que projetou o back-end da CMAN, foi responsável por isso.
- Clientes Unity para Android e iOS. Essa parte foi minha, porque eu já tinha uma dúzia de protótipos e dois jogos publicados no Google Play.
- O design da interface e dos ícones foi feito por Tanya Turmanidze.
- E ... conteúdo para o jogo. Mas esse bloco não tem dono há muito tempo. E esse foi talvez o nosso erro mais importante (e mais óbvio).
Nosso conceito básico não foi diferente do original de 2013: o jogador tem 4 elementos básicos, no total você pode coletar outros N elementos. Cada elemento deve ter: nome, figura e descrição da arte. Qualquer novo item é coletado de apenas dois outros itens abertos anteriormente.
Para evitar fraudes, armazenamos todas as informações em combinações de elementos no back-end. O cliente enviou uma solicitação do ID de dois elementos que o player tentou conectar e o servidor retornou se essa combinação foi bem-sucedida ou não. Se for bem-sucedido, o cliente receberá o ID do novo elemento, seu nome e descrição. Por nome, o cliente encontrou a imagem desejada e um novo elemento apareceu no player. Ou seja, todos os dados necessários para o jogo foram armazenados pelo back-end.
Também planejamos uma tabela de registros para os 20 melhores jogadores que receberam prêmios, uma vez que um determinado número de pontos foi atribuído a cada item coletado. Isso, de fato, é tudo.
Tempere seu ardor, supere as tentações de fazer demais
Naturalmente, no processo de inúmeras discussões, surgiu uma grande variedade de lista de desejos, que recusamos prudentemente. Aqui estão alguns deles:
- Havia uma idéia de adicionar um sistema de conquistas quando um jogador coletava algum ramo de elementos, um elemento complexo ou um conjunto. Depois que percebemos que, com a invenção dos elementos, as coisas estavam longe de ser tão otimistas quanto esperávamos, abandonamos essa idéia. As conquistas fariam sentido em uma escala de mil elementos, mas, na realidade, tínhamos muito menos deles.
- Alguém sugeriu destacar de maneira especial os elementos que não podem mais ser usados em combinações. No entanto, testes preliminares mostraram que isso não é necessário.
- O momento técnico. Na implementação final, todas as imagens são protegidas dentro do cliente Unity. Ou seja, para atualizar ou complementar o conteúdo, é necessário atualizar a montagem na loja. Havia uma ideia de transferir imagens para a CDN, para que o cliente extraísse dados do back-end e imagens da CDN. Então seria quase um cliente "thin" com uma interface agradável. Se conseguíssemos fazer isso, o jogo seria infinitamente expansível, com uma oportunidade constante de carregar alguns novos conjuntos de elementos. Mas ficamos sóbrios pelo fato de o jogo ter sido criado por dois dias ... Houve uma tentação, mas vencemos com sucesso.
Bem, cortamos perfeitamente nossas tarefas técnicas, chegamos a tempo com pontualidade e também com margem. Os dias de trabalho foram salvos, nenhum trabalho foi prejudicado (o que não pode ser dito sobre minhas noites e fins de semana).
Meus sentimentos antes de ver o que está acontecendo com o conteúdoNunca brinque com beans de conteúdo
A confiança para o componente técnico foi um truque no caso do segundo ingrediente criativo do jogo - o conteúdo. Aqui cometemos dois erros: não escolhemos uma pessoa responsável e levamos muitos tópicos para gerar pares de palavras que não conseguimos mastigar. Detalhes:
- Após a primeira sessão de brainstorming, decidimos que os elementos da nossa Alquimia se relacionariam com três tópicos: TI, tecnologia alimentar e algo do mundo do Dodo. E não abandonamos imediatamente essa ideia. Palavras e combinações foram geradas simultaneamente em três direções e, embora tenha sido divertido, de alguma forma não chegou imediatamente à conclusão de que os três tópicos não tinham muitos pontos de interseção. Em algum momento, percebemos, no entanto, que algo estava dando errado, abandonamos o foothack e deixamos o Dodo (pizza, é claro). Depois disso, algo começou a se cristalizar. Mas aqui o segundo momento desempenhou um papel.
- Eu escrevi acima que o processo de compilação de conteúdo não tinha um proprietário. As primeiras palavras foram inventadas por vários grupos de pessoas que apenas pensaram em tudo o que veio à mente. Então, em nossa lista, havia coisas estranhas como "shkolota", "feijão" ou "filho da namorada da minha mãe". (E sim, era possível desenhar "beans" para JavaBeans, mas ... não.) Já no meio do projeto, quando nossa árvore de palavras não conseguia criar raízes com base na lógica, uma superação apareceu - Anton Bruzhmelyov, jogou quase todas as palavras que haviam sido inventadas antes e fez novas combinações mais lógicas.
- Mas os dois pontos acima levaram ao fato de que havia muito pouco tempo para inventar conteúdo. Como resultado, obtivemos apenas 128 elementos. É verdade que, de nossos testadores voluntários diante de colegas, apenas uma garota conseguiu coletar todos os elementos em poucos dias. Isso nos tranquilizou. Mas obviamente não levamos em conta o grau de perseverança e determinação das pessoas que lutaram por prêmios na conferência.

Esses mesmos grãos, e também uma abelha cibernética (!), Curiosidade e um log. O que acontece quando a fantasia ganha senso comumO conteúdo é a parte mais importante do jogo, é a que captura ou não se apega ao jogador. O trabalho no conteúdo pode e deve começar antes mesmo do trabalho técnico. Bem, sempre deve haver uma pessoa responsável que, com a mão implacável, cortará tudo o que é desnecessário e deixará apenas o que forma o quadro todo.
Até agora tudo bem ou problemas com a Apple
Longo, curto, mas dez dias antes do DotNext, nossa Alquimia de TI começou a se transformar em um produto funcional. Finalmente conseguimos as combinações finais de palavras. A designer Tanya não precisou redesenhar as imagens 10 vezes. O back-end sempre foi bem feito e caminhou com confiança para a funcionalidade pretendida, e depois finalizei nosso cliente Unity.
É hora de começar a publicar nosso aplicativo nas lojas. Eu não esperava problemas com o Google Play, já tinha a experiência de publicar aplicativos completos, mas a Apple Store, a julgar pelas histórias de colegas, começou a inspirar preocupação. E esses medos não foram em vão.
Publicamos versões de teste para Android e iOS, primeiro testamos por conta própria e depois convidamos mais colegas. Eu peguei quase todos os bugs quando testei sozinho. É verdade que havia um problema com a velocidade da animação nos dispositivos iOS, que eu não conseguia capturar por muito tempo, porque tudo funcionava bem no emulador. Mas espero falar sobre isso no segundo artigo sobre a parte técnica do nosso projeto.
A maioria das coisas que tiveram que ser corrigidas estava relacionada ao layout - o “estrondo” no botão cairá, a janela não se estenderá corretamente em diferentes proporções da tela. Foi uma parte bastante triste e não a parte mais interessante do trabalho, mas no final, alinhamos o design com todas as telas possíveis. Infelizmente, passamos a maior parte do tempo na tela do jogo e examinamos um grande batente ... Mas acabou sendo tão estúpido e desastroso que merece um parágrafo separado.
Então, literalmente três dias antes da conferência, tivemos um conjunto de 128 palavras, back-end pronto e clientes coletados para Android e iOS. É hora de publicar versões públicas. Com o Google Play, tudo correu como um relógio. Mas com a Apple Store, tivemos dificuldades imprevistas.
Enquanto isso, na Apple: "O que mais você pensaria para impedir que os caras liberassem?"Fui avisado de que deitar ao lado é algo terrível, mas não entendi quanto. Primeiro, eles nos mostraram que estávamos apostando e depois fomos redirecionados por alguns motivos muito estranhos: "Seu aplicativo não é um aplicativo, mas uma visão da Web". Após o terceiro ou quarto editorial, simplesmente começamos a escrever em resposta: "Não, isso não é uma visualização da Web, não, temos conteúdo e o aplicativo faz algo útil".
Houve a última noite antes do DotNext e a última tentativa de publicar o aplicativo. Milagre, aconteça! Não dormi bem, como na infância antes do meu aniversário. Eu queria acordar, olhar para o portal de desenvolvedores da Apple e ver uma marca de seleção verde lá. Infelizmente, o milagre não aconteceu.
Sobre fakapy e cat
- Inicie a tela e controle a entrada da Apple.
Essa é a minha dor pessoal. Porque ele ignorou. Os dias dos jogos no início dos anos 2000, quando a tela inicial copiava uma prateleira com jogos de tabuleiro ou simulava uma sala de jogos, já se foram há muito tempo. No entanto, tivemos exatamente isso.
A tela inicial acabou por estar sobrecarregada. E ele saiu completamente, tanto do estilo do jogo quanto do seu objetivo direto - para dar à pessoa a oportunidade de jogar o mais rápido possível. Mesmo na lógica do nosso trabalho de design, o jogador apenas uma vez viu a tela inicial durante o registro. Quando você o reinicia, a tela principal do jogo é aberta imediatamente.
A imagem em si era maravilhosa, havia detalhes nela, havia um gato nela ... e também tinha um campo de entrada muito pequeno, no qual nem todo mundo podia mexer. Nem todo mundo que quer jogar lidou com a tela inicial, então já perdemos uma porcentagem de jogadores no início.
Mas o arquivo mais desagradável se tornou o motivo pelo qual a Apple nos registrou pela última vez: no iPad (cuja proporção é muito mais próxima da praça do que em todos os outros dispositivos que consideramos), a imagem inicial foi redimensionada para que o gato subisse no botão "OK" , e a pessoa fisicamente não pôde clicar nela.
Gato saudável e gato fumante no iPad
Obviamente, não esperávamos que nossos jogadores jogassem no iPad, mas o fato de a cabeça do gato bloquear o início do jogo era inegável. Para não cortar parte da audiência, tivemos que ir de uma maneira mais complicada: anunciamos honestamente que a Apple tinha uma política draconiana e eles nos redirecionaram, mas convidamos todos a se registrarem para testes públicos e participarem do jogo dessa maneira.
O mais irritante é que quase todo o tempo de desenvolvimento usei a tela de inicialização mais simples com fundo preto, um grande campo de entrada e um botão OK, que nada bloqueava.
Qual é a moral de toda essa história? No nosso caso, gastamos mais esforço e pioramos tudo. Melhor é mais fácil. Você direciona a energia na direção certa e obtém o resultado desejado e, se começar a se tornar sábio, o karma universal chega até você e bate com a cabeça dolorosamente.
- O segundo fakap aconteceu com um número finito de elementos no jogo. Como escrevi acima, apenas uma pessoa de todos os nossos testadores coletou todos os elementos em poucos dias. Mas nossos testadores jogavam trechos entre o trabalho e um pouco à noite. Mas nossos verdadeiros jogadores do DotNext estavam determinados a ganhar prêmios, então, no meio do primeiro (!) Dia, tínhamos decidido os três finalistas. Ou seja, essas pessoas, sem poupar os dedos, perfuraram todos os 128, ou melhor, 133 elementos.
Opa, onde está 133, se o tempo todo eu falei sobre 128? Como um viciado em projetos inveterado, no último momento eu queria colocar algo no jogo. Portanto, a designer Tanya desenhou e eu secretamente, de outros participantes do projeto, adicionamos mais cinco ovos de páscoa sobre pessoas que de alguma forma estavam ligadas ao desenvolvimento do jogo. E o número total de elementos que foram mostrados para o player foi codificado por simplicidade. Como resultado, os jogadores coletaram apenas 128 elementos (que não é o número máximo de pontos) e pensaram que isso era tudo.
Lindos cinco sob a forma de elementos de Páscoa.
Em vez de um epílogo
DotNext passou. Para Android, o jogo foi baixado por 146 pessoas. Outros 43 romperam o teste beta público para iOS.
Conversamos para os jogadores. A maioria dos jogadores ficou satisfeita (não recebemos críticas negativas diretas), os prêmios encontraram os vencedores. Bem, como sempre, alívio e devastação caíram sobre mim, quase sempre.
Agora, depois de mais de um mês, fui dispensado e escrevi este post mortem. Bem, não fomos capazes de evitar os fakaps. Mas alcançamos nosso objetivo - implementamos um projeto completo em um mês sem interrupção do trabalho e o lançamos com sucesso na conferência. Essa história me ensinou alguma coisa? Talvez seja hora de parar e se relacionar com o trabalho de design? É difícil dizer, aguarde a próxima conferência!
Na versão offline da nossa "alquimia de TI", sem uma tabela de registros e com uma tela inicial fixa, você pode jogar baixando-a no Google Play .