260 likes | 345 Views
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;
E N D
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!
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 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.
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.
2) Multiplayer com o Unity? • Sim, cliente-servidor construído em Unity Ver: • http://unity3d.com/support/resources/example-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, ...
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!
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
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);
Eventos de conexão • Chamados automaticamente quando acontece algo com a conexão; • OnConnectedToServer, OnDisconnectedFromServer, OnFailedToConnect, OnPlayerConnected, OnPlayerDisconnected...
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;
RPCRemote Procedure Calls • Permitem que sejam chamadas funções em máquinas remotas; @RPC function ExibirMsg (txt : String) { Debug.Log(txt); } networkView.RPC ("ExibirMsg", RPCMode.All, "Oi");
3) Posso abrir mais de uma instância do Unity ao mesmo tempo? • Sim! • Cuidado! Evite abrir o mesmo projeto! • Crie um bat com: • "C:\...\Unity.exe" –projectPath "C:\...\Projeto"
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? • 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) Evitar obstáculos: procurar desviar os obstáculos pelo caminho. 16
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.
7)Modelos, animações, gratuitos, baratos, fáceis de usar? • 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? • 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;
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.
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;
7)Modelos, animações, gratuitos, baratos, fáceis de usar / construir? • Spore (!) – Você pode exportar suas criaturas / veículos e construções para o formato Collada (.dae).
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;
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.
7)Modelos, animações, gratuitos, baratos, fáceis de usar / construir? • Google Sketchup: • Possui um armazém 3D; • Arquivo .kmz é um .zip com .dae dentro...
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;