Como fabricamos o motor e o jogo por um ano e meio

Olá pessoal, queridos amigos! Aqui estou, olho para a infinita folha de código, conduzo uma crítica com um pote de bu vermelho. Um ano se passou. Um ano, droga, apenas um ano - tantos e tão poucos ao mesmo tempo. Tínhamos planos napoleônicos para este ano e agora parece que não tivemos muito tempo. Por outro lado, conseguimos fazer algo que valesse a pena entrar nos anais de ayty marcado como "Demência e coragem". Eu chamaria essa história de "Como cortar seu motor com ferramentas e renderizar do zero em apenas um ano". A publicação será lançada em vários volumes, mas para onde ir, você precisa começar de algum lugar. Então vamos lá!

Exatamente há um ano, começamos com um projeto, sobre o qual agora pretendo escrever em detalhes. Do alto da experiência, posso dizer com segurança: essa é uma das coisas mais arriscadas e ambiciosas que já começamos. Acho que a experiência de nossa equipe será útil para outros desenvolvedores de jogos, mas ele pelo menos divertirá os jogadores.

Aqui eu deveria me apresentar: meu nome é Ivan, sou diretor técnico de uma empresa jovem, mas ambiciosa. Nos últimos 5 anos, desenvolvo motores comerciais. Nos últimos 7 anos, ele trabalhou em uma grande empresa de jogos, onde trabalhou em um mecanismo para um jogo multijogador de sessão multiplataforma. Bem, antes disso, em todos os locais de trabalho anteriores, ele criou motores ou o jogo inteiro. E um esclarecimento importante: aconteceu que quase toda a minha experiência no desenvolvimento de mecanismos está relacionada a plataformas móveis.

O primeiro projeto em que participei foi o desenvolvimento de um mecanismo 3D compatível com OpenGL para dispositivos móveis da Motorola. Havia também o mecanismo para jogos casuais, onde nossos clientes eram Electronic Arts, Chillingo, Big Fish Games e outras empresas eminentes e não muito eminentes. Posteriormente, esse mecanismo foi usado em um grande projeto de jogo.

Em geral, o mecanismo em que trabalhei evoluiu ao longo dos anos. Era uma tecnologia de código aberto, e começamos a desenvolvê-la quando a empresa sob cujos auspícios fizemos jogos para nossos clientes ainda era muito pequena. Continuamos a finalizá-lo, como resultado, lançamos um dos primeiros MMO de atirador no iOS / Android, tendo feito uma espécie de avanço no mercado ainda emergente de atiradores móveis.

Há cerca de um ano, peguei meu coração e decidi sair da empresa, deixar o projeto tão amado e querido, para dar um mergulho livre. Não foi fácil, duvidei por muito tempo, mas a experiência acumulada e o conhecimento adquirido ao longo dos anos de trabalho sugeriram que toda a minha bagagem poderia ser empacotada em algo não menos, ou talvez mais legal. Eu até tinha alguma idéia de como isso pode ser feito, mas não tinha certeza de que poderíamos fazê-lo com a ajuda de uma equipe pequena, de que poderíamos criar tecnologia popular e de alta qualidade no mercado em pouco tempo. Mas, como você sabe, a sorte favorece os corajosos, e conseguimos. Muito rapidamente, reunimos uma equipe de profissionais, motivados por um desejo comum - de criar uma tecnologia nova e completamente única que mostrará ao mercado como tirar o máximo proveito do ferro de passar dos modernos dispositivos móveis.

E aqui a diversão começou. Dentro de um mês da existência de nossa startup de jogos, um plano foi formado. Algo completamente novo e completamente único, superando todas as soluções existentes. Parece muito ambicioso e legal, certo? Assim é! Mas havia riscos. Estabelecemos uma meta - realizar nossa idéia indecente em apenas um ano e em um ano e meio para lançar nosso primeiro jogo.

Eu sei, eu sei, neste momento começa a parecer absurdo. Mas - inesperadamente - essa idéia maluca em nossa equipe encontrou muitos apoiadores (e isso mais uma vez provou o quanto é importante quando se tenta transformar montanhas para conseguir o apoio das mesmas pessoas aventureiras com idéias semelhantes). É um pecado esconder, a ideia de reduzir seu próprio mecanismo realmente motiva os programadores a explorar. Muitos se lembraram da longa história da 4A Games, onde os desenvolvedores, depois de deixarem o GSC, criaram do zero um mecanismo para o aclamado jogo Metro. Parece-me que o sucesso dos caras da 4A motiva mais de uma equipe de progres, assim como ele nos inspirou.

Em geral, decidimos. Esta será a minha história. Em nosso blog, juntamente com meus colegas, vou lhe dizer em que tormento nossa tecnologia nasceu, através dos quais espinhos fizemos o nosso caminho para as estrelas e por que tomamos exatamente as decisões que finalmente tomamos. Vou contar em ordem cronológica a história do Blitz Engine desde o primeiro dia de desenvolvimento até o lançamento final. Sem qualquer embelezamento da cozinha interior, apenas pura verdade.



A primeira pergunta que você provavelmente fará é: "Por que não a unidade ou a irreal?" Bem, a questão é bastante lógica e correta.

Em geral, escolhendo o mecanismo dos sonhos - aquele no qual o próprio jogo que ganhará milhões será criado, todos os desenvolvedores independentes acabam enfrentando uma escolha: Unity ou Unreal. Na verdade, os dois têm seus prós e contras, mas por que eles não nos agradam?

Vamos começar com o Unity. Existem poucas perguntas, com exceção de uma: é C #, e estamos vendo em C ++. Nesse sentido, a Unidade desaparece. Se você deseja nos aconselhar sobre o Unity, porque é uma excelente tecnologia que permite escrever em C ++ com um grande desejo, vamos ser honestos: não é um C ++ completo. E não somos desenvolvedores de C # e ainda não planejamos nos tornar eles. O segundo problema é que, apesar dos esforços dos desenvolvedores do Unity, não é a tecnologia mais rápida em termos de desempenho. As decisões tomadas impõem restrições, inclusive no desempenho.

Irreal - parece, ambos em ++, e os caras escreveram sensato. Mas o motor começou a ser escrito há cerca de 10 anos. As soluções arquitetônicas usadas são as soluções de última geração desse período. Mas o mundo mudou e, ao longo de 10 anos, surgiram muitas idéias novas e progressistas. Talvez não seja tão original para escrever UE5, mas o suficiente para fazer uma descoberta decente. Decidimos apostar nessas novas soluções e abordagens arquitetônicas.

"Sim, o Unreal Engine é legal, é escrito em C ++ por profissionais", dirá o leitor atento. Claro que sim. Mas deixe-me lembrá-lo: nosso objetivo é aproveitar ao máximo os dispositivos móveis e impulsionar o setor. O Unreal Engine é um mecanismo de uso geral, e isso não é ruim, dá uma vantagem à universalidade. Essas tecnologias são projetadas para jogos em diferentes gêneros, e essa vantagem traz consigo restrições de arquitetura para os desenvolvedores do mecanismo. E, no início, planejamos quebrar fronteiras e estereótipos, e não nos encaixar neles.

No final: escolha Unity - escolha um ambiente que seja estranho para nós, escolha Unreal - faça um projeto médio.

Todo mundo sabe que os atiradores modernos de ponta no PC são feitos em seus próprios mecanismos de estúdio. A EA possui DICE e um mecanismo Frostbyte, a Activision e a Ubisoft têm suas próprias soluções tecnológicas, a 4A Games também construiu seu próprio mecanismo, a id Software tem a id Tech. Os desenvolvedores dos principais atiradores nos consoles fazem o mesmo. Sim, é claro, trabalho, tempo, dinheiro e tudo mais nessa situação leva mais. Mas, por outro lado, você tem controle total sobre a tecnologia: pode escolher soluções que serão mais rápidas e eficazes do que as soluções prontas "para todos". A coisa toda, de fato, está na personalização: você decide o que é importante para você e coloca ênfase nela. Exclusivos para consoles são projetados para extrair o máximo do ferro cantilever super poderoso. E é disso que precisamos, não apenas dos consoles, mas dos telefones celulares!

Mas decidimos seguir o oposto: não tente criar uma solução para o ferro de ponta, mas primeiro observe os dispositivos mais fracos que definitivamente precisamos suportar. Levamos em conta suas características e começamos a procurar tecnologias que nos permitissem rodar nesses dispositivos de alta qualidade. Ou seja, extraia o máximo de visual interessante de um mínimo de características. E sim, é claro, as soluções precisavam ser tais que, posteriormente, poderíamos melhorar facilmente sem restrições para dispositivos móveis de última geração, até o nível de console e qualidade do PC.

Quase todos os atiradores móveis modernos são baseados em Unity ou Unreal. Você já entendeu tudo sobre nossos planos ambiciosos de transformar a indústria, por isso o fato de termos decidido introduzir inovações já nesta fase não será uma surpresa para você. Ignoramos o dilema tradicional Unity vs Unreal e começamos a cortar nosso motor.

Para começar - mostrarei o vídeo. Foi o que aconteceu em um ano. Fizemos o possível para extrair o máximo de dispositivos móveis e criar um produto que pudesse, se não competir com jogos de mesa, pelo menos se aproximar deles em qualidade. Na verdade, como eu já disse, nosso principal objetivo, não importa o quão patético possa parecer, é tornar os jogos para dispositivos móveis muito melhores e levar a indústria adiante.


Existe uma regra "conheça seu hardware". É difícil superestimar sua importância. Muitas vezes, vimos como as principais equipes fazem algo impossível para os consoles - porque sabem o que construir e decidem com antecedência que tentarão superar. Sempre quisemos fazer atiradores, mas avaliamos sobriamente nossos pontos fortes: hoje o mercado de atiradores em consoles e PCs é enorme e cheio de produtos de alta qualidade. Ao mesmo tempo, o mercado móvel é imerecidamente privado de atenção, embora muito possa ser feito lá. Em geral, tudo se encaixou: decidimos corrigir a situação.

Resumindo, formamos esta direção geral:

  • Tecnologia própria
  • Nível de qualidade do console em plataformas móveis
  • O foco principal está nos atiradores
  • Mecanismo de rede do jogo de sessões
  • Infraestrutura para operar o jogo
  • E, de fato, um jogo legal.

Planejamos implementar tudo isso em 1,5 anos.

Naturalmente, de nossos colegas da oficina, ouvimos constantemente que criar seu próprio motor com Unity e Unreal é demência (e sem muita coragem). Nos ofereceram um grande número de soluções prontas nas quais alguém já estava fazendo alguma coisa. Mas tínhamos uma opinião completamente diferente. Decidimos tentar e agora posso dizer com orgulho que estamos indo bem. O motor já está lá, e é muito promissor. Exatamente do jeito que queríamos. Estamos trabalhando ativamente em nosso novo jogo, planejamos lançá-lo já este ano.

Não vou me esconder, as pessoas ainda estão céticas em relação à nossa ideia quando, quando nos encontramos, compartilhamos nossos planos. Mas tudo muda quando pegamos o iPad e mostramos as melhores práticas e trailers. As pessoas entendem do que se trata. Mostramos a programação do nosso jogo nas entrevistas de novos funcionários, e eles não acreditam que este seja um produto para celulares. Às vezes, eles especificam três vezes se estamos brincando. Um produto revolucionário requer soluções inovadoras. Sim, este ano foi difícil, tivemos que trabalhar muito. Mas agora temos um mecanismo revolucionário, um excelente jogo BattlePrime e uma história engraçada que será interessante para muitos desenvolvedores.


Normalmente, depois de assistir a este vídeo, somos informados de que eles não acreditam. O que é provável no lançamento final, tudo será diferente. Em geral, não é habitual em nossa indústria confiar em trailers ... Mas você realmente acredita nisso. E conte-nos nos comentários como você está!

Queremos contar como desenvolvemos o Blitz Engine e, por isso, lançarei uma série de artigos sobre o ano de nosso desenvolvimento.

A segunda parte: habr.com/en/post/465343

Source: https://habr.com/ru/post/pt461623/


All Articles