segunda-feira, 6 de março de 2017

Dev Log3 # Tic Tac Toe SP - IA do jogo. [Português]

Hoje vamos falar sobre a Inteligência Artificial(IA).

O protótipo e a primeira versão do jogo.

Primeiro foi feito um protótipo em papel com alguns poderes, com esse teste o jogo funcionou, mas dependia ainda de duas pessoas. Na primeira versão digital em unity do jogo, ainda, não havia uma IA implementada. Era uma versão para dois jogadores. Dependendo da esperteza dos jogadores.

Primeiro protótipo



O conceito inicial da IA.

Primeiro se pensou em jogadas mais usadas nos protótipos em papel e na versão digital. Também se pensou em uma hierarquia de ações. Depois a equipe traçou algumas jogadas mais recorrentes e foram colocadas no código da IA. No entanto, esse mapeamento ainda é insuficiente. Com isso estamos usando um algoritmo para mapear as jogadas e aprimorar a IA.


O funcionamento técnico da IA.

Para decidir qual a jogada da IA, o Tic Tac Toe SP analisa o tabuleiro por cada situação, e atribui pontos a cada casa de acordo com as situações, se encontradas. A casa com mais pontos é aquela na qual a IA deve jogar.

Durante a análise do tabuleiro, a cada casa é atribuído dois valores: prioridade (o número de pontos) e o tipo de ação: none, basic, prevent e destroy (esta lista está sujeita a mudanças).

None: a IA não pode jogar naquela casa.
Basic: a IA deve jogar a sua peça básica (X ou O) naquela casa.
Prevent: a IA deve jogar uma peça (gelo, planta, sua peça normal mesmo) para atrapalhar uma jogada do adversário. A diferença para basic é que ele pode usar gelo e planta também.
Destroy: a IA deve destruir a peça que está na casa, com maçarico ou bomba.

Se a IA não conseguir realizar a ação com mais pontos (por não ter maçarico ou bomba para destruir, por exemplo), esta é descartada e a próxima com mais pontos é tentada.



A cada função a IA procura uma situação específica no tabuleiro. No exemplo acima, encontraria duas peças do adversário soltas e duas suas juntas. Atualmente, ele não procura um bloco de gelo isolado, pois ele não tem importância – se ele estivesse junto com outras peças daí poderia ter importância.



As situações que o programa procura são as seguintes:

Legenda:
Peça básica do jogador: A peça básica do jogador (no caso da IA) – X ou O
Peça básica do adversário: A peça básica do adversário – X ou O
Prioridade: número de pontos, no fim a casa com a maior prioridade é a escolhida para ser jogada.
Casa vazia: casa sem qualquer peça colocada

checkPlayerOneBasicPiece ();

Prioridade: 50
Ação: Basic

Procura pelas peças básicas do jogador, independente de estarem juntas de outras ou não. Então atribui pontos a todas as casas ao redor destas que estejam vazias.




checkPlayerTwoBasicPieces ();

Prioridade: 75
Ação: Basic

Procura pelas peças básicas do jogador que estejam um adjacente do outro. Se ele encontrar uma peça adjacente a outra, atribui os pontos para as casas que permitem completar três peças (duas no máximo) – as que estiverem vazias, obviamente.




checkEnemyTwoBasicPieces ();

Prioridade: 74
Ação: Prevent

Como o anterior, mas procura pelas peças do adversário. Se ele encontrar uma peça adjacente a outra, atribui os pontos para as casas que o adversário poderia usar para completar três peças (duas no máximo) – as que estiverem vazias, obviamente.

Obs: No estado atual do jogo, parece que as casas atribuídas por esta função não têm sido escolhidas: sempre tem outra casa com mais pontos.




checkPlayerThreeBasicPieces ();

Prioridade: 100
Ação: Basic

Procura por três peças básicas do jogador que estejam adjacentes, sendo que só precisa colocar mais uma peça para vencer o jogo. A prioridade é máxima, e no máximo a duas casas serão atribuídas pontos (as que estiverem vazias).




checkEnemyThreeBasicPieces ();

Prioridade: 95
Ação: Prevent

Como o anterior, mas procura pelas peças do adversário. É muito importante prevenir a vitória dele, só não mais do que garantir a própria vitória neste turno.




checkEnemyTwoAndAFourthBasicPieces ();
checkEnemyOneAndThirdFourthBasicPieces ();

Prioridade: 95

Ação: Prevent

Procura os casos em que o adversário tem duas peças juntas, uma casa vazia, e outra peça, sendo que jogar na vazia daria a ele uma vitória. Atribui os pontos a esta casa vazia, e têm a mesma prioridade de três peças dele juntas.



checkEnemyOneAndThirdFourthBasicPiecesAndAnIceBetween ();
checkEnemyTwoAndAFourthBasicPiecesAndAnIceBetween ();

Prioridade: 90
Ação: Destroy

Aqui se procura a situação de haver duas peças, um gelo, e outra peça alinhados. Destrói uma das peças.

Obs.: De fato, este é o único caso atualmente em que a IA é solicitada a usar o maçarico ou bomba.



resetActionsBoard ();

Prioridade: 0
Ação: Basic ou None

Garante que todas as casas do tabuleiro tenham valores atribuídos. Atribui prioridade zero a cada casa, e se ela estiver ocupada é atribuída ação none, proibindo ação sobre ela.

Obs.: Os valores atribuídos podem ser substituídos posteriormente por outra das funções acima, inclusive das casas ocupadas, nas quais podem ser atribuídas uma ação destroy: de destruir a peça.




Obs. 2: A ordem em que as funções são executadas não importa, pois somente valores com prioridade maior podem substituir outros. Se uma função tentar atribuir valores com prioridade menor, é impedido.




sexta-feira, 24 de fevereiro de 2017

Dev Log 2 # Tic Tac Toe SP [English]

The play test



Today we are going to talk about the Tic Tac Toe SP play test, which we did on February 16, 2017, in Labrasof's laboratory at the IFBA. Introducing our Alpha version of the game to the public. It was the first play test open to the public. In that version, the campaign and quick game modes were already working together with Artificial Intelligence (AI). However, Intelligence was still in its early stages.

10 people tested the game in this play test- 8 managed to win the campaign, (except two people, who were playing the quick game).


The playing time

The public took an average of 30 minutes to win the campaign mode, which is in region 1. To win the trophy of this region, in the current version, it is necessary to win 10 matches. That was no problem for the players.


The feedback



We note that some modifications would have to be made, among them:
"The public did not understand how some powers worked.
Solution: Let's put some information and explanations when the power is unlocked in the game and with the possibility of implementing a playable tutorial.

"Artificial intelligence at the beginning of the game is not that simple to win, but once you understand how it works, it's easy to beat.
Solution: Let's improve AI. A friend who tested the game, Hugo, suggested that a mapping of the moves could be done and used to better make the AI. Making her smarter.

The progress of the current version
We are doing the algorithm of mapping of plays (after we count the result of this work), we prepare the information of the powers and we will put some other small functions.


We stick around in this dev log.

Dev Log 2 # Tic Tac Toe SP [Português]

O play test



Hoje vamos falar do play test do Tic Tac Toe SP, que fizemos dia 16 de fevereiro de 2017, no laboratório do Labrasof no IFBA. Apresentamos nossa versão Alpha do jogo ao público. Foi o primeiro play test aberto ao público. Nessa versão, os modos campanha e o quick game já estavam funcionando juntamente com a Inteligência Artificial (IA). No entanto, a Inteligência ainda estava em seu estágio inicial.

10 pessoas testaram o jogo nesse play test– 8 conseguiram vencer a campanha, (exceto duas pessoas, que ficaram jogando o quick game).


O tempo de jogo

O público levou uma média de 30 minutos para vencer o modo campanha, que se passa na região 1. Para conquistar o troféu dessa região, na versão atual, é necessário vencer 10 partidas. Isso não foi problema para os jogadores.


O feedback

Notamos que seria necessário realizar algumas modificações, dentre elas:
- O público ficou sem entender como alguns poderes funcionavam.
Solução: vamos colocar algumas informações e explicações quando o poder for desbloqueado no jogo e com possibilidade de implementar um tutorial jogável.

- A inteligência artificial, no início da partida, não é tão simples de vencer, mas depois que se entende como ela funciona, fica fácil vencê-la.
Solução: Vamos melhorar a IA. Um amigo que testou o game, Hugo, sugeriu que poderia ser feito um mapeamento das jogadas e usá-lo para melhor tornar a IA. Deixando-a mais inteligente.



O andamento da versão atual

Estamos fazendo o algoritmo de mapeamento de jogadas (depois contamos o resultado desse trabalho), preparamos as informações dos poderes e vamos colocar algumas outras pequenas funções.


Ficamos por aqui nesse dev log. 

quarta-feira, 22 de fevereiro de 2017

Dev log 1 #Tic tac toe sp [English]

The team

We are a small development team with 3 members.

Alexandre Santos (project manager, game designer and graphic artist)

Guilherme Ribeiro (Programmer)

Paulo Fontes (Programming Assistant)


The game



Our current project is the Tic Tac Toe SP. Casual game 2D, a game of the old woman with special powers. In it there is a campaign mode, in which the player contests a tournament winning trophies, acquires and expands powers, also conquering new trays. In quick game mode, the player has a quick game, in which he can train for the tournament (can play two people).

The idea of ​​the game came in 2013. The concept and mechanics were tested on prototypes made on paper, we came to make a flash version. Except that the project did not move and was stopped. In 2016, after some partnerships in games jobs, the opportunity to start the project again.

First paper prototype

Second paper prototype

Flash version.


 The Engine

Currently the game is being developed in unity.




Resources and Partnerships

The game is being done with its own resources and in partnership with the Labdasoft research group of IFBA.




So with a new team here we are developing the first step of the game

Dev log 1 #Tic tac toe sp [Português]

O time

Somos um pequeno time de desenvolvimento com 3 membros.
Alexandre Santos (gerente de projeto, game designer e artista gráfico )
Guilherme Ribeiro (Programador)
Paulo Fontes (Assistente de programação)

O jogo



www.facebook.com/tictactoesp


Nosso projeto atual é o Tic Tac Toe SP. Jogo casual 2D, um jogo da velha com poderes especiais.  Nele existe um modo campanha, no qual o jogador disputa um torneio ganhando troféus, adquire e amplia poderes, também conquistando novos tabuleiros. No modo quick game, o jogador tem uma partida rápida, na qual pode treinar para o torneio (podendo jogar duas pessoas).

A ideia do jogo surgiu em 2013. O conceito e mecânica foram testados em protótipos feitos em papel, chegamos a fazer uma versão em flash. Só que o projeto não andou e foi interrompido. Em 2016, depois de algumas parcerias em trabalhos de games, surgiu a oportunidade recomeçar o projeto.



Primeiro protótipo em papel

Segundo protótipo em papel

Versão em Flash.


Engine

Atualmente o jogo está sendo desenvolvido em unity.






Recursos e Parcerias

O jogo está sendo feito com recursos próprios e em parceria com o grupo de pesquisa Labdasoft do IFBA.






Então com um novo time aqui estamos desenvolvendo a primeira etapa do jogo.


* O jogo já foi lançado para android

Play store:

https://play.google.com/store/apps/details?id=com.StrikeGames.TicTacToeSP.Mobile





O processo de produção de um game indie.

https://strikegames-br.blogspot.com.br/2017/10/o-processo-de-producao-de-um-game-indie.html

domingo, 21 de outubro de 2012

Como pensar o game design para um projeto de jogo eletrônico – Tutorial 5.


Ao começar o projeto de um game o ideal é iniciar pelo game design. Alguém pode perguntar o que é game design?
Game design para muitos é uma “espécie de planta baixa de um jogo”, pois é um processo para criar: desafios, conteúdos e regras; que vão reger o game e resultado final que é documentado sendo um guia geral para equipe do projeto.

Mas quais os passos eu devo seguir para desenvolver um game design?
Pode ser feito de diversas formas, cada um tem sua metodologia. Costumo seguir o método de BRATHWAITE, Brenda; SCHREIBER, Ian 2009, no qual pensamos em perguntas chaves. Elas serão um guia para facilitar a construção do game design e do jogo. Não existe uma formula exata, mas uma metodologia e dicas dadas por pessoas com experiência já servem como uma base (por isso a analogia a uma planta baixa, que é um guia para a construção).


           
Quais são as perguntas chaves neste processo de construção? Perguntas guias adaptadas de BRATHWAITE, Brenda; SCHREIBER, Ian 2009:
                        - Como eu jogo? (quais são regras, o que devo fazer, quais os objetivos dentro das fases).
                        - Qual o gênero? (é um game de plataforma, puzzle, sand box, shoother, nave dentre outros gêneros)
                        - Quais as regras do jogo? (como ganho pontos, o devo fazer para passar de fase, como vencer?)
                        - De que forma eu ganho o jogo? (qual a meta principal do jogo. Qual o objetivo? Resgatar a princesa? Derrotar o inimigo? Solucionar um enigma?)
                        - Quais as minhas ações? (eu aperto botões, respondo perguntas? ando? corro? Pego itens?)
                        - De que forma eu interajo com o jogo? (uso meu corpo, via teclado, via joystick, uso acessórios? Via deck de cartas? Via tabuleiro? O jogo possui um mestre, como nos jogos de RPG?)
                        - Qual será a visão? (primeira pessoa, terceira pessoa, vista aérea)

Neste desenvolvimento é importante que se tenham parceiros, pois os debates ajudam criar novas ideias e elementos, que se tornam um diferencial no game play e das etapas do jogo.  Normalmente o trabalho individual produz bons frutos, mas pode-se em algum momento limitar as potencialidades do jogo.

Outro ponto importante é o uso de referências, seja do mundo real (experiências do cotidiano, situações e conversas que temos no dia a dia), observar outros jogos (chamamos de análise de similares, ver pontos fortes e fracos de outros games), ler diversos livros, assistir filmes e desenhos (pois as três formas ajudam na  busca de conteúdos, informações e ideias). Enfim buscar as mais diversas fontes que sirvam de pesquisa e referência.  Para a pesquisa não há uma formula, o fato de analisar outros jogos trás informações valiosas, pois se pode sistematizar uma metodologia de criação, aprimorar o que se coletou e incluir suas idéias e modificações e gerar algo novo, usando os princípios de inovação e criatividade.

O fato de conhecer os gêneros dos jogos, facilita a pesquisa, pois os gêneros trazem características dos games. Por exemplo, quando se fala de um jogo de plataforma, você vai saber o personagem irá pular, terão inimigos, podem ter mecanismos para acionar, abrir portas, pegar objetos e tantas outras características que este gênero carrega consigo, além dos jogos clássicos que representam o gênero, tais como Super Mário, Alex Kid dentro outros. Mais um exemplo os jogos do gênero puzzle, já sabemos que terão diversos desafios que exigem uso de raciocínio com quebra-cabeças e quests com pistas e dicas para solucionar para avançar nas fases do jogo.

Um elemento chave nesta dinâmica é o “core”, ou seja o núcleo ou coração, que trás a essência do jogo, as características principais e os elementos que são diferenciais em seu jogo mecânica e jogabilidade e assim definir o conceito que irá reger o game.

Também existem alguns elementos básicos que devemos pensar:
Segundo BRATHWAITE, Brenda; SCHREIBER, Ian 2009. Temos os seguintes tipos de design no universo dos jogos:
            - World design (é a estória de fundo que rege os demais elementos)
            - System design (é o sistema de regra dentro do universo do jogo).
            - Content design (é o conteúdo, as missões, itens personagens).
            - Game writing ( diálogos e textos do jogo).
            - Level design (mapa da fase localização dos objetos)
            - User interface (como o jogador interage e recebe informações do jogo).




Mundo criado para a franquia LT Mystic Sword - Os jogos da franquia estavam sendo produzidos pela StrikeGames. E um dos jogos estava sendo desenvolvido em conjunto com grupo de pesquisa Labragames (hoje Labrasoft).

Os elementos citados anteriormente facilitam a criação de uma metodologia sistematização, logo podem ser uma ferramenta de auxilio principalmente para os iniciantes, que não possuem experiência com game design.

Prototipagem:
Em um workshop com Adriana Key entendi que o protótipo aliado ao game design é uma ótima ferramenta para realização de testes e avaliação de projetos. Mas alguém pode perguntar, mas por que você está falando isso?
Pois pense se você produzisse um jogo eletrônico inteiro, para depois avaliar se o público gosta ou não.  O ideal que se tenha como avaliar antes da produção de fato, o custo de produção final é caro.  Então através da prototipagem de jogos de tabuleiro, de carta e outras formas possibilitam analisar e entender a mecânica e jogabilidade que estão sendo propostas antes da implementação do jogo em meio digital, podendo aperfeiçoar e melhorar o balanceamento das dificuldades, o grau de diversão dos jogadores e principalmente cortar custos, pois com a prototipagem se diminui os custos de produção, pois com os protótipo já se detectam falhas no game play e já se realizam diversas modificações, com isso pode-se diminuir o número de  erros na versão digital do jogo, consequentemente diminuindo o custo de produção.

Podemos pensar em ciclo de etapas para detectar os problemas de criação dos games, criar os protótipos físicos, depois protótipos digitais, para isso podemos seguir o modelo de Jesse Schell 2008:

1º. Situar o problema,
2º. Realizar um brainstorm para encontrar algumas soluções;
3º. Escolher uma das soluções;
4º. Listar o risco em utilizar tal solução selecionada;
5º. Construir os protótipos para reduzir o impacto dos riscos;
6º. Testar os protótipos. Se por meio deles se obtiver bons resultados, dar seguimento ao projeto em outras etapas;
7º. Situar os novos problemas que a equipe deseja solucionar e retomar o 2º passo deste ciclo.

Vejam que iniciamos com problema, depois pensamos em soluções das mais diversas, brainstorm deve se pensar em todos os tipos de idéias, depois se faz uma triagem das mais adequadas ao projeto, pensa-se nos riscos das soluções selecionadas. Esta primeira etapa está muito relacionada com game design (a documentação de conceito e características, definindo como será produzido o jogo), depois em segunda etapa criação de protótipos físicos (jogos de tabuleiros, cartas dentre outros) que podem ser as bases para construção de bom game, pois desta forma se terá uma visualização e entendimento de como jogo irá funcionar antes mesmo de ser implementado digitalmente.





  Protótipo desenvolvido em uma especialização em Game design pela equipe arcádia (eu era um dos integrantes) para o game Incedium.




Protótipo desenvolvido pela StrikeGames para testar o jogo Tic Tac Toe Super Powers.




 Versão digital Tic Tac Toe Super Powers


Em caso dúvidas sugestões deixem recados ou enviem e-mails.

Vejam nossos outros tutoriais:
http://strikegames-br.blogspot.com.br/p/tutorials.html 

Vejam um protótipo de um jogo em papel, que transformamos em um jogo Print and Play:
Até o próximo tutorial.

Abaixo temos as referências textuais usadas.


Referências:
BRATHWAITE, Brenda; SCHREIBER, Ian. Challenges for Game Designers.  Boston: Cengage Learning, 2009.
SCHELL, Jesse. The Art of Game Design –  A Book of Lenses. Burlington:
Morgan Kaufmann Publishers, 2008. 
Workshop: Prototipagem de Games Adriana Kei.