Pedroam14 (discussão | contribs)
Pedroam14 (discussão | contribs)
Sem resumo de edição
Linha 115: Linha 115:
<br>
<br>
[[Arquivo:DiagramadeCasodeUsoGame2D.png]]
[[Arquivo:DiagramadeCasodeUsoGame2D.png]]
<br>
==== Detalhamento dos casos de Uso ====

Edição das 20h59min de 6 de fevereiro de 2014

  • Nome do Projeto:

What


  1. Qual o objetivo deste projeto?
    1. O objetivo do projeto é criar um game 2d de plataforma aos moldes de grandes jogos como Mario e Sonic que mesmo décadas após o seu início ainda se mantém como um grande referencial em todo o mercado.
  2. Quais os maiores desafios, na sua opinião, para se realizar este trabalho?
    1. Habilidade em programação para a composição dos códigos dos scripts de animações e de todas as mecânicas que serão utilizadas no game.
    2. Habilidade artística em geral, desde noções básicas de level design a fazer sprites, backgrounds e a trilha sonora do game.
  3. Quais os conhecimentos básicos que devemos ter para se implementar este projeto?
    1. Conhecimentos de programação, preferencialmente de linguagens como Java e C++ que são linguagens orientadas a objetos.
  4. Quais soluções similares existem no mercado (Benchmarking)?
    1. Existem diversos games em 2D de plataforma no mercado, mas como o Unity será a tecnologia de desenvolvimento escolhida, games como Bad Piggies (que usaram da mesma engine para ser desenvolvido) são um melhor referencial para uma solução similar, embora não seja exatamente do mesmo gênero.


Why

  1. Porque é interessante desenvolver este projeto?
    1. O mercado de games apresentou um crescimento exponencial nos últimos anos, e um dos mercados que mais crescem são os de jogos denominados Indie, que tem times de desenvolvimento extremamente pequenos e orçamentos bem limitados. Embora possuam suas limitações os jogos Indie estão recebendo cada vez mais apoio de grandes distribuidoras de jogos como a Valve com o programa Steam Greenlight e a Sony com o Playstation Loves Indies, o que possibilitou o enorme sucesso de games feitos por times com menos de 10 pessoas como Journey, Hotline Miami e Soundshapes.
  2. Porque deve usar a tecnologia escolhida?
    1. A engine Unity 3D por mais que tenha seu foco voltado ao desenvolvimento de jogos em 3D, se utilizada da maneira correta, pode também ser usada ao fazer jogos em 2D. Suas maiores vantagens além da facilidade de uso está na possibilidade de fazer o port de um jogo para vários sistemas diferentes (como Windows, Linux, Android e iOS) de forma muito veloz e principalmente no fato de ser uma engine gratuita (com a opção de uma versão Pro sendo esta paga).


Who

  1. Quem pode se beneficiar deste projeto?
    1. Gamers em geral são beneficiados, mas os desenvolvedores e distribuidores também pois se trata de um produto a ser vendido.
  2. Quem poderá operar o sistema?
    1. Qualquer pessoa com as ferramentas básicas de input em um computador, isto é, um mouse e um teclado.
  3. Quem deverá participar do desenvolvimento do sistema?
    1. Para o desenvolvimento do sistema seriam necessários um time de programadores e um de direção artística em geral, pois como se trata de um projeto desenvolvido por poucas pessoas, e não por enormes times de desenvolvimento, os times seriam menos especializados em uma única área e dividiriam as funções de várias áreas como o desenvolvimento de uma história (se necessário), da trilha sonora, do level design e ao mesmo tempo os programadores tendo que fazer isso ser implementado ao game de forma funcional e principalmente divertida.


Where

  1. Onde os dados serão inseridos?
    1. O input de dados em qualquer game geralmente não é visível, e sim causa um efeito direto no que está acontecendo no jogo fazendo por exemplo o personagem se mover. Então os dados seriam inseridos no próprio game quando os botões de comando forem pressionados ou ao utilizar os menus do game.
  2. Onde os dados serão externalizados, publicados?
    1. Os dados seriam externalizados na própria tela, na forma, por exemplo, do personagem se movendo.
  3. Onde esta aplicação poderá ser usada?
    1. O game seria feito disponível nos sistemas Macintosh, Linux e Windows sem muitas dificuldades, sendo também possível criar uma versão para Android e iOS adaptando o game para que funcione utilizando de uma touchscreen.
  4. Onde os dados serão armazenadas?
    1. Os dados seriam armazenados no próprio dispositivo. Caso o game seja disponível na Steam, Playstation Network ou Xbox LIVE seria possível criar os seus "saves" e armazená-los por exemplo na Steam Cloud.
  5. Onde o software deverá ser hospedado?
    1. O software seria hospedado em qualquer distribuidora, visto que games Indie não utilizam de cópias físicas como os DVDs e Blu-Rays. Então ele se encontraria hospedado nos servidores da Valve com o Steam, ou nos da EA com o Origin, ou nos da Sony com a Playstation Network.


When

  1. Em quanto tempo pretende desenvolver o sistema?
    1. Em um período de aproximadamente 3 meses seria possível desenvolver o game com um bom nível de qualidade e até mesmo corrigir os bugs notados em playtesting, pois não se trata de um projeto em larga escala.
  2. Quais serão as fases e em quanto tempo cada uma?
    1. Primeiramente seria necessário preparar os scripts e os sprites necessários para conseguir começar o desenvolvimento do projeto, o que com a ajuda de sprites gratuitos fornecidos por artistas online ou até mesmo pela Unity isso levaria poucos dias.
    2. Depois das fundações estarem prontas, a fase seguinte estaria em desenvolver as mecânicas de jogo como controle de câmera, controle do personagem, inteligência artificial dos inimigos, fundos em paralaxe, animações, efeitos de mapa e o HUD (Head-up Display), o que levaria pouco mais de um mês para ser realizado.
    3. Por último, o resto do tempo seria utilizado no desenvolvimento final, como a confecção dos mapas, implementação da trilha sonora e a transição das cenas criadas no game.


How

  1. Como será dividido o desenvolvimento do sistema?
    1. O desenvolvimento do sistema seria separado entre o time artístico e o time de programadores que embora cada time estivesse encarregado de suas funções a comunicação constante entre ambos seria fundamental para que o game seja desenvolvido de maneira eficaz, pois a visão que o time artístico tem pro jogo deve ser tornada concreta pelo time de programação.
  2. Como será feita a entrada de dados?
    1. A entrada de dados será feita da forma tradicional, com um mouse e um teclado.
  3. Como será feita a saída de dados?
    1. A saída de dados será feita pelo monitor e pelo sistema de som do usuário.
  4. Descreva a 1a. funcionalidade?
    1. O game deverá receber input enviado pelo usuário, seja por um controle ou por um teclado, e processar esses dados dando o feedback visual adequado.
  5. Descreva a 2a. funcionalidade
    1. O game deverá ter várias animações e coisas que ocorrerão paralelamente e serão mostradas juntamente ao input do usuário, ou a ausência dele, como por exemplo:
      1. Animação para personagem em standby quando o usuário não aperta botão algum.
      2. Animação para o personagem correndo quando pressionada as teclas direcionais.
      3. Animação para o personagem pulado ao se apertar o botão correspondente a esse comando (como barra de espaço em um teclado ou o X em um controle Dualshock).
      4. Animação para o personagem morrendo quando for ativado este evento por qualquer fator.
      5. Animação para personagem sofrendo dano caso for ativado este evento por qualquer fator.
      6. Fundo em paralaxe acompanhando todos os movimentos do personagem.
      7. Câmera acompanhando os movimentos do personagem ou de algum evento cinemático que venha a acontecer.
      8. Transição de cenas e áreas do mapa.
      9. Efeitos de som para todas as animações e efeitos que ocorrem nas interações entre o jogador e o mapa.
      10. Trilha sonora que acompanha e varia vários segmentos do jogo, cada música deveria acompanhar o momento do game no qual o jogador se encontra, para ajudar a criar um ambiente mais imersivo para o jogador.


How much

  1. Quanto deverá custar o sistema?
    1. Para ser feito com alto nível seriam necessários alguns milhares de reais, utilizados principalmente na compra de licenças.
  2. Quantas pessoas deverão ser usadas?
    1. Com 2 times de aproximadamente 4 pessoas e formando parcerias com outros artistas e programadores caso for necessário seria possível a realização de um game de qualidade.
  3. Qual deverá ser o preço de aquisição do seu software para o usuário final?
    1. Para o usuário final seria cobrado um preço na faixa de 5 a 10 dólares.


Diagrama de Entidade-Relacionamento


Objetos

  • Personagem: um objeto do tipo Container, tendo portanto vários outros objetos "dentro" dele. Possui como atributos seus sprites, itens, stats, equipamento, experiência, meshes de colisão, texturas, sons e nível. As suas ações são compostas por vários scripts que vão agir dependendo do input que o jogador faz, como por exemplo pular, atacar, andar, correr e diversas interações com o mapa.
  • Inimigos: um objeto muito similar ao jogador, também contendo os mesmos atributos que um jogador, porém diferentemente dos atributos do jogador que vão mudando a media que o jogo progride, os atributos dos inimigos são estáticos e pré-determinados. Assim como seus atributos, as ações que um inimigo poderia fazer seriam determinadas pela inteligência artificial contida nele.
  • Mapa: O mapa também é um objeto do tipo container, seus atributos são as texturas, sons, BGM e imagens de fundo. Suas ações são determinar quais tipos de inimigo vão surgir ali, além de itens achados, e as interações possíveis de serem feitas ali (como subir escadas, abrir e fechar portas).
  • Câmera: O mais fundamental de um game é a câmera, pois mesmo que ela em si não seja visível, ela que permite que o jogador veja o que se passa ao longo do jogo. Os atributos que ela possui estão na sua forma, no caso desse jogo, para dar um efeito mais agradável para o jogador, ela não será um ponto recebendo luz de todas as direções, e sim um plano que recebe somente a luz que chega perpendicularmente a ele. As ações da câmera consistem basicamente em acompanhar a posição do jogador, tirando as cutscenes, que nelas a câmera deveria se mover de uma forma pré-programada.

Diagrama de Classes

Arquivo:DiagramadeClassesGame2D.pdf

Diagrama de Casos de Uso

Arquivo:DiagramadeCasodeUsoGame2D.pdf

Detalhamento dos casos de Uso