josé alberto - alcione.pdf

17
1 UNIVERSIDADE FEDERAL DE VIÇOSA CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS DEPARTAMENTO DE INFORMÁTICA PROJETO FINAL DE CURSO Jogo 2D de corrida para Android José Alberto Lobo Junior Graduando em Ciência da Computação Alcione de Paiva (Orientador) Viçosa, Novembro de 2013

Upload: ronnie-smith

Post on 06-Nov-2015

13 views

Category:

Documents


1 download

TRANSCRIPT

  • 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