Bruno C. de Paula Finalização 1º Semestre 2010 > PUCPR > Pós Jogos Sumário Comentar sobre detalhes de desenvolvimento que não tiveram espaço neste curso; Responder a dúvidas comuns e dar dicas em geral para seus projetos; Fornecer material gratuito e fácil de usar para a prototipação rápida de seus jogos. Lembre-se: O Diabo está nos detalhes! Ou seja, a diferença entre um bom e um mau jogo pode ser mínima! 05/11/2015 3 1) Como trabalhar com som? Componente Audio Listener: Funciona como microfone; Recebe o som de um ou mais componenetes do tipo Audio Source; Associado, geralmente, à Main Camera. Cada cena só pode ter 1 audio listener; Componente Audio Source: Toca um audio clip (3d ou não); Arquivos do tipo .aif, .wav, .mp3 e .ogg. Propriedade Audio Source Audio 05/11/2015 4 Clip: arquivo; Play On Awake: roda quando a cena inicia; Volume; Pitch: velocidade; Max / Min Volume: volume mínimo e máximo não importando a distância; Rolloff Factor: quanto maior, mas perto tem que se estar para ouvir o sim; Loop: repete ao chegar no fim. 05/11/2015 5 Scripts para som audio.Play(): toca um som; audio.Stop(): interrompe; audio.isPlaying: verifica se está tocando // Tocar som específico: var som : AudioClip; audio.clip = som; audio.Play(); Dica: ferramenta para criação de efeitos sonoros. 05/11/2015 6 2) Multiplayer com o Unity? Sim, cliente-servidor construído em Unity Ver: http://unity3d.com/support/resources/exa mple-projects/networking-example iPhone Multiplayer Tutorial; ** Excelente tutorial ** . Servidor não precisa ser escrito no Unity Também pode usar outras infraestruturas como servidor: SmartFox; • Tutorial criação de ambientes multiusuário no Unity usando o SmartFox; Raknet: • Interação com servidor C++; Outros: • Photon, RedDwarf, NetDog, ... 05/11/2015 7 05/11/2015 8 Dicas para projeto Multiplayer Difícil de depurar, use duas instâncias do Unity ou o Web Player; Se o Unity for o servidor, garanta que ele rode em background (Edit > Project Settings > Player > Run in Background); Pode usar NAT (Network Address Translation); Projeto de jogo multiplayer não é simples! 05/11/2015 9 Abordagens para jogos em rede Authorative Server X Non-Authorative Server Maior processamento no servidor X confiança no cliente; Client Side Prediction X Sem predição 05/11/2015 10 Scripts para Conexão Network.InitializeServer: Cria o servidor; Pode ser uma máquina dedicada ou que também está jogando. Network.Connect: Conecta com um servidor existente; Precisa do ip e da porta (senha opcional); 05/11/2015 11 Eventos de conexão Chamados automaticamente quando acontece algo com a conexão; OnConnectedToServer, OnDisconnectedFromServer, OnFailedToConnect, OnPlayerConnected, OnPlayerDisconnected... 05/11/2015 Componente Network View Útil para sincronizar o estado de componentes pela rede ou enviar mensagens; State Synchronization indica o tipo de sincronização; Controle fino usando o evento OnSerializeNetworkView; 12 RPC Remote Procedure Calls Permitem 05/11/2015 que sejam chamadas funções em máquinas remotas; @RPC function ExibirMsg (txt : String) { Debug.Log(txt); } networkView.RPC ("ExibirMsg", RPCMode.All, "Oi"); 13 3) Posso abrir mais de uma instância do Unity ao mesmo tempo? 05/11/2015 14 Sim! Cuidado! Crie Evite abrir o mesmo projeto! um bat com: "C:\...\Unity.exe" –projectPath "C:\...\Projeto" 05/11/2015 15 4) Como fazer pathfinding? Ótima solução do Aron Granberg; Usa algoritmo A*; Navegação em um grid de nós; Outras sugestões de implementação: Campos potenciais; Waypoints. 5) E comportamentos emergentes / flocking? 05/11/2015 16 Fácil implementação ver Programming GameAI By Example; Se quiser uma abordagem pronta, use a Biblioteca UnitySteer (licença MIT); Separação: Evitar os vizinhos que estão muito próximos Alinhamento: acompanhar a velocidade média do grupo Coesão: acompanhar a posição média do grupo (centro de gravidade) 16 Evitar obstáculos: procurar desviar os obstáculos pelo caminho. 6) Quais os principais tutoriais / exemplos disponíveis no site do Unity? Os que podem ajudar na criação de seus jogos: Plataforma de 3ª Pessoa; Tiro de 3ª Pessoa; Plataforma em 2D; Jogo de carro (realista) ; FPS. 05/11/2015 17 7)Modelos, animações, gratuitos, baratos, fáceis de usar? 05/11/2015 18 A seguir, uma lista de ferramentas e recursos fáceis de usar e rápidas de aprender! TurboSquid: Mercado de modelos 3d. 7)Modelos, animações, gratuitos, baratos, fáceis de usar? 05/11/2015 Mixamo: Serviço on line para criação de animações em 3D; Integração perfeita com Unity, download do FBX otimizado para o Unity; 19 7)Modelos, animações, gratuitos, baratos, fáceis de usar? Você pode fazer o upload do esqueleto, download da animação ou criação do personagem via Web. Fiquem de olho (!): Pessoal da Stanford; Modelo de negócios inovador; Integração com OpenSim. 05/11/2015 20 7)Modelos, animações, gratuitos, baratos, fáceis de usar / construir? Make Human: modelagem de humanóide; UniHuman: versão lowpoly do MakeHuman, roda no Blender; 05/11/2015 21 7)Modelos, animações, gratuitos, baratos, fáceis de usar / construir? Spore 05/11/2015 (!) – Você pode exportar suas criaturas / veículos e construções para o formato Collada (.dae). 22 7)Modelos, animações, gratuitos, baratos, fáceis de usar / construir? Sculptris; Ferramenta de escultura digital; Alternativa gratuita ao Zbrush; Fácil de usar; Gera modelos hi poly (necessitam de tratamento posterior para poder ser usado em um jogo; 05/11/2015 23 7)Modelos, animações, gratuitos, baratos, fáceis de usar / construir? ShapeShop: Ferramenta de modelagem 3D com interface baseada em rascunhos; Exporta Collada e obj. 05/11/2015 24 7)Modelos, animações, gratuitos, baratos, fáceis de usar / construir? Google 05/11/2015 Sketchup: Possui um armazém 3D; Arquivo .kmz é um .zip com .dae dentro... 25 7)Modelos, animações, gratuitos, baratos, fáceis de usar / construir? Arquivos BVH (e similares) (Biovision Hierarchy - mocap) gratuitos: 2500 movimentos; Free Motion Capture Data; Mocaps CMU Open Source. Ferramentas gratuitas para visualização / edição de mocap: Animeeple – integrado com Unity (ver), importa do Evolver. BVHHacker; 05/11/2015 26