José Alberto - Alcione.pdf
-
Upload
ronnie-smith -
Category
Documents
-
view
10 -
download
1
Transcript of José Alberto - Alcione.pdf
-
1
UNIVERSIDADE FEDERAL DE VIOSA
CENTRO DE CINCIAS EXATAS E TECNOLGICAS
DEPARTAMENTO DE INFORMTICA
PROJETO FINAL DE CURSO
Jogo 2D de corrida para Android
Jos Alberto Lobo Junior
Graduando em Cincia da Computao
Alcione de Paiva
(Orientador)
Viosa, Novembro de 2013
-
2
RESUMO
Com o aumento do uso de dispositivos mveis, aumenta tambm a necessidade
de jogos para essas plataformas, pensando nesta demanda gerada e no crescente
aumento de jogos multiplayer para a plataforma Android, que este jogo ser criado.
O presente projeto consiste no planejamento e desenvolvimento de um jogo de
corrida para Android para mltiplos jogadores utilizando o motor de jogo Unity,
mostrando suas principais funcionalidades e como elas ajudam no processo de
desenvolvimento de jogos. O projeto tem como meta o aprendizado sobre a plataforma
Android e do motor Unity para jogos em 2D.
Palavras-Chave
Jogos, Unity, 2D, Android, Multiplayer
rea de Conhecimento
Cincia da Computao
Linha de Pesquisa
Sistemas de Informao
Abreviaes
2D: Espao bidimensional
3D: Espao tridimensional
Side Scrolling: Jogos em que o personagem anda em apenas duas dimenses sendo elas
direita/esquerda e cima/baixo
Multiplayer: Jogo que permite mais de um jogador
Indie: projeto independentemente
-
3
SUMRIO
Capa
Resumo
1- Introduo............................................................................................4
1.2 Objetivos.......................................................................................5
2- Base Terica........................................................................................5
3- Metodologia.......................................................................................6
3.5 Requisitos ...................................................................................10
4- Resultados..........................................................................................12
5- Concluses.........................................................................................15
6- Referencias Bibliogrficas.................................................................16
7- Cronograma.......................................................................................17
-
4
1- Introduo
O presente projeto consiste no planejamento e desenvolvimento de um jogo de
corrida em 2D para plataforma utilizando o motor de jogo Unity, mostrando suas
principais funcionalidades e como elas ajudam no processo de desenvolvimento de
jogos.
Para o desenvolvimento do jogo ser utilizado a engine da Unity especfica para
android. A engine da Unity para plataformas mobile mundialmente conhecida e ideal
para pequenos grupos de desenvolvedores. A engine da Unity permite criar uma
combinao de 3D e 2D o que pode ser til na criao do jogo alm de possuir
bibliotecas dedicadas a criao jogos em 2D.
O editor do sistema permite a criao de jogos visualmente, seguindo a linha
dragn drop. Alm disso, o Unity vem com um editor de scripts para C#, JavaScript e
Boo.
O editor do programa totalmente personalizvel. Os desenvolvedores
utilizaram a prpria biblioteca do Unity para criar seu editor, assim, tudo o que os
desenvolvedores podem fazer com o editor, qualquer usurio poderia. O Unity 3D
permite a programao os jogos em trs linguagens diferentes, C#, JavaScript e um
dialeto de Python chamado Boo. Quando compilado, o cdigo de mquina gerado
baseado na plataforma .NET open source Mono. O motor de jogo permite a 10
importao de DLL baseada na plataforma .NET na licena indie, e DLL criadas em
C++ na verso profissional.
Como dito em [1], de 2009 a 2011, quando caiu a fatia da Nokia, as plataformas
Apple (iOS) e Google (Android) cresceram mais de 500%. Com isso, o Android
tornouse o segundo sistema operacional mais popular entre os smartphones
comercializados no mundo (22,7%; 67,2 milhes de aparelhos), perdendo apenas para o
Symbian, da Nokia (37,6%; 111,5 milhes de unidades). O que faz do Android uma
plataforma bem mais interessante.
-
5
1.2 Objetivos
Criar um jogo para a plataforma Android em 2D com a possibilidade de
multiplayer utilizando dos conhecimentos adquiridos durante a formao
para tal fim.
Aprender sobre a plataforma Android.
Aprender sobre o funcionamento da engine Unity para criao de jogos em
2D.
Aprender sobre o mercado de jogos de plataforma para Android.
2- Base Terica
2.1- Conhecimento das disciplinas
Os conhecimentos necessrios para o desenvolvimento deste projeto sero
discutidos nessa sesso. Para um projeto e implementao foram necessrios os
conhecimentos relevantes das seguintes disciplinas:
INF 110 - Programao I
INF 112 - Programao II
INF 452 - Redes de Computadores
INF 491 - Tpicos Especiais I Desenvolvimento para Android
2.2 O ambiente de desenvolvimento Unity3D
Esta seo descreve algumas das caractersticas do motor de jogo gratuito
Unity3D, http://unity3d.com , o qual utilizado neste projeto.
-
6
2.3 Linguagens de desenvolvimento
A linguagem utilizada para o projeto ser JavaScript, pela facilidade apresentada
na declarao de variveis e fcil utilizao.
2.4- Importao de arquivos multimdias
O Unity suporta uma srie de formato de arquivos multimdia, entre eles esto
mp3, jpeg, gif, mov, avi, wav, TTF, entre outros. Tambm possvel importar modelos
3D nos formatos nativos de alguns programas de modelagem, tais como Blender, Maya,
3D Studio Max e Cheetah 3D.
Para realizar a modelagem caso necessria de modelos 3D, para criar um jogo
2D/3D de plataforma ser utilizado o Blender, por ser uma ferramenta completamente
gratuita e j possuir algum conhecimento na ferramenta.
3- Metodologia
O jogo ser desenvolvido utilizando o engine da Unity para a plataforma
android. Permitir mais de um agente, sendo estes outros agentes tambm jogadores
com o mesmo aplicativo o que caracteriza o multiplayer. E para a modelagem e
animao dos personagens e objetos do jogo ser utilizado o Blender.
3.1- Levantamento de dados
Nesta fase foram feitos os levantados de requisitos funcionais e no funcionais.
Levantado tambm as ideias utilizadas em jogos semelhantes que possuem uma grande
parte do mercado.
3.1.1- Jogos Semelhantes
Fun Run
-
7
um jogo que tambm possui a jogabilidade no estilo side scrolling, apesar de no
utilizar a viso 2.5D sendo essa apenas o 2D limitando a viso do jogador em apenas 2
dimenses.
3.2- Levantamento de informaes complementares
Nesta fase ser pesquisado sobre o mercado de jogos e como utilizar da Google
Play Store para a comercializao do jogo assim que ele for terminado.
3.3- Documentao e pesquisa
Nesta fase ser feita a documentao e pesquisa das possveis alteraes no jogo
que possam deixa-lo mais atrativo e mais intuitivo, alm deixa-lo com uma interface
mais amigvel.
3.3- Implementao
Nesta fase ser feita a implementao do jogo.
-
8
3.3.1- Unity
A Unity foi a engine utilizada para a criao do projeto e a linguagem para criar os
scripts foi Java script, utilizando as ferramentas disponibilizadas pelo Unity, foi criado
um ambiente e iluminao. Utilizando as bibliotecas da Unity foi possvel criar uma
conexo servidor/cliente alm de com utilizao das bibliotecas fsicas foi possvel criar
uma movimentao mais fiel a realidade, alm de criar efeitos de exploso e textura
bem elaborados.
3.3.2- Blender
O programa para modelagem e animao utilizado foi o Blender que permite a criao
de modelos 3D e animao deste mesmo modelo, alm de possibilitar a exportao
destes modelos para a Unity.
-
9
3.3.3 Funcionamento da Conexo MasterServer
Para fazer a rede entre o servidor e o cliente foi utilizado o MasterServer da
unity que consiste em uma maquina que gera a conexo entre o servidor e o cliente de
maneira indireta podendo assim fazer do jogo um multiplayer online.
O MasterServer funciona da seguinte maneira: Uma vez que o programa roda
como servidor em um dispositivo, ele registra no MasterServer uma chave para essa
conexo, lembrando que a conexo do servidor e MasterServer estabelecida por uma
porta e ip do MasterServer padro que j esta contida no unity, podendo ser alterada
para caso for necessrio a criao de um MasterServer privado. Quando o outro
programa rodado em paralelo e entra como cliente, ele faz primeiro a conexo com
MasterServer com a chave gravada pelo servidor, fazendo assim uma comunicao
indireta cliente para servidor.
Basicamente o MasterServer funciona como o servidor original, o servidor
funciona como um cliente com privilgios do controle da sala criada no ServerMaster
e o cliente funciona como um cliente simples.
3.3.4 Como Funciona o Servidor
Assim que o aplicativo manda criar a sala o aparelho faz uma tentativa de
conexo com o MasterServer para fazer o registro da chave. Feito o registro da chave
com sucesso o boto de comear jogo fica verde indicando que outras pessoas podem
ver a sala criada. Quando o boto comear ativado o servidor manda para o
MasterServer a informao de criao do personagem que vai ser controlado pelo
servidor e cria o personagem do cliente caso ele esteja na sala. Quando termina o jogo o
servidor envia para o cliente o tempo final de cada personagem e exibe na tela o tempo.
3.3.5 Como Funciona o Cliente
Quando o aplicativo entra em uma sala criada, ele tenta estabelecer uma conexo
do cliente com o MasterServer utilizando a chave criada pelo servidor, se a conexo
acontece sem problemas o cliente vai para mesma sala do servidor. Quando termina o
jogo o cliente recebe tempo final de cada personagem.
-
10
3.5- Requisitos
3.5.1- Requisitos Funcionais
Cdigo Nome Prioridades
RF01 Menu Menu principal
RF02 Sala de espera Busca por jogadores
RF03 Corrida Realizar corrida
RF04 Final Resultados da corrida
3.5.2- Requisitos No Funcionais
O Jogo ser utilizado em um dispositivo com plataforma android com a
possibilidade de mais de um jogador por partida. A interface dever ser amigvel,
animadora e o jogo dever ter comandos fceis.
Cdigo Nome Prioridades
RNF1 Tela intuitiva Tornar a utilizao dos menus
mais fceis
RNF2 Desempenho Resposta inferior
a 3 segundos
RNF3 Jogabilidade Facilidade na qual o jogo pode ser jogado
RNF4 2D/3D Tornar o jogo com a jogabilidade 2D, porem com
grficos 3D
-
11
3.5.3- Caso de Uso
Caso de uso Menu Exibir a tela de menu Executar o jogo
Requisito funcional RF01
Fluxo principal Exibir menu e sair do jogo
Caso de uso Sala de Espera Precondio Escolher entrar na sala de espera a partir do
menu
Requisito funcional RF02
Fluxo principal O jogador espera os adversrios entrar em sua
sala e inicia o jogo ou volta ao menu
Caso de uso Corrida Precondies Existir ao menos um jogador
Requisito Funcional RF03
Fluxo principal O jogador tem que terminar a corrida na
frente de seus adversrios
-
12
Caso de uso Final Precondies O jogador chegar ao final da corrida
Requisito Funcional RF04
Fluxo principal O jogador deve voltar ao menu
4- Resultados
Segue abaixo imagem do software funcionando
Tela inicial do programa
-
13
Tela de criar sala e editar o nome
Servidor: Sala de espera / Cliente: Salas diponveis
-
14
Sala de espera
Tela do jogo
-
15
Tela Final
5- Concluses
Este projeto foi feito com o objetivo de criar um jogo de plataforma Android 2D
com a possibilidade de mais de um jogador simultneo, esse objetivo foi cumprido
como o esperado sofrendo inclusive alguma melhoras no previstas no inicio do projeto.
Tambm foi cumprido o objetivo de aprender sobre a plataforma android e sobre o
mercado de jogos o qual esse jogo seria inserido, ficou mais claro que o mercado para
android est em expanso. Foi adquirido conhecimento sobre a engine Unity que uma
engine muito boa para criao de jogos tanto 3D quanto 2D, foi adquirido tambm um
conhecimento com a ferramenta de modelagem Blender3D que um modelador 3D
gratuito e ferramenta de animao poderosa.
O Blender foi utilizado em conjunto com a Unity sendo o Blender utilizado para
modelar e Unity utilizado para criar a engine do jogo em si. Esta comunicao dos
modelos do Blender e o Unity muito boa, porem alguns erros aconteceram mais foram
sanados prontamente, obtendo com isso um maior conhecimento sobre a comunicao
das ferramentas utilizadas.
-
16
6- REFERNCIAS
[1] Viana, Rodrigo Bahia. "Um estudo da evoluo estratgica em subsidirias:
analisando a estratgia de internacionalizao e gesto da inovao da Nokia
Corporation no Brasil no perodo de 2002 a 2012." Revista Estratgica 11.2 (2013).
[2] http://docs.unity3d.com/ScriptReference/index.html
[3] http://www.blender.com.br
-
17
5- CRONOGRAMA Atividades ABR MAI JUN JUL AGO SET OUT NOV DEZ JAN
Definio do
Tema e
Orientador
X
Levantamento
dos Dados
X X
Levantamento
de Informaes
Complementares
X X
Documentao e
Pesquisa
X X
Implementao X X X X
Testes X