13-2-01+Pong+Android

=Projeto do Pong Android.=

Desenvolvido por José Eduardo Campanha - Ra: 0040441123009 Fatec Americana - Jogos Digitais - 2º semestre 2013

Este projeto foi realizado durante o segundo semestre de 2013 nas aulas de Laboratório de Programação Avançada do curso de Jogos Digitais da Fatec Americana. Foi utilizada a Engine [|Unity] com a linguagem de programação [|Java Script]. Todos os conceitos utilizados foram adquiridos através de pesquisas, tutoriais e troca de informações com outros programadores durante o período de desenvolvimento. A seguir mais informações sobre o projeto. E ao final está disponível o código e o apk do jogo para download.

1 - Android


É desenvolvido pela Open Handset Alliance, uma aliança entre várias empresas, dentre elas a Google. O funcionamento do Android é idêntico a outros sistemas operacionais (como Windows, Mac OS, Ubuntu, entre outros), cuja função é gerenciar todos os processos dos aplicativos e do hardware de um computador para que funcionem perfeitamente. A diferença é que o Android foi impulsionado pela Google para ser operado nos seus próprios dispositivos móveis e desta forma, entrar na concorrência com outros sistemas operacionais dominantes como o Symbian (dispositivos Nokia), iOS (dispositivos Apple, como iPhone) e Blackberry OS. Uma das principais vantagens do sistema Android é a integração dos serviços Google a partir de uma conta Google que o usuário já possua. Outra grande vantagem é o Android Market, a loja oficial dos aplicativos, que oferece uma infinidade de aplicativos gratuitos. O primeiro celular a executar o sistema Android foi o T-Mobile G1 (HTC Dream), fabricado pela Google, juntamente com a HTC em 2008. Em 2010, a empresa Google, em parceria com a Samsung, lançou a série Nexus, com os modelos Nexus One, Nexus S e Galaxy Nexus.
 * Android** é o nome do sistema operacional baseado em Linux que opera em celulares //(smartphones)//, //netbooks// e //tablets//.

2 - Android Mini-PC -


Android Mini PC, também conhecido como MK802. Fabricado na China e lançado em maio de 2012, este dispositivo é um pouco maior do que os pendrives que usamos normalmente e, como o seu nome revela, roda o sistema operacional móvel da Google – podendo ser instalado o Linux. Mas será que o potencial de processamento desse equipamento tão pequeno aguenta a nossa rotina? Seria possível executar games para o seu entretenimento? Vale a pena comprá-lo? Nós tivemos a oportunidade de testar o Android Mini PC e dizemos aqui o que achamos deste “computador” portátil. Uma característica que diferencia o Android Mini PC dos demais dispositivos do gênero — e que o coloca em pé de igualdade com o Cotton Candy — é a disponibilização de uma saída HDMI. Esse padrão de transferência de áudio e vídeo permite conectar o MK802 diretamente em sua televisão. Assim, é possível reproduzir gravações ou vídeos do YouTube, navegar pela internet e explorar os recursos oferecidos pelo Android 4.0 em telas muito maiores – promovendo uma experiência mais agradável com conteúdos em alta definição com até 1080p (1920x1080 pixels).

**Especificação**
Confira abaixo as especificações do Android Mini PC:  Leia mais em: [|http://www.tecmundo.com.br/analise/27762-analise-android-mini-pc-video-.htm#ixzz2g2e6rCTt]
 * **Modelo**: AK-212MiniPC
 * **Sistema operacional**: Android 4.0.3 (Ice Cream Sandwich);
 * **Processador**: Allwinner A10 com 1,5 GHz (ARM Cortex-A8);
 * **Placa gráfica**: GPU Mali 400;
 * **Memória RAM**: 512 MB (há modelos com 1 GB);
 * **Armazenamento interno**: 4 GB (expansível com o uso de um cartão de memória microSD);
 * **Internet**: redes sem fio (802.11b/g/n);
 * **Conectividade**: uma porta USB 2.0, uma entrada mini-HDMI e uma porta microUSB;
 * **Alimentação**: direto na tomada;
 * **Dimensões**: 8,8 x 3,5 x 1,2 cm (largura x altura x espessura);
 * **Peso**: 230 gramas;
 * **Cores**: preta e branca.

3 - Pong Android
Em sala de aula foi dado inicio ao uma pesquisa de vários projetos em varias plataformas. Então foi escolhido a plataforma Java para o desenvolvimento do projeto. Em seguida foi escolhido um jogo clássico: Pong. Assim, tendo essas informações foi procurado a melhor forma e linguagem de desenvolver, então depois de varias pesquisas e tentativas de testes de varias IDEs a escolha foi o Unity. Sendo o primeiro aplicativo para Android, escolhemos desenvolver um jogo mais simples, pois assim seria o caminho para novas possibilidades de desenvolvimento e aprendizado que utiliza os conceitos básicos da maioria dos jogos existentes. O principal objetivo é adquirir conhecimento sobre o desenvolvimento de um jogo para plataforma Android, suas ferramentas e possibilidades. Além de adquirir conhecimento sobre o uso da Engine Unity.



Conceitos Envolvidos
Para o desenvolvimento do jogo utilizamos o Unity que utiliza varios tipo de linguagem assim como: C# Script, Java Script, shader entre outros. Para desenvolver deste Pong foi necessário utilizar, os conceitos de hierarquia, vetores para desenhar formas, colisão entre objetos instanciados, posicionamento utilizando eixos x e y, movimentação, e as noções básicas da utilização da linguagem C# Script.

Sabendo os conceitos que seriam usados no desenvolvimento, temos os objetos Bola, barreiras, os rebatedores e o limitadores(para que a bola não escape e fuja da tela). A Bola se movimenta livremente começando no centro da tela e adquirindo impulso para a direita ou esquerda. Se ela chega a uma posição limite da tela, superior ou inferior, sua velocidade no eixo y inverte. Se ela colide com um batedor a velocidade em x inverte. Já o Batedor ficaria nos extremos da tela e teria o diferente tratamento pois seria instanciado como player um e dois, eles são controlados por uma função que faz ele se posicionar em eixo y, assim podendo somente se movimentarem para cima e para baixo. Para melhorar nossa aplicação, foi adicionada algumas bibliotecas já prontas do Unity, como física, gravidade, para uma melhora no jogo. Foi criada uma "caixa" como barreira para a bola não sumir ou escapar da tela, uma objeto para ficar como rebatedor e a própria bolina foi aplicado a a física e gravidade. A jogabilidade foi criada por eventos para o moviemeto, quando aperta a tecla "x" o bastão faz um movimento, quando apertado a tecla "y" ele faz o movimento reverso. Esse script fica rodando em todo o momento em que o jogo começa ate seu fim. Foi criado também eventos para iniciar o jogo e finaliza-lo, assim quando acionados podemos fechar o jogo a qualquer momento.

Interação e a Física
Para existir tanto a interação como a física ou gravidade, precisa existir um mundo para ser associado a esses eventos. Todos os objetos se interagem entre si, assim bastão não ultrapassa a parede, assim como a bolinha não ultrapassa o bastão nem a parede, o script em C# e as classes adicionadas ao objetos fazem que sejam calculados esses eventos assim fazendo acontecer o jogo. Quando se cria um objeto no Unity precisa anexar a ele tanto um script, quanto uma classe, para assim esse objeto ter movimentos, leis da física ou qualquer que seja o desejo do desenvolvedor. Temos na aplicação que é dinâmica (bola), pois ela interage com a aplicação se movimentando o tempo inteiro, já o rebatedor seria melhor visto como um objeto cinemático, pois ele se movimenta e acaba interferindo em outro corpo sem que ele mesmo seja interferido com o outro objeto. Temos também os corpos estáticos mesmo sendo totalmente limitados são uteis, pois ele interage com outros corpos, eles são as paredes, piso ou tetos. São totalmente sem movimentos e limitados porem fazem a diferença na aplicação.

- 5 - Problemas enfrentados -
Os primeiros problemas apareceram em achar um IDE para se produzir o projeto, pois a complexidade de se gerar um .apk não é pouca. Toda engine ou IDE necessita de vários componentes junto com a IDE, tanto para compilar como para gerar o próprio .apk, mas nada que após uma árdua pesquisa não se consiga. Após achar o Unity e entender seu funcionamento, acabou ficando simples. Inicialmente como toda pessoa, que está começando a mexer com uma nova linguagem ou mexer com uma nova IDE, é descobrir como usa-la. Existe muitos tipos de tutoriais na internet, porem muita coisa já esta defasada para o engine atual, muita coisa está em inglês, então acabou ajudando pouco. A Unity é uma ferramenta completa, porem se demora para domina-la. Com tempo e depois de muitas pesquisa, acabasse se chegando em um detalhamento muito próximo do que realmente se deseja. Mas a falta de tutorias acaba afetando o desenvolvimento da aprendizagem no Unity.

- 6 - Instalação -
1º passo - Conectando o pendrive contendo o aplicativo na saída OTG do mini pc, utilizando o adaptador que vem com o mesmo aparecerá no canto inferior esquerdo um ícone informando que o pendrive está conectado. 2º passo - Clique no botão Ferramentas de Programas que fica no canto superior direito da tela inicial; 3º passo - Selecione o aplicativo "File Manager" e na próxima tela selecione a opção USB da aba Device; 4º passo - Encontre o arquivo Pong.apk e clique nele; 5º passo - Caso apareça alguma mensagem de segurança que só permite instalar aplicativos do Android Market basta continuar a instalação, aparecerá a janela perguntando se deseja instala ; 6º passo - Clique em instalar e aguarde;  No final aparecerá uma tela informando se foi instalado com sucesso e se sim, aparecerá duas opções Concluir para encerrar a instalação e continuar no File Manager ou Abrir para rodar o aplicativo instalado. 

Abrindo o aplicativo
Após instalado você pode abrir o aplicativo clicando na tela principal no botão de Ferramentas de Programas no canto superior direito. Lá basta selecionar o ícone Pong na aba Aplicativos, ou se o próprio Android criou um atalho na área principal é só executa-lo. 

Como Jogar
Após abri-lo na tela principal temos a opção de JOGAR ou QUIT GAME, onde pode-se escolher jogar o jogo ou sair da aplicação. O jogo é para ser jogado em 2 Players, um utilizará seta para cima e seta para baixo, para movimentar o bastão da direita, respectivamente a TECLA A E A TECLA Z, para movimentar a bastão da esquerda. existe também um botão sair para para o game e voltar para a tela inicial.

Excluindo
Para excluí-lo basta : - Clicar no botão Propriedades na barra inferior(ícone com três quadrados um em cima do outro); - No canto inferior direito irá aparecer três opções(Plano de Fundo, Gerenciar Aplicativos e Configurações do Sistema), clique em Gerenciar Aplicativos; - Aparecerá a janela de configurações; - Na lista de aplicativos selecione o Pong e em seguida clique no botão Desinstalar para excluí-lo. 

- 7 - Conclusão -
Em um semestre de projeto em laboratório, tivemos a oportunidade de experimentar uma nova ferramenta de desenvolvimento de jogos para a plataforma Android, buscando varias formas de desenvolver, tanto como IDEs e Engines diferente, descobrindo uma ampla opção de se criar. No percorrer do projetos, mudamos estratégias, buscamos no informar mais sobre a ferramenta, precisou-se aprender <span style="background-color: #ffffff; color: #000000; display: block; text-align: left; text-decoration: none;">conceitos, para que se pudesse finalizar o projeto. Aprendemos a utilizar uma um novo hardware (PcAndroid), como é <span style="background-color: #ffffff; color: #000000; display: block; text-align: left; text-decoration: none;">seu funcionamento, como usa-lo. Como qualquer hardware seu limites e suas diversas formas e suas possibilidades <span style="background-color: #ffffff; color: #000000; display: block; text-align: left; text-decoration: none;">para projetos futuros. Sua capacidade de processamento é muito satisfatório para seu tamanho, o PcAndroid acabou <span style="background-color: #ffffff; color: #000000; display: block; text-align: left; text-decoration: none;">superou muito as expectativas, trazendo uma alta performance. O Unity apreendemos que podemos desenvolver grandes jogos como pequenos jogos, tanto para PC, videogames, <span style="background-color: #ffffff; color: #000000; display: block; text-align: left; text-decoration: none;">celulares, entre outros. Podemos criar um jogo sem muita demora, basta uma boa pesquisa. Sua programação por <span style="background-color: #ffffff; color: #000000; display: block; text-align: left; text-decoration: none;">scripts e sua exportação para varias plataformas acaba facilitando. pois programa-se uma vez e pode-se exportar para <span style="background-color: #ffffff; color: #000000; display: block; text-align: left; text-decoration: none;">todas as plataformas. <span style="background-color: #ffffff; color: #000000; display: block; font-family: Calibri,sans-serif; font-size: 14.6667px; text-align: left; text-decoration: none;">Por fim, todos esses novos conceitos poderão ser utilizados em uma monografia para aprofundarmos ainda mais <span style="background-color: #ffffff; color: #000000; display: block; font-family: Calibri,sans-serif; font-size: 14.6667px; text-align: left; text-decoration: none;">nesses assuntos que ainda tem tanto para ser explorado e também concluir nossa graduação com uma boa bagagem <span style="background-color: #ffffff; color: #000000; display: block; font-family: Calibri,sans-serif; font-size: 14.6667px; text-align: left; text-decoration: none;">de conhecimento. <span style="background-color: #ffffff; color: #000000; display: block; text-align: left; text-decoration: none;">

8 - Referências
[]

[]

[] <span style="background-color: #ffffff; color: #000000; display: block; text-align: left; text-decoration: none;"> []

[]

Download do .APK e do projeto:
[]

<span style="background-color: #ffffff; color: #000000; display: block; text-align: left; text-decoration: none;">

<span style="background-color: #ffffff; color: #000000; display: block; text-align: left; text-decoration: none;">