Continuamos uma série de publicações sobre as melhores aplicações móveis dos graduados em "IT SAMSUNG SCHOOLS".
Hoje é a palavra para jovens desenvolvedores de Novosibirsk, vencedores do concurso de aplicativos VR “SCHOOL VR 360” em 2018, quando eram estudantes do primeiro ano. Essa competição terminou com um projeto especial para os graduados da "IT SAMSUNG SCHOOLS", onde ensinaram o desenvolvimento do Unity3d para os óculos de realidade virtual Samsung Gear VR. Todos os jogadores estão familiarizados com o gênero Tower Defense - você precisa defender o território de atacar inimigos com a ajuda da construção de torres. Os caras decidiram usar essa mecânica e fazer seu jogo de VR com base nela, mas do outro lado da barricada: aqui você é um piloto, e seu objetivo é ajudar o desapego ao solo até o fim, atirando com torres que bloqueiam o caminho. O jogo é feito no estilo retro LowPoly - modelos tridimensionais com um pequeno número de polígonos, como nos antigos jogos de computador. Sob o corte, uma descrição do processo de desenvolvimento, vídeo e capturas de tela do jogo, um link para a fonte.
O que finalmente aconteceuSeguinte
Brevemente sobre as condições do projeto Samsung “SCHOOL VR 360”, no âmbito do qual o desenvolvimento do jogo AirAttack foi realizado. Assim, os graduados da SAMSUNG IT SCHOOLS foram oferecidos:
- Faça um programa de auto-estudo em 4 meses, para o qual em novembro foram emitidas licenças para treinamento em especialização de 5 cursos on-line sobre desenvolvimento de RV
- Forme uma equipe e desenvolva seu próprio projeto em 3 meses. Consultas individuais dos profissionais em desenvolvimento de RV à empresa “Fascinating Reality” foram para ajudar
- Em maio, apresente o projeto aos especialistas da Samsung, “Fascinating reality” e outros membros do júri.
Sobre a ideia
Kirill Prokofiev, capitão da equipe:Decidimos adotar o formato do fliperama, que seria familiar para todos, mas ao mesmo tempo parecia interessante em VR e seria aberto de um ângulo completamente diferente. Os atiradores de arcade nas lojas de aplicativos VR são mais que suficientes. Decidimos atravessar o arcade aéreo com o Tower Defense: apenas aqueles que não passam o tempo no metrô não jogam jogos em que você protege as torres dos aviões invasores.
Você já se perguntou quem está jogando contra você quando você atualiza torres?
Vladimir Sperling, desenvolvedor:Nossa ideia era criar um aplicativo LowPoly para jogos, porque esse é o único estilo possível para um aplicativo VR móvel dessa magnitude. Do ponto de vista da jogabilidade, decidimos não desenvolver os tópicos hackneyed existentes, como passear no espaço e a passagem de labirintos de realidade virtual. Queríamos algo mais.
Sobre experiências e erros anteriores
Vladimir Sperling, desenvolvedor:
Quando conheci a VR um ano antes, em 2016, no ano em que me formei na IT SAMSUNG SCHOOLS, minha primeira equipe consistia em apenas duas pessoas. Decidimos criar um arcade de corrida, chamado Speed Riders. As responsabilidades foram divididas da seguinte forma: um tinha que ser responsável pelo código do programa, arquitetura e adaptação do aplicativo para VR e o segundo pelo conceito, design e integridade da ideia. Talvez essa abordagem tenha sido bem-sucedida na implementação do aplicativo em pouco tempo e com uma equipe com uma qualificação mais alta, mas naquele momento não conhecíamos os recursos de design dos aplicativos de RV e cometemos muitos erros.
Por exemplo, tentamos implementar uma interação muito complexa de um jogador com objetos do mundo, enquanto a ênfase estava no fato de que qualquer movimento do jogador poderia levar ao efeito de enjoo ou diminuição da qualidade do movimento. Isso levou a uma interface incrivelmente carregada e manipulações complexas, como resultado, após o primeiro minuto do jogo, o usuário quis remover pontos e não retornar. Ficou claro que, para a correção, é necessário revisar o conceito de todo o projeto. E apareceu 2 semanas antes da defesa!
Demonstração do jogo para todos na competição anual de projetos da SamsungAlém disso, a falta de visualização e automação adicionais para criar níveis criou problemas: dois programadores iniciantes tiveram que fazer níveis em 3-4 estágios. Não tivemos um trabalho conjunto no git - o Unity3D armazena as cenas inteiras e é impossível combiná-las mais tarde: tivemos que esperar até que um de nós terminasse o trabalho, depois o outro conectasse seus detalhes ... e assim por diante. Mais tarde, ao desenvolver o AirAttack !, quando tivemos muitas cenas, esse problema foi parcialmente resolvido pelo fato de cada um de nós trabalhar com cenas diferentes.
Trabalhe no jogo
Vladimir Sperling, desenvolvedor:Um ano depois, decidi novamente participar da VR 360 School e Cyril e eu nos unimos. Depois de passar várias horas com uma folha de papel e xícaras de chá, dividimos o projeto inteiro em etapas e estabelecemos prazos:
- Criando o menu principal
- Implementação de nível 1
- Teste e depuração inicial de bugs críticos
- Otimização de VR, solução de problemas, criação de funcionalidade (pagamos um papel muito importante aos detalhes, porque nosso objetivo é criar e otimizar, e não "ficar" muito e muito mal) e talvez melhorias arquitetônicas
- Adicionando novos níveis
- Publicando o aplicativo na Oculus Store
- Adicionar multijogador
- Adição de materiais para download (na forma de níveis, atualizações, novos navios etc.)
Durante o desenvolvimento, apesar de prazos tão curtos, tentamos discutir cada momento de acordo com o diagrama.

Qualquer idéia foi discutida e um veredicto foi emitido: seja ou não. Todas as idéias aprovadas foram divididas em tarefas e implementadas. A fase de testes foi realizada por conta própria, atraiu amigos e conhecidos. Ouvimos sugestões e comentários, especialmente observados que causaram dificuldades para quem entrou no jogo pela primeira vez, o que precisou ser explicado durante a sessão. Discutimos novos recursos e iniciamos uma nova rodada de desenvolvimento.
Os prazos eram cumpridos com rigor: às vezes as idéias mais interessantes precisavam ser rejeitadas quando se percebia que não teríamos tempo para implementá-las no prazo.

Considerando a experiência anterior com o Unity3D e o conhecimento de como ele pode ser modificado para simplificar o desenvolvimento e a criação de níveis, demoramos um pouco para criar "scripts auxiliares". Por exemplo, exibindo o raio de destruição das torres - agora podemos controlar quais seções da estrada são cobertas por torres, quais seções serão as mais difíceis e quais permitirão que o jogador faça uma pausa e recarregue ou respire. Ou outro script: exibindo a trajetória de movimento das unidades e do jogador, para que possamos ver claramente se a trajetória está corretamente desenhada e, se necessário, corrigi-la. Na imagem, a linha está quebrada, mas durante o movimento foi suavizada a trajetória.
Para a final do concurso, planejamos implementar apenas parte dos planos, parar na criação de 4 níveis e, no futuro, começar a implementar funcionalidades adicionais. E tudo ficaria bem, se não ...
A esperança de que todas as bibliotecas de plug-ins funcionem perfeitamente foi um dos principais erros durante o desenvolvimento do jogo. Tivemos que modificar a biblioteca principal do Oculus, o que nos permitiu utilizar totalmente os recursos do GearVR, e tudo ficou mais complicado devido à documentação incompleta. Cada biblioteca conectada ao projeto foi analisada quanto ao desempenho: parte do código foi excluída e construções ineficientes foram corrigidas para outras mais simples. Em alguns lugares, as variáveis de ponteiro 'Inseguras' foram usadas para obter o desempenho máximo e esse código foi cuidadosamente testado para vazamentos de memória. Uma abordagem modular foi usada na qual todos os objetos são independentes e podem ser removidos da cena sem danificar o código. Cada nível foi testado e, na "carga aumentada", o número de quadros por segundo não foi inferior a 50 fps.
Kirill Prokofiev, capitão da equipe:Nossa equipe cumpriu completamente os prazos estabelecidos - foram criadas cerca de duas dúzias de scripts, a interface da interface do navio, a interface do usuário de dois menus e instruções.
A versão final do menu da interface do usuário A aplicação é totalmente funcional. Todos os modelos foram cuidadosamente selecionados e otimizados para reduzir o número total de polígonos na cena. A base foi tomada em modelos prontos, em domínio público, com permissão para mudança.
Enquanto trabalhava no projeto AirAttack! Passamos um tempo considerável no UED (User Experience Design, ou UX). Além dos elementos da interface do usuário - o menu principal, o menu de saída do nível, a interface do usuário da nave e até as torres da interface do usuário (Life Strings) - vários processos são acompanhados por efeitos sonoros e visuais (por exemplo, partículas de fogo ou sombra de um vidro de avião). Todo o jogo consiste em modelos Low-Poly, que não apenas aumentam a produtividade, mas também criam uma atmosfera.
Sumário
O jogo recebeu o título de "Melhor aplicação de jogo" na competição "VR 360 School" em 2018. O resultado de nossos esforços está no vídeo abaixo.
Fontes do jogo:
bitbucket.org/Vova_SH/air-attackAutores:
Kirill ProkofievDesigner de jogos
Capitão da equipe
prokyhouse@yandex.ru
Swift, Java, desenvolvedor de C #, designer
Medalhista do Cyber Security Championship
Vencedor da rodada regional do concurso de projetos “IT SAMSUNG SCHOOL” em 2017
Vencedor do concurso "VR 360 School" 2018
Vladimir SperlingUnity Developer
vladimir-shperling@yandex.ru
Desenvolvedor Kotlin, Java, C #
1º lugar da final do concurso de projeto “IT SAMSUNG SCHOOL” em 2016
Vencedor do concurso "VR 360 School" 2018