thegoodfellas/blogset-br huggingface dataset:
ou nao que o personagem possa ser controlado pelo jogador. Isso e muito util para evitar que o jogador consigo executar movimentos muito irreais como por exemplo, saltar para a esquerda e de repente ainda no ar virar e comecar a cair para a direita. E tambem muito util para a criacao de cut-scenes. spawnPoint: O conceito de Spawn Point e interessante. Quando seu personagem morrer, entrar em alguma passagem, tunel, portas, etc, esse conceito e extremamente util para facilitar a sua vida na hora de tele-portar um personagem para o local de destino. Esta variavel nada mais e do que uma coordenada qualquer em seu espaco 3D para onde o personagem pode ser movido. floorHitFX: Ja criamos uma variavel de mesmo nome em nosso primeiro script. Ela faz referencia ao clipe de som que usaremos aqui para ser usado como efeito de quando o personagem atinge o chao de maneira brusca. Nao se pode esquecer de assinar um Audio Clip da sua lista de Assets. Se voce nao tiver nenhum audio a mao, pode baixar alguns de sites frees pela web ou pode apenas ignorar esta questao do tutorial. isSneaking: Esta variavel se torna verdadeira todas as vezes em que um objeto que faz parte da layer escolhida se sobrepoem sobre a cabeca do personagem em determinada altura que o impeca de se manter de pe. Infelizmente os calculos usados para fazer o personagem entender que precisa se manter agachado sao um tanto fora do foco e fazem parte de outros scripts que detectam colisoes e raycasts, por isso pode complicar o entendimento e desviar a atencao, entao deixaremos este topico para um outro tutorial. isFalling: Esta variavel deve se tornar verdadeira todas as vezes em que o personagem estiver caindo de uma altura exagerada ou saltar de forma descontrolada, indicando que ele sofrera uma queda dolorosa ao inves de um pouso comum. Esta funcionalidade utiliza os mesmos principios basicos que isSneaking, mas e apenas uma regra simples dentro do proprio loop Update() que executa um raycast em direcao ao solo e se a altura for muita, o personagem sofrera uma queda ao atingir o solo. headsUp: Esta variavel deve se tornar verdadeira todas as vezes que o raycast implementado por outro script na cabeca do personagem indicar que existe um objeto muito proximo que o impede se manter de pe. Faz parte do sistema que identifica se ele esta agachado ou nao. Esta variavel e usada como um gatilho que forca o personagem a se abaixar mesmo contra a vontade do jogador enquanto ele nao se afastar do obstaculo que o impede de se manter de pe.6.9 Classes AuxiliaresCom nossas variaveis bem definidas, podemos seguir em frente com a implementacao de nossas classes que auxiliarao na programacao de toda a movimentacao de nosso personagem:? 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 class PlatformerControllerMovement{ var walkSpeed = 3.0; var runSpeed = 10.0; var inAirControlAcceleration = 1.0; var gravity = 60.0; var maxFallSpeed = 20.0; var speedSmoothing = 5.0; var rotationSmoothing = 5.0; @System.NonSerialized var direction = Vector3.zero; @System.NonSerialized var verticalSpeed = 0.0; @System.NonSerialized var speed = 0.0;
seu game do que trabalhando nele! Rsrsrs.Voce pode tambem criar obstaculos que explodam e gerem dano no seu personagem, criar uma ragdoll, etc.Crie um script que mantenha o estado do seu personagem, como por exemplo, vidas, barra de energia, etc.Voce pode criar efeitos com particulas e aplicalos ao seu spawnPoint indicando visualmente que o personagem aparece naquele ponto, pode criar tambem respawnPoints onde o personagem continuara a partir dali se caso ele morrer, etc.Enfim, divirta-se com a Unity enquanto aprende e ao mesmo tempo produz. Acredito que isto seja o segredo de qualquer coisa que exige dedicacao, faca por diversao e nao por obrigacao. Boa sorte!
Descricao: Alex Seropian, um dos criadores de Halo, deixou a Bungie com a tecnologia do jogo de tiro campeao de vendas do Xbox para criar sua propria empresa, a Wideload Games. O primeiro produto de sua nova companhia nao e mais um jogo de tiro futurista, mas um Resident Evil as avessas: voce controla o zumbi Stubbs (que poderia ser traduzido livremente como Cotoco) em sua missao de comer cerebros humanos. Misturando um senso de humor negro com o visual e inteligencia artificial de Halo, Stubbs the Zombie in Rebel without a Pulse coloca o anti-heroi morto-vivo em sua jornada pela cidade de Punchbowl, no estado americano da Pensilvania. Construida na administracao do presidente Eisenhower, essa cidade foi feita para demonstrar a tecnologia do seculo 21?. Enquanto Stubbs conta apenas com sua grande resistencia contra dano, uma grande fome de cerebros e a capacidade de arremessar seus orgaos, seus oponentes vao de fazendeiros a cientistas malucos, passando ate por cantores. Felizmente, Stubbs conta com uma das mais importantes armas dos zumbis: a habilidade de transformar pessoas em aliados mortos-vivos. Os poderes de Stubbs incluem a capacidade de derrubar portas, enviar sua mao como um batedor tele-guiado para possuir pessoas, usar a cabeca como bola de boliche e, talvez sua mais terrivel arma... a flatulencia mais podre ja vista em um game.Um jogo muito bom espero que gostei testei o jogo e otima a jogabilidade e um pouco estilo retro mais vale a pena quando tem nada para fazer. Call of Duty e uma franquia de jogos eletronicos de tiro em primeira pessoa criada por Ben Chichoski. A serie comecou em PC, posteriormente expandindo-se para consoles e portateis. A maioria dos jogos e ambientado na Segunda Guerra Mundial, com a excecao de Call of Duty 4: Modern Warfare, Call of Duty: Modern Warfare 2 e Call of Duty: Modern Warfare 3, situados em epocas modernas, ja o Call of Duty: Black Ops, a historia desenvolve-se durante a Guerra Fria.Os jogos da serie sao editados pela Activision, sendo desenvolvidos primariamente pelas produtoras Infinity Ward e Treyarch, com outros jogos produzidos pela Gray Matter Interactive, Spark Unlimited, Pi Studios, Amaze Entertainment, Rebellion Developments e n-Space usando uma variedade de motores, como o id Tech 3, o Treyarch NGL e o IW 4.0. Entre outros produtos da franquia estao uma linha de action figures projetada pela Plan-B Toys, um jogo de cartas criado pela Upper Deck, e uma serie em quadrinhos publicada pela WildStorm.Atualmente, e a franquia de jogos eletronicos mais rentavel da historia, faturando com o seu ultimo lancamento, Call of Duty: Modern Warfare 3 mais de 400 milhoes de dolares em apenas 24 horas. Este posto antes era assumido pela franquia GTA, todavia o mesmo foi perdido com o lancamento do Call of Duty 4: Modern Warfare, no segundo semestre de 2007. Alem de se assegurar em primeiro lugar no Ranking de jogos eletronicos, Call of Duty tambem lidera na categoria entretenimento, como sendo o produto mais rentavel, ultrapassando por exemplo, classicos do cinema, como Star Wars e O Senhor dos Aneis.Em novembro de
2009, o total de vendas de todos os jogos da serie havia ultrapassado a marca de 55 milhoes de unidades vendidas mundialmente, obtendo no processo um lucro de tres bilhoes de dolares.
e outras atividades normais).Existem varias areas de IA que o artista pode aprender e usar em seus jogos. Ele nao precisa saber todas aprofundadamente, mas ele deve ter um conhecimento de cada para que ele aplique a melhor estrategia de IA em seus games. Tambem o designer deve ter em mente se o personagem sera contra o jogador ou um ajudante.Deve-se ter em mente que nao existe uma logica padrao para todos os tipos de entidades em um game. Um gato executa acoes que um cachorro nao faria, e o mesmo vale para seres humanos. O designer pode implementar o mesmo tipo de logica para varias entidades, mas ele deve adaptar parte dela para que consiga o efeito desejado.A seguir e listado alguns estilos de games diferentes e as possiveis tecnicas de inteligencia artificial utilizadas nesses games.First Person Shooter (Tiro em primeira pessoa)Os jogos de tiro e um estilo muito popular entre adolescentes. Games como Doom, Half-Life, Unreal, Quake e Counter-Strike revolucionaram a maneira de jogar, entrando na historia dos videogames. O Counter-Strike e hoje um dos games mais jogados do planeta, tendo campeonatos e praticamente todas as lan-houses tem o jogo, onde grupos de adolescentes juntam-se em equipes para jogar o jogo, escolhendo ser um terrorista ou um contra-terrorista. Alem disso, hoje os jogos de tiro sao um dos jogos que as produtoras conseguem usar graficos incriveis (como Doom 3 e Half-Life 2).Os jogos de tiro sao tambem simples de implementar e muitos designers iniciantes comecam seus estudos tentando criar jogos deste tipo. Alem disso, a inteligencia artificial nao precisa ser bem implementada, sendo que a maior parte dos games sao simples, com muita violencia e normalmente com a seguinte regra: andar, atirar e matar os oponentes (nao exigindo muito raciocinio do jogador). E claro que alguns fogem um pouco a regra, como o game Half-Life (onde voce resolve puzzles (desafios logicos) durante o jogo).Uma tecnica de inteligencia artificial mais comum em jogos de tiro sao as maquinas de estado finita (FSM, ou Finite State Machine). Segundo Karlsson (2005, p.19), uma maquina de estados e basicamente composta por um conjunto de estados e um conjunto de regras de transicao entre estes estados. Ou seja, o personagem esta configurado com uma serie de regras e possui regras de transicao para ver se o personagem deve alterar o estado inicial, como por exemplo, se ele viu um oponente e se vale a pena ir atras dele.Segundo DINIZIO (2003, p.4), existem dois tipos de maquinas de estado finito, a deterministica, onde a transicao pode sempre ser prevista (onde existe uma entrada e transicao), e a nao-deterministica, onde a transicao nao pode ser, sendo necessario ter uma entrada para conhecer a transicao e o estado final.As desvantagens em utilizar as FSM sao os comportamentos repetitivos, caso uma situacao se repita, e sao limitados (quanto mais complexo for o ambiente, aumenta o numero de estados e transicoes na qual o FSM tera de prever (Karlsson, 2006)).Outra tecnica que pode ser utilizada em jogos de tiro e a logica Fuzzy. A logica fuzzy permite representar num sistema
computacional valores onde logicas classicas (onde os unicos valores sao zero e 1 um) nao conseguiriam representar, como pouca comida, muito perto, e outros eventos nao contaveis (ou imprecisos). No caso da logica Fuzzy, o conhecimento e representado por um conjunto que contem valores numericos, que podem representar melhor uma emocao humana. Por exemplo, se eu tenho um personagem muito feliz, ele e do conjunto feliz e pode receber 9 (numa contagem de 0 a 10) e eu posso ter um personagem nada feliz com valor 1.Uma estrategia interessante para se utilizar e, segundo Karlsson (2005, p.20), a mistura entre a logica Fuzzy e as FSMs, criando as Fuzzy FSMs (FuSMs). Ou seja, sao maquinas de estado finitas com logica Fuzzy nos seus estados de transicao, para os oponentes parecerem razoavelmente inteligentes. Ainda segundo Karlsson, um jogo utilizando esta tecnica e o jogo Unreal (Figura 1).Figura 1 Imagem do game Unreal, game para PC (Fonte: Gamespot)Jogos de EstrategiaOs jogos de estrategia sao interessantes por fazer o jogador utilizar raciocinio logico, para construir um imperio ou mesmo gerenciar tropas de guerra. Podemos citar os jogos Warcraft 3 e a serie Command & Conquer.A inteligencia utilizada em tais jogos e dividida basicamente em dois niveis: em um nivel temos problemas como a navegacao de unidades, onde geralmente e usado um algoritmo do tipo A* (ou alguma variante do mesmo que leve em consideracao replanejamento em tempo real). Em um segundo nivel temos o planejamento estrategico/tatico, que determina o caminho na arvore tecnologica a se seguir (se o jogo possuir uma arvore), o ritmo de producao de unidades e instalacoes, e a frequencia e a localizacao dos ataques ao jogador humano. Para isso, os metodos utilizados em geral sao simplesmente maquinas de estado aliadas a sistemas baseados em regras parametrizaveis de forma a permitir o ajuste da dificuldade e jogabilidade. (TATAI, 2003, p. 31)Os sistemas baseados em regras e tambem uma tecnica de Inteligencia Artificial bem simples de implementar, e e largamente utilizada em jogos eletronicos. Segundo Karlsson (2005, p. 21), um sistema baseado em regras e definido atraves de um conjunto de parametros e um conjunto de regras que trabalham sobre estes parametros, de modo que durante a tomada de decisao, essas regras sao entao processadas. Um modo e implementar testes de condicao e comparar com as regras pre-estabelecidas da situacao atual.Outra tecnica interessante que pode ser utilizada, segundo VIEIRA (2005, p. 13) e o sistema baseado em planejamento. O planejamento de IA aplicado a jogos digitais e o armazenamento de planos de acao e fazer com que o usuario escolha o plano mais adequado numa determinada situacao. Tambem pode permitir ao personagem decidir qual estrategia ele pode utilizar (alem do proprio personagem criar a sua estrategia). Uma vantagem desta tecnica e que as acoes do personagem nao sao tao repetitivas (diferente dos personagens com o sistema de Maquina de estado Finita, por exemplo).Jogos de CorridaOs games de corrida sao games peculiares que, como os games de tiro, nao precisam de tanto raciocinio por parte do jogador. Mas nao quer dizer que sejam faceis.
Games como Need For Speed e Gran Turismo fizeram historia no mundo dos games. Este ultimo foi o primeiro que, realmente, teve um nivel de dificuldade inovador na epoca, onde o jogador tinha que cumprir provas e tirar sua carteira de motorista. Ja Need For Speed foi um dos primeiros games de corrida para PC, e suas ultimas versoes, como o Need For Speed Underground 2 (Figura 2), por exemplo, inovaram com niveis de customizacao incriveis. O jogador poderia customizar seu carro do jeito que quisesse, trocando a cor ou inserindo pinturas e desenhos na lataria.Figura 02 Imagem do game Need For Speed Underground 2. Versao para PC (Fonte Gamespot)Uma tecnica que pode ser aplicada em jogos de corrida sao os algoritmos geneticos. Os algoritmos geneticos sao algoritmos que simulam a selecao natural proposta por Darwin na genetica, ou seja, a estrutura pode evoluir e entrar em mutacao, para executar com uma melhor performance. E algo similar a experiencia em jogos de RPG, onde o personagem pode evoluir, ganhar mais atributos e poderes que podem ajudar em niveis mais avancados do game.Num game de corrida, e interessante a aplicacao de algoritmos geneticos pois os designers podem criar varios tipos de carros baseando-se em um deles (ou seja, criando populacoes de carros), ate chegar a resultados otimos, o que diminui tanto o tempo de criacao do jogo (caso certo jogo tem muitos carros) quanto a propria Inteligencia Artificial do jogo, onde o jogador pode encontrar adversarios diferentes, o que aumenta a diversao do game. (VIEIRA FILHO, 2005, p. 25)Jogos de FutebolJa os games de futebol sao interessantes, pois exige mais raciocinio do jogador, aliado ao gosto pelo esporte mais popular do planeta. Os games de futebol sao interessantes para a Inteligencia Artificial, pois sao os que aproximam mais perto da realidade. Como exemplo, podemos citar o game Fifa Soccer 2005 (Figura 03).Figura 03 Imagem do game Fifa Soccer 2005, para PC (Fonte Gamespot)Uma tecnica interessante que pode ser aplicada em jogos de futebol sao as redes neurais. Elas sao redes computadorizadas onde a sua estrutura e similar a um cerebro humano, tendo nos de rede (neuronios) e conexoes entre os nos. A vantagem de usar uma rede neural e que a rede pode aprender e armazenar conhecimento para uso posterior. Num game de futebol, a aplicacao de redes neurais pode ser utilizada para que jogadores de futebol aprendam a interceptar a bola durante uma partida (KARLSSON, 2006, p.33)Outra tecnica interessante identificada por VIEIRA FILHO e a logica Fuzzy, onde as aplicacoes podem ser desde a definicao das faltas (se foi uma falta muito forte ou nao ou mesmo se o jogador deve chutar a bola para o gol muito forte, ou mais fraca, e outros).Tecnicas comuns em varios tipos de jogosAlem das tecnicas mostradas ate aqui, existem outras tecnicas importantes que podem ser aplicaveis em muitos estilos de jogos, como os algoritmos de pathfinding.Algoritmos de Path-finding Na maior parte dos jogos 3D, o personagem precisa ter nocao de onde pode ir para chegar ao seu objetivo (um alvo, oponente ou mesmo um determinado
Ola caros leitores, neste tutorial voces aprenderam alguns conceitos basicos sobre o mundo bidimensional utilizado nos jogos. Tambem sera explicado de maneira rapida alguns termos como sprites e tiles. Logo na sequencia iremos configurar uma janela de m projeto em XNA e depois iremos adicionar e desenhar uma imagem na tela. O codigo deste tutorial foi criado e testado no XNA 4.0, ou seja, qualquer mudanca de versao pode acarretar ou nao em reajustes no codigo.O mundo bidimensionalLembra-se daquelas aulas que voce enforcava de geometria plana da escola ou ate mesmo da faculdade? Quem nunca quis esganar o professor por causa daqueles inumeros planos cartesianos desenhados no caderno para calcular a distancia entre dois pontos, area do triangulo, e tudo o mais a partir das coordenadas cartesianas, que atire o primeiro esquadro. Pois bem, saiba que aquilo tudo nao foi em vao nos precisaremos daquele conceito aqui. Vamos apenas recapitular como funcionam as coordenadas 2D para que possamos compreender a maneira correta de posicionar os nossos objetos dentro do jogo.La nas aulas de geometria nos utilizavamos o plano cartesiano comum para definirmos as figuras geometricas. Veja a Figura 1.Figura 1 - Plano cartesianoPerceba que nesse plano a origem dos pontos se da no canto inferior esquerdo e o valor de Y e crescente quando o seu eixo sobe, e decrescente quando desce. Quando estamos trabalhando com computadores, no entanto, tambem estamos trabalhando com o sistema de coordenadas de tela, que e semelhante ao cartesiano (Figura 2).Figura 2 - Plano cartesiano 2D nos jogosAnalisando a figura, podemos perceber as tres diferencas existentes entre esses dois sistemas. Primeiro, a origem dos eixos se da na parte superior esquerda do plano. Segundo, o valor de Y e crescente quando seu eixo cresce para baixo e, por ultimo, os valores de Y e X terao um valor maximo que nao devera ser extrapolado conforme a resolucao da tela.SpritesAntes que alguem pense em uma piadinha, sprite nao e a marca de refrigerante e sim um elemento basico visual dos jogos bidimensionais que pode ser representado por um conjunto de imagens estaticas. Uma animacao de um jogo em duas dimensoes, por exemplo, e representada por uma sequencia de sprites sendo exibidos em sucessao. Sua principal funcao atualmente e economizar recursos ao tornar desnecessaria a representacao de objetos utilizando objetos complexos em tres dimensoes. Um exemplo de sprite para animacao do personagem Mario, pode ser visto na Figura 3.Figura 3 - Sprites do MarioAs imagens 1 a 3 definem o movimento de caminhada do Mario, enquanto a imagem 4 a 5 o de pulo. Perceba que ao trocar a imagem voce pode posicionar o objeto em outra posicao dando realmente a impressao que ele esta caminhando. Um detalhe importante e que so existe imagens para um lado, pois para ele andar para o outro lado voce deve simplesmente fazer um giro horizontal na imagem.TilesTiles sao pequenos pedacos de imagens que servem para criar uma nova imagem composta conhecida como layer, utilizadas para criar o cenario de um jogo. Essa tecnica e chamada de TileMaps, no qual, atraves de uma
imagem contendo diversos pedacinhos de imagens (tiles), se pode criar um cenario para um jogo. Exemplos classicos do uso de TileMaps, sao em jogos de RPG (Role Playing Game). Os jogos de RPG geralmente possuem cenarios extensos o qual se fosse feito com uma unica imagem ocuparia muito espaco de memoria e alguns anos atras em que surgiram, as memorias eram bem limitadas. Entao a tecnica de dividir o cenario em tiles e recria-lo em tempo de processamento fez essa tecnica ser muito utilizada ate hoje em dia. Um exemplo pode ser visto na Fig. 4.0 Figura 4 - Exemplo: a imagem da esquerda contem os tiles para desenhar um cenario, enquando a imagem da direita e o cenario ou seja o layer construido utilizando os tilesPreprando a janela de um JogoCom um projeto de jogo aberto, ao inves de usarmos a configuracao padrao definida pelo XNA, vamos manualmente configurar algumas caracteristicas da janela, alterando o titulo e o seu tamanho. Para tal, precisamos de um device que nos comunique com o video. O proprio XNA ja declara este device, como pode ser observado no inicio da classe Game1 (Para abrir a classe Game1.cs de um duplo-clique na Game1.cs que se encontra no Solution Explorer de seu projeto).?1 GraphicsDeviceManager graphics;Vamos entao determinar um tamanho para a janela, adicionar um titulo e desabilitar o modo Tela cheia e o mouse. Para isso utilizaremos o device de video cujo nome e graphics. Queremos que isso seja realizado logo no inicio do jogo, entao os comandos devem ficar dentro do metodo Initialize()protected override void Initialize(){ // Altera o video para 800 pixels de largura graphics.PreferredBackBufferWidth = 800; // Altera o video para 600 pixels de altura graphics.PreferredBackBufferHeight = 600; // Desabilita o modo tela cheia graphics.IsFullScreen = false; // Desabilita a visibilidade do mouse dento do jogo IsMouseVisible = false; // Aplica as mudancas graphics.ApplyChanges(); // Define o titulo da janela Window.Title = "Meu primeiro jogo"; base.Initialize();}Salve e rode seu projeto (F5). Agora a janela criada possui uma dimensao 800x600 pixels, como na maioria dos jogos. Voce pode explorar os outros comandos do device caso queira se aprofundar mais.Adicionando imagens (Texture2D) ao projetoTodos os conteudos externos ao projeto devem ser adicionados a pasta Content. Para adicionar uma imagem clique na pasta Content com o botao direito do mouse e selecione Add a Existent Item. Entao procure a imagem deseja e a selecione (o Visual C# ira fazer uma copia desta imagem para dentro do seu projeto). Veja a Figura. 5. Caso queira usar a imagem do nosso fantasma, faca o download clicando aqui.Figura 5 - Adicionando imagens a pasta de conteudo do jogoCarregando a Imagem (Texture2D)Como estamos estudando duas dimensoes (2D), precisamos criar um objeto chamado imagem do tipo Texture2D. Nao irei entraremos em detalhe, mas e preciso declarar esse objeto e como a imagem e um recurso grafico, entao devemos carregar a imagem no metodo? Isso mesmo, LoadContent.Para carregar uma imagem no objeto, e preciso utilizar o metodo Load(AssetName) do conteudo do Game onde seria o tipo de textura que iremos carregar. No nosso