Inteligência Artificial Explicada – Westy West

Artificial Intelligence, Countryside Games, Portfolio, Tutorials

Este é o primeiro de uma série de artigos teóricos sobre o desenvolvimento do jogo Westy West.
Compartilho aqui uma ideia geral de como funciona a Inteligência Artificial dos personagens do jogo.
Vou separar este artigo em 6 partes: Inimigos, Civis Inocentes, Policiais, Bandidos Procurados, Personagens Decorativos, Animais Defensivos e Animais Inofensivos.

1.0 Inimigos – Descrição geral

Os inimigos do Westy West são identificado pelas roupas pretas.
A aparência, a quantidade de vida, o armamento e o meio de locomoção do inimigo é sorteada no início de cada fase do jogo.
Eles são capazes de vagar pelo cenário, desviar de objetos que bloqueiam o caminho, perseguir o jogador e atacá-lo com armas brancas e de fogo com alcances e poder variados.

1.1 Inimigos – Estados de Humor

Os inimigos agem de acordo com 2 estados de “humor”: tranquilo e irritado
O estado “tranquilo” é o estado inicial de todo inimigo e ocorre enquanto este não avistou o jogador. Já o estado “irritado” ocorre após o inimigo avistar o jogador e é caracterizado por um som de surpresa e um balão de emoji sobre a cabeça do inimigo.

bandido-alerta

Inimigo avistando o jogador

1.2 Inimigos – Movimentação

Os inimigos se movimentam de maneira intervalada. O tempo deste intervalo depende de uma variável aleatória cujos valores mínimos e máximos dependem da fase em que o jogador se encontra. Quanto mais avançado o jogador estiver, menor será o intervalo de movimentos dos inimigos, tornando-os assim cada vez mais rápidos, porém, dentro de um limite aceitável que não estrague a experiência de jogo.

O estado de “humor” do inimigo também influencia na maneira como este se movimenta.
Durante o estado “tranquilo”, o personagem caminha pelo cenário em direções aleatórias, podendo inclusive ficar parado no lugar ou andar em círculos.
Já no estado “irritado”, o inimigo caminha constantemente em direção ao jogador com o objetivo de atacá-lo.

1.3 Inimigos – Ataque

O ataque dos inimigos é simples, ele ataca o jogador sempre que este estiver no alcance de sua arma, que pode ser 3 (pistola), 2 (espingarda) ou 1 (arma branca).

bandido-melee

Bandido tentando atacar o jogador com uma marreta

A frequência dos ataques (“fire rate”) depende do mesmo intervalo usado na movimentação, para que o inimigo nunca se mova e ataque ao mesmo tempo, visto que isso seria injusto com o jogador, que só pode fazer 1 ação de cada vez (mover-se ou atirar), além de ficar visualmente confuso num jogo com movimentação em grade, como o Westy West. (fizemos o teste)

 

1.4 Inimigos – Estupidez

O humor é uma das peças-chave do Westy West, e é caracterizado inclusive pela estupidez dos inimigos. Se por um lado, é necessário impôr dificuldade ao jogador, por outro lado, a estupidez dos inimigos cria cenas engraçadas, como inimigos se acertando acidentalmente ou destruindo objetos do cenário que estiverem entre ele e o jogador.

galinha

Galinha entrando na frente do tiro e morrendo

Isso funciona de maneira muito simples: o inimigo atira SEMPRE que o jogador estiver dentro do alcance de sua arma, não se importando em avaliar se há um obstáculo ou personagem no meio do caminho. Sendo assim, antes de atingir o jogador, o inimigo pode destruir objetos acidentalmente, ou ferir comparsas e cidadãos inocentes.

Os únicos inimigos incapazes de cometer estes erros são aqueles que utilizam armas brancas, pois estes precisam obrigatoriamente estar encostados no jogador para poder atacar, visto que suas armas possuem apenas 1 de alcance.

Isso cria situações inusitadas e engraçadas e é totalmente intencional.

2.0 Civis Inocentes

Os civis são os NPCs (personagens não-jogáveis) que apenas vagam pelas cidades do jogo. Eles usam roupas coloridas e ignoram a presença do jogador no cenário, a não ser que este ataque alguém.

2.1 Civis Inocentes – Movimentação

A movimentação dos civis inocentes é idêntica àquela dos inimigos. (item 1.2 do artigo)

2.2 Civis Inocentes – Pânico

Os civis podem entrar em pânico ao ouvir um disparo. Neste caso, eles levantam os braços e correm pelo cenário.

civis-panico

Civis levantando os braços em pânico

2.3 Civis Inocentes – Reação Violenta

Alguns civis possuem armas e começam a perseguir o jogador igual caso este os ataque. No momento em que sofrem um ataque do jogador, eles assumem o mesmo comportamento de um inimigo irritado (como descrito nos itens 1.1, 1.2 e 1.3 do artigo).

3.0 Policiais

Os policiais aparecem no jogo caso o jogador violente animais ou civis inocentes. Sendo assim, eles tem a finalidade de reprimir um eventual comportamento anti-ético por parte do jogador, visto que o jogo não visa estimular a violência gratuita.
Eles se comportam como inimigos (conforme o capítulo 1 do artigo).

policiais-ataque

Policiais atacando o jogador

4.0 Bandidos Procurados

Os bandidos procurados são aqueles que estão nos cartazes de “Procurado” que aparecem ao clicar no botão do canto superior esquerdo da tela, ou ao interagir com o cartaz que está presente nos Checkpoints do jogo.

Estes bandidos possuem aparência de civis inocentes, usando as roupas que constam nos cartazes de procurado, e dessa maneira podem ser descobertos pelo jogador.

procurado

Bandido procurado sendo descoberto e reagindo

Bandidos procurados caminham pelo mapa como um inimigo tranquilo (conforme o item 1.2 deste artigo) e não atacam o jogador caso não sejam atacados por ele.
No caso de o jogador atacá-los, os bandidos procurados sacam uma arma e começam a disparar contra o jogador (conforme o item 1.3 deste artigo).

5.0 Personagens Decorativos

Os personagens decorativos são os Pianistas, as Dançarinas e a Banda Mexicana.
Os pianistas não fazem nada além de tocar o piano.
As dançarinas dançam enquanto o pianista estiver tocando, e param caso este morra.

dancarinas

Dançarinas parando de dançar após morte do pianista

A Banda Mexicana passa o tempo todo tocando e olhando na direção do jogador. Caso um músico da banda seja morto, os outros continuam tocando seus instrumentos como se nada tivesse acontecido, e a música segue com a ausência (sonora) do instrumento que foi destruído.

bandafinal

Banda tocando com 1 integrante a menos e virando para o jogador

6.0 Animais Defensivos

Os animais que se enquadram nesta categoria são as cobras e cavalos, que ficam parados em pontos específicos do mapa e atacam indiscriminadamente qualquer personagem que passe muito tempo parado próximo a eles, seja o personagem controlado pelo personagem ou não.

inimigo-coice

Personagem tomando um coice fatal

Chamo estes animais de “defensivos” pois, mesmo no mundo real, estes animais se atacam apenas para se defender em situações onde se sentem ameaçados. É errado dizer “ataque de cavalo” ou “ataque de cobra”, e é por isso que incidentes com animais peçonhentos são chamados de “acidentes ofídicos” e não “ataques ofídicos”.

Estes ataques matam qualquer personagem instantaneamente.

7.0 Animais Inofensivos

Os animais inofensivos são as galinhas e os coiotes, ambos só caminham pelo cenário, da mesma maneira que um inimigo tranquilo (explicado nos ítens 1.1 e 1.2 do artigo) fazendo barulho e cagando pelo cenário.

Conclusão

O Westy West é um jogo mais complexo do que parece, e a Inteligência Artificial é apenas 1 dos diversos aspectos do jogo que levaram vários dias para serem refinados.
Me orgulho de ter chegado a este nível de trabalho tendo jamais feito um curso de programação, e fico feliz em compartilhar este conhecimento com novos programadores (e experientes também).
Espero, no futuro, escrever outros artigos sobre este jogo.

Anúncios

Westy West – 6 months later

Countryside Games, Portfolio

So… besides not posting it here, Westy West was published on March, and now 6 months later, I feel like I should talk about it.

The whole project was a challenging but joyful experience, it was my first tile-based game ever and all the mechanics were completely new to me.

We also tried to make a very user-friendly monetization, with super cheap in-app purchases and non-annoying advertising.

The Wild West theme is something I always appreciated, so it was really fun to work on that, using our past references from movies and videogames.

The game got featured on both Google Play and the AppStore, which means a new achievement for us, since we never got featured on the AppStore before.

Now we’re excited working on a new title for the Westy West series.

New game on Open Beta

Countryside Games, Portfolio

Gráfico de recursos.png
Our new game Westy West is available as Open Beta on Google Play.
This project was influenced by:
Looty Dungeon, Crossy Road, Westerado, Red Dead Redemption, Steppy Pants

We’re receiving great feedbacks and will release it soon for both Android and iOS, check it out.

EDIT: game released on both stores now!

Google Play: https://play.google.com/store/apps/details?id=com.CountrysideGames.WestyWest

 

AppStore: https://itunes.apple.com/us/app/westy-west/id1176352069?mt=8

Mad Santa – Christmas Rush

Countryside Games

Do Tiny Acrobats para cá, muita coisa aconteceu, todas elas prejudiciais:

-Perdemos o App Campus nos estágios finais de aprovação (e não há um prêmio de consolação)
-Fiz um game para a Yamaha que aparentemente não vai ser lançado
-Meu sócio saiu do país e teve que redefinir suas prioridades

Mas coisas boas também aconteceram:

-Fiz uma viagem ao Peru, curta mas boa
-Busquei novas pessoas para trabalhar em um projeto novo
-Consegui desenvolver um jogo em 4 semanas, com pessoas que nunca haviam desenvolvido um jogo antes, e este jogo… é o assunto desta postagem:

Neste jogo, o jogador encarna o Papai Noel e deve jogar presentes nas chaminés das casas.
Simples? Não.
Em tempos de proteção aos animais, o uso de renas não é mais permitido, e só resta ao bom velhinho utilizar seu antigo balão.
Porém, numa sociedade cada vez mais apressada, estressada e armada, poucos cidadãos toleram baloeiros jogando caixas em seus telhados e carros. Então, não estranhe se tomar um tiro e seu balão cair. Tome cuidado!

Versão iPhone:
https://itunes.apple.com/nz/app/mad-santa-christmas-adventure/id950049277

Espero que gostem!

Randomizer Pro, um projeto pessoal

Countryside Games

Apesar de ter me silenciado nos últimos 4 meses, muita coisa foi feita.

Perdemos algum tempo participando de um programa de incentivo à desenvolvedores, que mais nos atrapalhou do que ajudou, mas durante este período não muito produtivo (em termos de portfolio), decidi fazer um aplicativo que EU precisava, um “randomizer”, um aplicativo que me ajudasse a sortear nomes, números e jogar dados.

Por incrível que pareça, apesar de haverem muitos “randomizers” por aí, a maioria não tem essas 3 funcionalidades, ou tem um aspecto muito feio. Por isso, quis fazer meu “Randomizer Pro”, unindo essas 3 funcionalidades e se encaixando no padrão estético dos sistemas atuais.

Aí vão algumas imagens:

screen568x568 screen568x568 (1) screen568x568 (2) screen568x568 (3)

É um projeto bem simples, feito em 4 dias (elaboração, arte e desenvolvimento) e foi o único projeto que fizemos pela Countryside Games.

Como de costume, publiquei o app em várias plataformas, sendo elas:

Android

iOS

BlackBerry 10

Se um dia me animar, faço um port para Windows Phone também, haha.
Apesar de não ter sido a ferramenta ideal, fiz o app em Unity. O grande problema disso é que o app pode ficar mais pesado em algumas plataformas, mas como era um projeto bem pessoal, não me importei com isso.

Também rolou um freelance para uma fabricante de motos aí, que ainda não recebi o feedback e consequentemente… não vou divulgar ainda.
Eu nem divulguei este app, mas ele tem recebido bons downloads no iOS, e como foi feito em 4 dias, para uso pessoal, posso dizer que fiquei feliz com o resultado

Tiny Acrobats, the second game

Countryside Games, Portfolio

O novo jogo da Countryside Games chegou, quem quiser baixar primeiro e ler o post depois, aí vão os links:

Androidhttp://tinyurl.com/tinyacrobatsandroid

iPhone / iPadhttp://tinyurl.com/tinyacrobatsios

BlackBerry: http://tinyurl.com/tinyacrobatsbb

Windows Phone 8: http://tinyurl.com/tinyacrobatswp

Mais uma vez, eu e o Arthur trabalhos juntos para fazer o jogo sozinhos, e o resultado está aí.
O Arthur cuidando da arte/marketing e eu cuidando da programação/animação/som, obviamente, o Game Design teve contribuição de ambas as partes.

Fiz um tópico sobre o processo de desenvolvimento na sessão “Work In Progress” doo forum do Unity, caso alguém se interesse:
http://forum.unity3d.com/threads/232737-Our-second-game-the-Tiny-Acrobats?p=1545612#post1545612

A única coisa que não fizemos desta vez, foi a trilha sonora, pois consistia de 5 músicas, e eu perderia muito tempo compondo-as.

Todas as plataformas mobile atuais foram suportadas, será um lançamento massivo.

Tiny Acrobats - devices

Android, iOS, Windows Phone 8, BlackBerry

Primeiro trailer do jogo:

Retro Runners, o primeiro e bem sucedido jogo

Countryside Games

Retro Runners Logo
Antes de continuar a falar sobre o Retro Runners, vou deixar os links de download para quem não quer ler o post, haha.

Google Play: https://play.google.com/store/apps/details?id=com.CountrysideGames.RetroRunners

iTunes: https://itunes.apple.com/us/app/retro-runners/id693042806

BlackBerry: http://appworld.blackberry.com/webstore/content/35534890/?countrycode=BR&lang=en

Windows Phone 8: http://www.windowsphone.com/en-us/store/app/retro-runners/d655d41e-a482-4284-bd4f-65beb143b1ab

Voltando ao jogo…
O Arthur fez toda a parte visual do game e dos materiais de divulgação (posters, banners, etc).
Eu fiz a programação, sound design, música e obviamente… game design. Coisas bem distintas, mas que eu já tinha alguma prática, com exceção da programação.

Fiz um post explicando sobre o processo de desenvolvimento no forum do Unity (esse post contem screenshots épicas, haha)
http://forum.unity3d.com/threads/189764-Retro-Runners-a-mobile-quot-endless-runner-quot-(our-first-project)

Passamos 3 meses desenvolvendo o Retro Runners, cometemos muitos erros, mas conseguimos lidar com todos eles, fiz porting para todas as plataformas de smartphones do mercado e terminamos com um jogo muito bem avaliado nas principais app stores.

Ficamos “featured” (em destaque) tanto no Google Play (sessão “Melhores da Semana”) quanto na App Store (o jogo está sempre visível na lista “Populares” do gênero Arcade).
Foi a primeira vez que programei na minha vida, e me dediquei integralmente a isso. Se isso não for motivo para se ter orgulho, então eu não sei o que é, haha.

Houveram dezenas ou centenas de reviews em sites estrangeiros, mas um muito especial, foi o do Touch Arcade, que incrementou consideravelmente o nosso número de downloads no iOS:
http://toucharcade.com/2013/09/22/retro-runners-review/

Como só fiz esse post MESES depois de ter publicado o jogo, não tenho muito ânimo para falar sobre o jogo, apenas posso dizer que passamos dos 300.000 downloads, que eu não sabia programar… e que isso é sensacional, hahaha.

Fundando a Countryside Games

Countryside Games
Jogos do interiorrr...

Jogos do interiorrr…

Cansei de grupos independentes sem dedicação, cansei das promessas não cumpridas e decidi desenvolver meus jogos sozinho, mesmo sabendo que seria uma grande empreitada. Voltei a morar com meus pais no interior, comecei a estudar programação e decidi criar a Countryside Games.

Passei apenas 2 semanas programando meu primeiro game sozinho (aquele de futebol do último post), mas interrompi o projeto quando meu amigo Arthur Ciappina (com quem trabalhei anteriormente na Glu Mobile) me desafiou a programar um jogo de corrida infinita. Depois de alguns testes, ele quis fazer a arte e é aí que consideramos o início oficial da  Countryside Games.

O resultado foi bom, e vou detalhar melhor no próximo post, junto com o link do jogo.