paint-brush
O que os desenvolvedores de jogos de IA fazem e como se tornar umpor@aleksandrpindyk
1,223 leituras
1,223 leituras

O que os desenvolvedores de jogos de IA fazem e como se tornar um

por Aleksandr Pindyk1m2022/06/07
Read on Terminal Reader
Read this story w/o Javascript

Muito longo; Para ler

Aleksandr Pindyk é o engenheiro-chefe da equipe de IA do estúdio Wargaming em Kyiv. Ele tem desenvolvido IA (inteligência artificial) para um dos jogos online mais populares - World of Tanks. A IA no desenvolvimento de jogos varia em complexidade, pois há vários aspectos da experiência de jogo que podem ser auxiliados com a ajuda da inteligência artificial.

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - O que os desenvolvedores de jogos de IA fazem e como se tornar um
Aleksandr Pindyk HackerNoon profile picture

Meu nome é Aleksandr Pindyk e sou o engenheiro-chefe da equipe de IA do estúdio Wargaming em Kyiv. Por mais de cinco anos, nossa equipe desenvolveu AI (inteligência artificial) para um dos jogos online mais populares - World of Tanks. Quero falar mais sobre a profissão de desenvolvedor de IA no desenvolvimento de jogos, as especificidades de seu trabalho e como se tornar um.


Primeiro, vamos definir o que é IA de jogo. Se nos afastarmos das definições secas da Wikipedia, o jogo AI é um sistema que imita o comportamento de um personagem ou jogador. Dependendo do gênero e do objetivo do jogo, diferentes tecnologias e abordagens são utilizadas no desenvolvimento da IA. Vejamos os principais tipos de jogos e os objetivos da IA.


Jogos onde o objetivo da IA ​​é derrotar o jogador humano


Vamos dar uma olhada em jogos que todos nós conhecemos. Um bom exemplo aqui seria xadrez e Go. Esse tipo de jogo pode usar inteligência artificial baseada em redes neurais. Como o objetivo principal da IA ​​é derrotar o jogador a todo custo, ela não precisa imitar o comportamento humano. As ações de tal IA geralmente parecem incompreensíveis e às vezes até assustadoramente artificiais. Mesmo agora, um humano não pode derrotar AI (AlphaZero) no mesmo xadrez e Go.


Além desses dois jogos clássicos, experimentos com uma abordagem semelhante estão em andamento em jogos de cartas como o pôquer e em jogos competitivos como StarCraft e DOTA 2. Muitos cientistas e programadores do Google e da OpenAI estão trabalhando na construção disso. No entanto, provavelmente seria uma solução em nuvem, pois são necessários muitos recursos para treinar a inteligência artificial.

Essa abordagem não se justifica no desenvolvimento de jogos devido à sua complexidade e aos objetivos conflitantes para os quais a IA é usada.


No desenvolvimento do jogo, o objetivo geralmente não é vencer o jogador a qualquer custo. E não se esqueça das capacidades do servidor. Outra desvantagem dessa abordagem é a necessidade de treinar a IA novamente após a introdução de novas mecânicas.


jogos PvP

São jogos cujo ciclo principal é o confronto de jogadores ou equipes entre si (jogador contra jogador). Alguém pode se perguntar qual é o papel da inteligência artificial neste cenário? Mas existem várias áreas em que a IA é usada nesses jogos:


  • bots para iniciantes

    Eles são usados ​​tanto no treinamento inicial quanto como adversários nas fases iniciais do jogo. Se não houver matchmaker de acordo com as habilidades do jogador ou quando for impossível equilibrar as equipes, os bots permitem aumentar o nível de dificuldade dos jogadores sem problemas. E elimine perdas frequentes contra jogadores com habilidades muito melhores. Os modos de treinamento de bot em World of Tanks e Hearthstone são bons exemplos.


  • Lançar um projeto ou abrir novas regiões de jogo

    O PUBG Mobile usou esse truque no lançamento. Quando era impossível montar equipes de 100 pessoas, os bots se lançaram na batalha. O modo de 128 jogadores do Battlefield 2042 usa bots com até 64 oponentes. Quando o servidor cobre um grande território com diferentes fusos horários, os bots podem suavizar o rebaixamento online para regiões remotas. Por exemplo, quando um servidor abrange a Europa e a Ásia.


  • Modo de treinamento

    Muitas vezes é necessário em jogos lançados há muito tempo e nos quais há muitos jogadores profissionais, que são difíceis de jogar sem uma boa preparação. Além disso, esses jogos nem sempre separam iniciantes e profissionais em um matchmaker, e jogar com bots se torna quase a única maneira de adquirir uma habilidade. Um bom exemplo aqui seria Escape from Tarkov. Ao jogar com bots, você não conseguirá completar missões, mas ao mesmo tempo não perderá seu equipamento, aprenderá o nível e praticará combinações de equipamentos e habilidades de tiro.


Do ponto de vista do desenvolvimento, esses jogos precisam ser capazes de ajustar a dificuldade da IA ​​e depurar a lógica de tomada de decisão dos bots. A própria IA funciona no servidor do jogo. A equipe de desenvolvimento implementa o comportamento dos bots tanto quanto possível semelhante ao comportamento de uma pessoa que sabe jogar bem. Pelo menos os bots tentam ser como esses jogadores 😁


jogos PVE

No ciclo principal desses jogos, a interação do jogador é com o ambiente e a IA (jogador versus ambiente). Podem ser jogos offline puramente para um jogador (Witcher 3) e PVE online (Genshin Impact), bem como eventos e modos especiais em jogos PVP (Mirny-13 para Halloween no World of Tanks). Nesses jogos, a IA não tem o objetivo de derrotar o jogador a qualquer custo. Mesmo vice-versa. Um excelente designer de jogos disse: "O principal objetivo da IA ​​é desistir lindamente." Para que um jogador humano possa obter emoções positivas com a vitória, neste caso, a IA é um dos elementos que definem a complexidade do jogo.


Equilibrando o número de inimigos, sua "espessura" e a capacidade de jogar, você pode criar o nível certo de complexidade e interesse para uma pessoa. Além disso, dependendo do jogo, a importância do comportamento visualmente lógico do bot AI aumentará ou diminuirá. Em jogos como Genshin Impact, bots são apenas bucha de canhão, e o jogador nem sempre presta atenção em quão lógicos eles se comportam.


Outra opção ao usar bots é para aliados simples e habilidades do jogador. Por exemplo, os mobs no DOTA 2 são bastante primitivos e têm apenas um objetivo - avançar e atacar o inimigo. Quando o jogo é para um jogador e offline, a IA geralmente funciona localmente para o jogador no cliente. No caso de jogos como World of Tanks, os modos AI e PVE funcionam no servidor. É necessário porque o jogo é online e o servidor controla todas as ações. Limita os recursos de CPU e RAM que a IA pode usar.


Uma das tarefas críticas no desenvolvimento dessa inteligência artificial é a capacidade de criar cenários comportamentais envolventes para bots. Por exemplo, os jogadores devem chegar à posição, defendê-la por algum tempo e, após receber reforços, partir para o ataque e derrotar todos os inimigos. O script de AI do jogo pode consistir em várias partes. Na primeira parte, os bots são fracos, permitindo que os jogadores cheguem rapidamente à posição desejada. Então, os bots que atacam os jogadores ficam mais fortes e passam a usar táticas que impedem os jogadores de irem para a ofensiva antes do tempo. Após o momento X, os bots cometem alguns erros, o que lhes permite visualmente, sem reduzir a complexidade, dar vantagem aos jogadores. Tendo percebido isso, eles partirão para a ofensiva e poderão vencer.


Uma ferramenta que auxilia no desenvolvimento de jogos

Além da jogabilidade, a inteligência artificial auxilia no desenvolvimento de jogos em diversas áreas:


  • Design e teste de nível - Por exemplo, os bots podem andar ou dirigir por todo o nível e, assim, revelar áreas intransitáveis, congestionamentos e outras nuances no design da geometria do nível.


  • Teste de equilíbrio de nível - Se você lutar contra os bots, coletando estatísticas, poderá entender como são boas as novas alterações de equilíbrio de nível. Uma condição essencial para tal teste é a habilidade dos bots. Para obter as estatísticas mais relevantes, os bots devem jogar no nível do jogador médio. A ausência da necessidade de uma grande equipe de testadores de nível acelera drasticamente o processo de polimento da balança.


  • Testando novos itens e habilidades - O desenvolvedor pode usar Bots como oponentes de teste ao criar novos equipamentos, itens, etc., no jogo. Por exemplo, você pode adicionar bots ao mapa ao introduzir um novo rifle e verificar como ele executa sua tarefa.


  • Teste funcional e de carga - A IA ajuda a testar diferentes componentes do jogo e até a si mesma 😀. Por exemplo, você pode criar um cenário no qual um bot de cada tipo de arma atirará em todos os tipos de superfícies e coletará estatísticas sobre qual superfície, como ela rompe e se o dano é causado ao inimigo atrás da superfície. Você pode carregar o teste do cliente. Mande bots andarem pelo mapa e vejam se há quedas de FPS ou mesmo do jogo todo. E para o servidor, você pode realizar testes de carga e, assim, verificar como o servidor se comportará durante um pico de carga “inesperado”.


Como a IA funciona nos jogos

Consideramos como a IA do jogo ajuda no desenvolvimento do jogo e agora veremos como ela funciona e quais abordagens são usadas em seu desenvolvimento.


A IA funciona em um ciclo: Sentir >> Pensar >> Agir para atingir seus objetivos. Sempre que novas informações sobre o ambiente aparecem, é impossível tomar uma decisão ou a execução da ação é concluída/interrompida, a IA entra em uma nova rodada do ciclo Sentir >> Pensar >> Agir .

Vejamos cada uma das principais etapas do ciclo de ação da IA.


Coleta de informações (Sentido)

Primeiro passo. AI (agente ou bot) coleta informações sobre o ambiente para tomar qualquer decisão. Por exemplo, podem ser informações sobre oponentes e aliados. Suas posições, condição, equipamentos, etc.


Tomada de decisão (pensar)

A próxima etapa é a parte mais complexa e com uso intensivo de recursos da IA. Já que todas as informações coletadas pelo agente de IA são processadas e analisadas nessa etapa. Dependendo do princípio de tomada de decisão eletiva, a complexidade dos cálculos e a precisão do resultado aumentarão. Considere as principais abordagens para a tomada de decisão:


Árvores de Decisão - Brincando, você pode chamá-lo de desenvolvimento orientado "se". A maneira mais fácil de construir IA é criar muitas verificações "se-então". Também pode ser chamado de método que reage instantaneamente a eventos externos. A partir dessas verificações, é criada uma árvore através dos nós pelos quais o agente de IA passa até encontrar um nó no qual haverá uma ação. Normalmente, as etapas de coleta e análise de informações são combinadas em um bloco e geralmente são uma condição de teste "se". Nesta abordagem, se o resultado da verificação for "Falso", tanto a transição para a próxima verificação quanto a execução da ação são possíveis.



Máquina de estados finitos - Um caso em que o agente de IA está em um dos estados possíveis e tem informações sobre qual dos estados ele pode ir. Por exemplo, o bot estava em estado de patrulha. Ele pode entrar no estado de ataque inimigo ou recuar desse estado. A escolha de qual estado ir pode depender de quantos pontos de vida o bot possui e a proporção de aliados/inimigos em um raio de X metros. O número de estados e condições de transição não é limitado. Em cada novo ciclo de atualização de estado, geralmente a cada quadro (às vezes, para otimizar o consumo de recursos, as condições de transição são recalculadas com menos frequência), as condições de transição para cada estado são verificadas. E se as condições forem atendidas, a transição é ativada. A vantagem dessa abordagem é que temos uma lógica clara de transição de estado.



Sistema de Utilidade - Um sistema é baseado na avaliação da utilidade de uma determinada ação ou transição. A lógica é que o agente de IA possui um conjunto de ações. Ele escolhe qual realizar em função da situação atual no campo de batalha, dos coeficientes de prioridade inerentes à execução de uma ação ou transição de um estado para outro. Por exemplo, um bot encontrou o inimigo enquanto patrulhava a área. Será mais importante para este bot não atacar o inimigo, mas se esconder, dar o alarme e pedir ajuda a outros bots. Nesse caso, seu coeficiente para evitar uma colisão direta será maior do que o desejo de atacar o inimigo. E se o bot não tiver uma vantagem crítica sobre o inimigo, ele não escolherá o ramo de comportamento associado ao ataque.



Árvores de comportamento - É um complemento conveniente para máquinas de estado. Ele permite que você tire o gerenciamento de estado para as próprias máquinas de estado. Assim, podemos criar uma árvore de condições pelas quais trocaremos as máquinas de estado para o agente de IA.





  • Comportamento Orientado a Objetivos - É um conceito que permite que os bots joguem, focando no papel e objetivo mais adequado para o agente de IA e, em função disso, escolhendo em qual Árvore de Comportamento trabalhar. Essa árvore de comportamento determina as condições para a transição do bot para diferentes estados e a execução de ações.


    Nesse caso, o bot usa a lógica difusa com base no cálculo do coeficiente de importância e utilidade de uma determinada função. Por exemplo, uma função para um bot com uma arma ou escudo. O coeficiente para se tornar um "tanque" será maior do que para o papel de batedor. Em seguida, após a escolha de uma função, é feito um cálculo de qual objetivo agora é mais útil. Se houver um mágico preparando um feitiço próximo a nós, o melhor objetivo será protegê-lo a todo custo. Em seguida, com base no objetivo atual, um conjunto de árvore de comportamento é selecionado, o que permite que o bot implemente o comportamento para cumprir o objetivo.


    Essa abordagem permite criar bots que não obedecem a comandos, mas escolhem uma ou outra ação com base em suas capacidades, situação de combate atual e prioridades dos desenvolvedores. Usamos essa abordagem no World of Tanks ao desenvolver IA.


Ação (Act) - Etapa final. É a execução da tarefa. Normalmente, isso inclui encontrar um caminho e mover-se ao longo do caminho, implementar disparos, se proteger, etc.


Então, o que um desenvolvedor de IA faz? A principal tarefa é implementar o ciclo Sentir >> Pensar >> Agir. O desenvolvedor de IA trabalha em estreita colaboração com outros membros da equipe, pois a implementação e otimização de algoritmos de comportamento de IA é um trabalho conjunto do programador, do designer de jogos e do controle de qualidade. Vamos passar pelo ciclo de IA novamente, mas do ponto de vista do desenvolvedor.


Coleta de informações (Sense) - nesta parte do ciclo, o programador de IA é responsável por coletar e armazenar informações sobre a situação no campo de batalha. Juntamente com o game designer, o desenvolvedor determina quais informações são coletadas, com que frequência são atualizadas e como são distribuídas entre os agentes de IA da mesma equipe no caso de um jogo em equipe.


Em jogos de equipe, alguns desses dados são comuns a todos os agentes de IA, e os bots podem trocar essas informações, permitindo maior realismo para os bots de IA. Muitas vezes a coleta de informações não consome muitos recursos, exceto em casos de ray casts frequentes, que o desenvolvedor deve otimizar.


Além disso, algumas das informações podem ser estáticas. Por exemplo, no World of Tanks, criamos várias camadas de dados no mapa. Uma camada é responsável por disparar de ponto a ponto em todo o mapa. Ele permite que você entenda o quanto uma posição está protegida ou quais áreas do mapa podem ser controladas a partir desse local.


A outra camada informa o quão bem a área está escondida da detecção, o que permite que você entenda se esses arbustos são bons para um tanque de reconhecimento ou não. A outra camada é o NavMesh , que permite que os bots se movam pelo mapa. É apenas parte dos dados criados antecipadamente e, além disso, também podemos fazer pré-cálculos. Por exemplo, podemos armazenar não apenas um mapa de abrigos, mas também em quais direções eles protegem.


Para mapas grandes, podemos pré-calcular caminhos longos de um ponto de interesse no mapa para outro. Ao mesmo tempo, você pode calcular o quão bom é o caminho em termos de comprimento, complexidade do terreno, etc. Durante a batalha, você já pode sobrepor informações dinâmicas sobre inimigos em potencial ao longo da rota. Assim, você pode economizar muito em recursos de CPU e RAM ao escolher um caminho. É uma parte essencial e empolgante do desenvolvimento da IA. Além do aparente benefício da otimização e adição de novos recursos aos bots, o desenvolvedor ganha um excelente campo para desenvolvimento, já que tais camadas precisam ser inventadas e os algoritmos precisam ser aprimorados e adaptados ao seu projeto.


Tomada de decisão (Think) - O desenvolvedor geralmente não implementa a lógica do comportamento do bot por conta própria. Ele faz isso junto com o designer do jogo.


Além disso, o desenvolvedor implementa um sistema que é responsável pela execução da Behavior Tree (podemos chamar provisoriamente de AI engine). Juntamente com o designer do jogo, eles projetam uma API para trabalhar com a Árvore de Comportamento e, em seguida, o desenvolvedor implementa a lógica dessa API. Por exemplo, métodos que permitem calcular a probabilidade de atingir um inimigo, a atratividade de um abrigo ou avaliar a ameaça em um setor. É a parte mais intensiva de recursos do trabalho de IA.


Uma das opções para resolver o problema de desempenho e recursos é o desenvolvimento de algoritmos eficientes e o uso eficiente de dados calculados estaticamente. Com base neles, a IA decide a otimização de ações específicas. Ao mesmo tempo, o sistema de tomada de decisão deve ser suficientemente flexível e estável porque nem sempre é possível garantir que o bot tenha todos os subsistemas disponíveis. Ou quão bem eles estão se adaptando ao papel desempenhado pela IA. E, às vezes, uma base de IA bem construída a ajuda a sobreviver a danos parciais.


Tivemos um caso engraçado no World of Tanks quando decidimos tentar usar a lógica de um tanque convencional para artilharia, ajustada para a capacidade de atirar como artilharia. Fizemos uma luta regular em que nosso QA decidiu provar que joga melhor que os bots (na verdade joga, mas nem tudo é tão simples).


Ele poderia contornar os bots, chegar à base inimiga e decidir destruir toda a artilharia inimiga, três bots. Ele ignorou que foi descoberto por veículos inimigos não muito longe da base. Ao entrar na linha de visão da artilharia, foi imediatamente observar a batalha no modo de câmera livre. Acontece que os bots, vendo a aproximação de um inimigo perigoso, decidiram atirar nele, calculando com antecedência o local onde ele provavelmente apareceria. E assim que nosso herói apareceu na linha de visão, os bots atiraram nele. E tudo ficaria bem, mas todas as três artilharias fizeram isso ao mesmo tempo. E descobrimos um jogo de bots de artilharia inesperadamente bem coordenado, embora ainda não tenha sido implementado!



Action (Act) - Nesta parte, o desenvolvedor implementa mecanismos que permitem ao agente de IA executar instruções após tomar uma decisão. Implementando módulos responsáveis ​​​​pela navegação (por exemplo, adaptando A * aos recursos do jogo), tiro, etc. Por exemplo, você pode pegar o algoritmo A * e usá-lo em seu produto. Mas, na maioria das vezes, você terá condições adicionais, como falésias. Se não for otimizado, o caminho para uma unidade pesada pode ser construído muito perto do penhasco, levando à sua queda. Neste caso, é necessário introduzir coeficientes adicionais para a aproximação a uma falésia ou outro tipo de terreno inconveniente e implementar um alisamento suave do percurso. Caso contrário, os bots irão subir a "escada". Esta área está muito próxima da jogabilidade, pois usa sua mecânica para concluir as tarefas.


Ferramentas O desenvolvedor de IA, além da implementação do ciclo (Sentir >> Pensar >> Agir), cria ferramentas para ele, o game designer e o QA. Às vezes, para implementar uma determinada mecânica, é mais fácil criar uma ferramenta com a qual você possa configurar e utilizar a funcionalidade e só então partir diretamente para a execução da tarefa propriamente dita. Um designer de jogos precisa ser capaz de analisar a lógica e a sequência das decisões de IA. Para isso, nós do World of Tanks criamos ferramentas que permitem registrar todas as ações dos bots em batalha e depois criar replays que visualizem os passos dos bots, a sequência das decisões tomadas e os dados com base nos quais essas decisões foram tomadas. feito.


Os desenvolvedores também estão criando sistemas que permitem que a IA ajude a desenvolver o jogo. Você pode criar um kit de ferramentas para designers de nível que permitirá organizar rapidamente os bots por nível e definir metas de cenário para eles.


Por exemplo, percorra todo o mapa e verifique se está tudo bem com a capacidade de passagem. Para controle de qualidade, geralmente é necessário criar ferramentas que permitam verificar subsistemas individuais do jogo usando bots.


No World of Tanks, usamos AI para personalizar como a AI joga no mapa. Para fazer isso, criamos uma ferramenta de coleta de estatísticas. Em seguida, mudamos o mapa, como a aparência das zonas estratégicas para bots e onde estão os pontos de transferência entre essas zonas. Em seguida, 1000-3000 batalhas são lançadas no servidor. Depois disso, examinamos o padrão de batalha usando estatísticas e mapas de calor. O designer do jogo ajusta as configurações do mapa e as repete em um círculo com base nesses dados. Ao mesmo tempo, usando capacidade de servidor suficiente, você pode obter essas estatísticas para a noite de bots e analisar e fazer alterações pela manhã.



Como funciona na prática

Vamos usar um exemplo real do World of Tanks para ver o ciclo completo de criação de novas funcionalidades usando IA. Também poderemos observar como um programador, designer de jogos e QA interagem entre si.


Vamos começar com esta tarefa: precisamos de bots que vão bater no jogador e explodir, causando dano a ele e a um pequeno raio ao seu redor. Vamos chamá-los de "ouriço". Esses "ouriços" irão mais rápido que o jogador sob condições adicionais. Eles não atirarão, terão formato semelhante a uma bola, podem explodir com um tiro, devem atingir apenas os jogadores e andar em um grupo de X unidades. Parece, o que poderia ser mais fácil?


Tendo recebido esses dados do designer do jogo, o desenvolvedor lembrou-se da matemática e de como calcular o avanço no movimento do jogador e, junto com o designer do jogo, criou um conjunto de lógica da Árvore de Comportamento que direcionava o bot para o inimigo e o fazia colidir. Um conjunto específico de métodos foi implementado com responsabilidade para minar e danificar a área por parte do programador. Para verificar, eles criaram um script especial onde colocaram um bot ruff e um bot regular.


O primeiro atingiu o segundo com sucesso e tudo estava bem. Decidimos testá-lo no jogo dentro da equipe e coletar estatísticas. E mostrou que os bots do mapa real não chegam aos jogadores. Descobriu-se que os bots sofreram danos devido à alta velocidade de salto nos solavancos e ao cair. Depois de várias dessas quedas, eles explodiram e causaram danos aos rufos vizinhos. Por sua vez, criou uma reação em cadeia. Corrigi o número de bots ativos e adicionei uma unidade de dispersão lógica. Também ajustei o cenário de teste com base em um mapa real com colinas.


Depois de executar a segunda fase de testes, percebemos que os bots eram muito "educados". O fato é que eles atingiram os jogadores apenas ao longo do caminho do movimento, ou seja, de frente. Mas se eles se aproximassem por trás, eles começaram a contornar o jogador em um grande arco. Depois de discutir as opções com o designer do jogo, o programador mudou as fórmulas para escolher a trajetória de colisão. Depois de realizar uma nova série de testes, o controle de qualidade deu feedback de que os bots eram muito rápidos e precisos e os jogadores não tinham chance. Portanto, voltei à fórmula e corrigi-a para que às vezes desse um erro e modifiquei o comportamento da abordagem para um novo círculo depois que o bot errou o jogador.


A trajetória do bot para virar e recuar aumentou, permitindo aos jogadores recarregar e atirar de volta neles. Ele criou momentos de jogo emocionantes quando os bots às vezes voavam para fora do mapa ou às vezes erravam e conseguiam acertá-los nos últimos segundos. Às vezes, eles prendiam o jogador com sucesso e atacavam de diferentes direções. O controle de qualidade apreciou a experiência de jogo de encontrar ruffs e essa funcionalidade foi incluída no lançamento do jogador.


Você pode ver neste exemplo que, durante o desenvolvimento da funcionalidade, o programador, o designer do jogo e o controle de qualidade se comunicaram constantemente, o que tornou mais eficiente encontrar quaisquer áreas problemáticas do recurso e corrigi-las antes que chegassem aos jogadores. Além disso, o programador e o designer do jogo trabalharam juntos para desenvolver o algoritmo para forçar o jogador, enquanto o QA dava feedback sobre como era divertido jogar contra esses bots. É um exemplo real do modo PVE Mirny-13 da nossa equipe e dos criadores da série Silent Hill.


O que é preciso para se tornar um desenvolvedor de IA


Primeiro, ame os jogos ! Sério, se você não gosta de jogos, por que fazê-lo?

Segundo - é fundamental jogar muito o seu produto porque só se colocando no lugar do jogador é que você vai entender como ele joga e como os bots devem jogar.


Caso contrário, você estará "codificando" as tarefas de um designer de jogos e não poderá se tornar um desenvolvedor de IA dessa maneira. Por último, está o desejo de entender por que algo funciona dessa ou daquela maneira. A IA para jogos complexos não usa lógica clara, e o resultado do ciclo Sentir >> Pensar >> Agir nem sempre será 100% previsível e compreensível. Não é raro que o desenvolvedor, juntamente com o game designer e o QA, devam analisar os dados sobre as decisões tomadas pelos bots para entender se a IA agiu corretamente ou não. E não há necessidade de Hard Skills e Soft Skills.


Hard Skills (este é um conjunto de conhecimentos técnicos). E o primeiro da lista é o conhecimento de linguagens de programação de script, geralmente lógica de jogo de jogabilidade escrita. Por exemplo, no World of Tanks, é Python e, para Unity, será C#. O segundo item essencial será C++. Sem ele, não será fácil porque a maioria das otimizações são feitas nele.


Agora o próximo passo.


Um bom entendimento de estruturas de dados e algoritmos. O desenvolvimento de IA envolve muitos cálculos e escolher a melhor estratégia para armazenamento e processamento de dados pode economizar muito tempo e recursos de CPU e memória. Um conhecimento de matemática de nível universitário do 2º ano também será necessário. Claro, será bom conhecer as abordagens básicas no desenvolvimento da IA ​​(o ciclo da IA ​​e as abordagens na tomada de decisões).


Soft Skills (competências que permitem trabalhar em equipa e estabelecer um diálogo construtivo). Existem algumas Soft Skills valiosas, mas no desenvolvimento de IA, gostaria de destacar uma:


Trabalho em equipe!


Designers de jogos, programadores e QA trabalham muito juntos, e muitas vezes é impossível concluir uma tarefa ou resolver um problema sem combinar sua experiência e conhecimento. É por isso que habilidades como ouvir outras pessoas, discutir em vez de argumentar e fazer perguntas são fundamentais. Às vezes, é melhor perguntar a um designer de jogos ou QA sobre uma nuance específica no jogo ou na mecânica, em vez de inventar e fazer você mesmo e refazê-lo dolorosamente por um longo tempo. O bom trabalho da IA ​​no jogo é sempre mérito de toda a equipe, não apenas de um especialista!


Como você pode ver, criar IA para jogos é difícil, mas é muito divertido e prazeroso! Entre outras coisas, esta é uma boa área para desenvolver Hard Skills e Soft Skills.


Vamos fazer jogos diferentes e emocionantes, e a IA nos ajudará.