Pular para o conteúdo principal

Fazendo jogos e aplicativos com Unity 3D




Uma das principais dúvidas de quem está iniciando no mundo do desenvolvimento de jogos digitais é a de quais softwares utilizar. Em especial, muitas pessoas têm dificuldade em decidir qual game engine (ou, em português, motor de jogo) aprender para dar inicio ao desenvolvimento dos próprios jogos.

Mas o que é uma game engine?

A game engine é o programa de computador utilizado na confecção dos jogos digitais. É na game engine que a programação do jogo é feita, unindo arquivos de áudio, imagens e modelos 3D para criar os diversos cenários e ambientes do jogo.

Uma game engine possui diversas bibliotecas de scripts já embutidas, que facilitam o desenvolvimento de um jogo. Por exemplo, a maioria das game engines já vem com scripts para cuidar da renderização dos gráficos (motor gráfico) e da física básica envolvida no jogo (motor de Física). Isso quer dizer que é possível criar, por exemplo, uma esfera no editor da game engine e, com apenas alguns cliques, configurar aquele objeto 3D para se comportar como uma bola de borracha.


Dessa forma, se “soltarmos” a bola sobre uma superfície, ela aceleraria em direção ao solo (devido a gravidade, configurada automaticamente pela game engine) e quicaria algumas vezes no solo, perdendo energia até que ela ficaria parada no chão. Exatamente como aconteceria se deixássemos cair uma bola de basquete de verdade, por exemplo.

Todo esse comportamento físico é calculado automaticamente pela game engine, sem que você precise passar pelo problema de escrever em linguagem de programação as equações físicas envolvidas no evento.

Mas como escolher qual game engine utilizar e/ou começar a aprender?


Neste artigo, apesar de não discutir as diversas game engines disponíveis no mercado (esse será assunto de um outro artigo!), eu vou mostrar para vocês algumas das principais características da game engine que utilizo: a Unity 3D – uma das mais famosas e poderosas game engines disponível atualmente.

O que é a Unity e o que posso fazer com ela?

Unity_3D_logo
A Unity é um programa com várias funcionalidades, que permite ao usuário fazer desde jogos simples até jogos de última geração. Desde ambientes 3D como bibliotecas virtuais, até aplicativos multi-plataformas.


Só para você ter uma ideia de quão poderosa e abrangente é essa ferramenta, aqui vai uma curiosidade para você: a animação feita pela NASA para mostrar parte do que o robô Curiosity iria fazer em Marte foi feita na Unity!

(Essa conquista – o pouso bem sucedido do Curiosity na superfície de Marte – com certeza foi uma das coisas mais empolgantes de 2012! você pode ver a experiência feita em Unity clicando aqui. Você provavelmente vai precisar instalar o plug-in da Unity, chamado Unity player, mas é bem fácil)

Para descrever uma ferramenta tão completa como a Unity, nada melhor que a descrição encontrada no próprio site da empresa:

A Unity é um motor de desenvolvimento integrado que fornece uma funcionalidade pioneira para criação de jogos e outros conteúdos interativos. Poderá utilizar o Unity para montar sua arte e recursos em cenas e ambientes; adicionar física, editar e testar simultaneamente seu jogo e, quando preparado, publicar em suas plataformas escolhidas, tais como computadores fixos, a rede, iOS, Android, Wii, PS3 e Xbox 360.
As três linguagens de programação que podem ser utilizadas na Unity são BooJavaScript e o C# (se lê “ci sharp”). Na verdade, existem complementos que podem ser comprados para que a criação de jogos em Unity dispense o uso de linguagens de programação.

Com esses complementos instalados, a programação do jogo é feita de forma visual (sem que nenhuma linha de código precise ser escrita), conectando eventos em uma espécie de fluxograma. Caso tenha ficado interessado no conceito, uma dessas ferramentas se chama PlayMaker.

Para entender a real capacidade do Unity, nada melhor que um vídeo mostrando um pouco do que é possível ser feito usando esse incrível software. Repare na qualidade da chuva, nos reflexos nas poças de água, na iluminação incrível, na qualidade do áudio tridimensional (por exemplo, o som que o trem faz quando passa)… e você verá porque o Unity é uma das principais plataformas de desenvolvimento de jogos atualmente.


Desenvolvendo para diferentes plataformas

Uma das características mais incríveis do Unity é a possibilidade de preparar o jogo para várias plataformas de uma vez, sem que nenhum trabalho adicional seja necessário. Para quem nunca tentou fazer um jogo talvez essa afirmação não pareça bastante coisa, mas eu vou tentar explicar o quanto isso é incrível!

Quando a Unity (e outras game engines) ainda não ofereciam esse tipo de portabilidade simplificada, o que acontecia era o seguinte: você escolhia uma plataforma pra vender seu jogo e programava usando o “kit de desenvolvedor”, geralmente fornecido pela empresa da plataforma. Dessa forma, todos os scripts que você escrevia eram específicos para aquela plataforma.


Se seu jogo fizesse algum sucesso e você quiser publica-lo também para outra plataforma (por exemplo, considere as plataformas iOS e Android), seria necessário programar todo o jogo de novo, usando a linguagem adequada para a nova plataforma. Dá pra imaginar o trabalho que isso daria, não dá?

Desenvolvendo com Unity, você tem a incrível possibilidade de fazer o jogo apenas uma vez e publica-lo em mais de dez plataformas! Isso mesmo, você faz o jogo uma vez e o Unity trata de “traduzir” para a linguagem adequada em cada plataforma, preparando os arquivos finais do jogo de acordo com a plataforma-alvo escolhida.

Mas para quais plataformas o Unity consegue exportar? Bom, basicamente todas as plataformas relevantes. A lista atual (que cresce constantemente) é a seguinte:

iPhones
iPads
Blackberry
– Celulares e tablets com Android
PC
Mac
Linux
Windows Phone
Nintendo Wii
Xbox 360

Playstation 3
 Playstation 4

Portanto, se você for um desenvolvedor autorizado dessas plataformas, você pode criar seu jogo apenas uma vez e o Unity se encarregará de gerar os arquivos necessários para que o seu jogo rode em cada uma dessas plataformas.

Você deve imaginar que a economia de tempo e dinheiro são enormes! Com Unity, até mesmo desenvolvedores independentes podem ter jogos publicados em diversas plataformas.

As principais vantagens de utilizar a Unity 3D

As vantagens em utilizar a Unity 3D como game engine são muitas. Para começar, a possibilidade de fazer um jogo e publica-lo em diversas plataformas (como mencionei na seção anterior) sem que seja necessário refazer o jogo várias vezes.

Outra vantagem é o grande número de recursos de jogos disponíveis, como audios, scripts pré-prontos, starter kits, texturas, entre outras coisas. No artigo anterior eu mostrei como ganhei R$ 2.419,00 vendendo um jogo produzido com R$ 87,00 e dois dias de trabalho. Tal feito só foi possível porque eu comprei scripts pré-prontos e modelos 3D na internet, reduzindo quase a zero o meu trabalho.


Por fim, mas não menos importante, está a grande comunidade de pessoas que utilizam a Unity. É bem fácil encontrar na internet tutoriais, dicas e discussões sobre o Unity, graças ao imenso número de usuários do programa. Isso torna o desenvolvimento e a produção do jogo muito mais fácil, uma vez que se encontra com certa facilidade desde starter kits até programadores freelancers para Unity.

Jogos feitos com Unity

Se você costuma jogar jogos independentes (indie games) ou jogos de celular, é bem provável que você já tenha jogado um jogo feito no Unity.


Veja alguns exemplos de jogos criados com Unity:


Bad Piggies


bad-piggies-oyunu-badpiggiesoyna

Esse é um jogo da Rovio, mesma empresa que fez Angry Birds. Na verdade, em Bad Piggies você controla os mesmos porquinhos que eram os vilões em Angry Birds.

O produtor de Bad Piggies, Jaakko Haapasalo, disse que eles começaram fazendo o protótipo do jogo usando o Unity e acabaram levando a diante, fazendo o jogo completo usando o software. Os elogios para a game engine foram enormes; Jaakko Haapasalo ficou especialmente impressionado com as ferramentas de animação do programa.

Assim como Angry birds, Bad Piggies tem um gameplay baseado principalmente na Física do jogo (explosões, lançamentos de projéteis, planos inclinados, etc) e, portanto, fez bastante uso do motor de Física do Unity.


Além disso, a Rovio se aproveitou da facilidade de exportar para múltiplas plataformas oferecida pela Unity para colocar seu jogo nas mais diversas lojas virtuais. Atualmente, o jogo está disponível para iPhones, iPads, celulares e tablets com o sistema Android, Blackberry, Kindle Fire, Macs e PCs. E em breve também estará disponível na Windows Store e na Windows Phone Store.

Baixando e instalando a Unity 3D

E aí, gostou do que leu e quer instalar a Unity 3D no seu computador para começar a aprender como as coisas funcionam?

Ótimo, vamos lá então. Comece indo para a página de download do site da Unity3D clicando aqui. Uma vez na página de download basta clicar no botão “baixar o Unity” e esperar o download (a versão atual tem 1.28 gb). E não se preocupe, o site do Unity reconhece automaticamente qual sistema operacional você está usando (Mac OS X ou Windows) e baixa a versão correta para você.
Vale lembrar que a versão mais simples (porém muito poderosa!) do Unity é grátis! Então não perca tempo e baixe logo!


As especificações mínimas para o computador rodar a Unity são as seguintes:

Para fazer jogos de computador (mac, windows, linux)

  • Windows: XP SP2 ou mais recente; Mac OS X: Intel CPU com sistema operacional “Snow Leopard” 10.6 ou mais recente.
  • Placa gráfica com suporte a DirectX 9. Qualquer placa feita a partir de 2004 deve ser o suficiente.

Requerimentos de sistema para fazer jogos para iOS (iPhones e iPads)

  • Mac com chip intel (intel-based mac)
  • Mac OS X “Snow Leopard” 10.6 ou mais recente

Requerimentos de sistema para fazer jogos para Android (celulares e tablets)

  • Windows XP SP2 ou mais recente; Mac OS X 10.6 ou mais recente
  • Android SDK e Java Development Kit (JDK)
  • Dispositivo android necessário para testes:
    • Android OS 2.0 ou mais recente
    • Dispositivo com ARMv7 (Cortex family) CPU
    • Suporte para OpenGLES 2.0 é recomendado
Após a instalação do Unity, o programa vai te pedir para fazer um registro. É tudo bem simples, basta preencher alguns dados simples e pronto. Ele vai te levar para o próprio site do Unity para que você escolha qual versão você quer adquirir. Nessa parte, basta marcar a opção “free” ou “grátis” e pronto! Sua versão do Unity já está pronta pra ser usada!

Agora que tudo está instalado e funcionando, por onde começar?

Tutoriais sobre a Unity

Alguns dos membros da Academia de Produção de Jogos já escreveram alguns tutoriais de Unity aqui no blog. Dá uma olhada aí também:
Confira ainda estas duas entrevistas que eu fiz com desenvolvedores que usam a Unity:

Conclusão

Nesse artigo nós vimos várias das principais características da game engine Unity 3D. Eu listei algumas das principais vantagens de se usar Unity, como por exemplo a grande comunidade de usuários (o que possibilita, dentre outras coisas, comprar recursos pré-prontos para produzir seu próprio jogo), os excelentes motores físicos e gráficos e, principalmente, a possibilidade de exportar um mesmo jogo para várias plataformas diferentes.

Não é exagero dizer que a Unity revolucionou o mercado de jogos digitais. Ao oferecer gratuitamente uma game engine de extrema qualidade, que pode fazer jogos e aplicativos para as principais plataformas do mercado, a Unity tornou possível para praticamente todo mundo produzir seus próprios jogos, suas próprias idéias.

Não é à toa que a Unity é a game engine que mais cresce no mundo!

Você já tentou fazer algum jogo com Unity? Chegou a termina-lo e conseguiu publicar? conte pra gente como foi sua experiência aqui na seção de comentários! 

Ou você ainda não experimentou a Unity (ou nem sabia que ela existia!)? Clique aqui e baixe agora mesmo e comece a produzir e vender seus próprios jogos. Não estou dizendo que vai ser fácil, mas com certeza esse é um bom começo 😉


Até a próxima!

Comentários

Postagens mais visitadas deste blog

Computação Gráfica: Fundamentos básicos

As 7 principais linguagens de programação usadas em desenvolvimento mobile

A multiplicidade de linguagens para a criação de softwares e aplicativos é gigantesca. Inserido nesse universo recheado de idiomas, digno de séries e filmes cultuados como “Star Trek” e “Star Wars”, o programador deve escolher precisamente a opção mais adequada ao objetivo final.
Não somos tão sábios quanto Mestre Yoda e Spock, mas vamos te dar uma força e explicar quais as linguagens de programação mais usadas em desenvolvimento mobile. Siga-nos nessa jornada!
Java Adquirida pela Oracle, é a linguagem mais utilizada por programadores ao redor do mundo. Orientado a objetos, o Java é compilado e flexível, podendo ser executada tanto numa janela de navegador quanto em aparelhos sem browser.
Outra grande vantagem da linguagem Java é a capacidade multiplataforma, cujo código é executado com especial sucesso em sistemas Android e Windows. Ainda assim, quando fala-se em desenvolvimento mobile no Brasil, com a salada mista de SO nos smartphones e tablets, dependendo dos seus …

Algoritmo de Bresenham

O algoritmo de Bresenham — em homenagem a Jack Elton Bresenham — é um algoritmo criado para o desenho de linhas, em dispositivos matriciais (como por exemplo, um monitor), que permite determinar quais os pontos numa matriz de base quadriculada que devem ser destacados para atender o grau de inclinação de um ângulo.

O Código
voidbresenham1(intx1,inty1,intx2,inty2){intslope;intdx,dy,incE,incNE,d,x,y;// Onde inverte a linha x1 > x2 if(x1>x2){bresenham1(x2,y2,x1,y1);return;}dx=x2-x1;dy=y2-y1;if(dy<0){slope=-1;dy=-dy;}else{slope=1;}// Constante de BresenhamincE=2*dy;incNE=2*dy-2*dx;d=2*dy-dx;y=y1;for(x=x1;x<=x2;x++){putpixel(x,y);if(d<=0){d+=incE;}else{d+=incNE;y+=slope;}}} Desenhar Reta em Java – Algoritmo de Bresenham/DDA Inteiro O objetivo deste algoritmo é reduzir o esforço computacional para se
desenhar uma reta, bem como reduzir erros de arredondamento e operações com ponto flutuante. E, de fato, o algoritmo de Bresenham consegue fazer isso – ele se desenvolv…