31
Engenharia de Jogos Alunos: Alessander Gabriel da Silva Daniel Almeida de Oliveira Guilherme Fernando Ferreira Ricardo Siqueira de Oliveira Leite Wendel Luis Bernardes Ferreira

Engenharia de Software para Jogos

Embed Size (px)

DESCRIPTION

Apresentação apresentada na disciplina de Engenharia de Software na PUC Minas Poços de Caldas

Citation preview

Page 1: Engenharia de  Software para Jogos

Engenharia de Jogos

Alunos:Alessander Gabriel da SilvaDaniel Almeida de OliveiraGuilherme Fernando FerreiraRicardo Siqueira de Oliveira Leite Wendel Luis Bernardes Ferreira

Page 2: Engenharia de  Software para Jogos

Sumário

● Introdução● Equipe de Desenvolvimento de Jogos ● Processos de Desenvolvimento de Jogos● Metodologias de Desenvolvimento de Jogos● Ferramentas Case

○Engines■Bibliotecas e SDKs

● Conclusão

Page 3: Engenharia de  Software para Jogos

Introdução

● O que um Jogo● Mercado de Jogos● Jogos Consoles ● Jogos Mobile

○Android Market foram feitos + de 4,7 bilhões downloads

○Mercado deve passar de 11 bilhões de dólares○Angry Birds + de 40 milhões de downloads 

● Jogos Web○HTML 5 + CSS3 ○Web Apps

Page 4: Engenharia de  Software para Jogos

Games: 36.388

Page 5: Engenharia de  Software para Jogos

Distribuição na AppStore (iOS)

Games: 59.602 (14%)

Page 6: Engenharia de  Software para Jogos

Porque da Engenharia de Jogos

Page 7: Engenharia de  Software para Jogos

Equipe de Desenvolvimento de Jogos

Page 8: Engenharia de  Software para Jogos

  

Processo de Desenvolvimento 

de Jogos

Page 9: Engenharia de  Software para Jogos

PDJ

     Segundo Almeida [2006], segue uma seqüência lógica de etapas, partindo da concepção, realizando um planejamento detalhado, passando à produção e chegando à finalização. Neste processo, existem iterações, que executadas consecutivamente baseiam-se em retornos, levando a uma evolução do software (construção incremental).

Page 10: Engenharia de  Software para Jogos

PDJ

    Para Sikora [2002] e Cook [2001] jogos eletrônicos não têm requisitos, mas regras. Assim, as regras de um jogo determinam o comportamento e a interação entre os agentes que habitam o seu ambiente.

Page 11: Engenharia de  Software para Jogos

PDJ

      Segundo Petrilo, [2008], o Documento de Projeto (Design Document) é a principal, muitas vezes a única, documentação de um jogo. Seu objetivo é descrever e detalhar a mecânica do jogo, isto é, o que o jogador é capaz de fazer dentro do ambiente do jogo, como ele e capaz de fazê-lo e como isso pode levar a e uma experiência satisfatória.

Page 12: Engenharia de  Software para Jogos

PDJ

Fases do Ciclo de Vida e Artefatos gerados

Page 13: Engenharia de  Software para Jogos

Metodologias de Desenvolvimento 

de Jogos

Page 14: Engenharia de  Software para Jogos

Game Waterfall Process

Fases do Modelo Cascata Tradicional e Adaptado para Jogos

Page 15: Engenharia de  Software para Jogos

Extreme Game Development

Práticas do Extreme Programming

Page 16: Engenharia de  Software para Jogos

Game Unified Process

         Criado por Kevin Flood, um gerente de projetos da área de jogos, o Game Unified Process ou simplesmente GUP, foi concebido com a proposta de unir características presentes em duas outras metodologias de desenvolvimento: oExtreme Programming e o RUP.

Page 17: Engenharia de  Software para Jogos

Scrum

Visão Geral do Scrum

Page 18: Engenharia de  Software para Jogos

Ferramena CASE

    CASE – conjunto de técnicas e ferramentas informáticas que auxiliam o engenheiro de software no desenvolvimento de aplicações

Page 19: Engenharia de  Software para Jogos

Arquitetura das ferramentas CASE

         Deve seguir-se uma estratégia best-of-breed, isto é, selecionar melhor ferramenta para cada funcionalidade. A arquitetura típica da generalidade das ferramentas CASE é constituída por um conjunto de aplicações/componentes, suportados por um repositório integrado. Mecanismos de integração entre ferramentas. 

Page 20: Engenharia de  Software para Jogos

Tipos de ferramentas

  Modelação de processos de negócio  Modelação de análise e desenho do sistema  Programação de aplicações 

Page 21: Engenharia de  Software para Jogos

Uniformização do processo de desenvolvimento e das atividades realizadas

  Reutilização         Automatização de atividades        Diminuição do tempo de desenvolvimento        Integração de artefatos        Demonstração da consistência        Qualidade superior do produto final.        Geradores de código, etc.

Page 22: Engenharia de  Software para Jogos

Evolução

  Ferramentas de geração automática de código, de gestão de projetos, de elaboração de estimativas, de suporte à realização de testes, etc.

Ferramentas de modelação visual, especialmente vocacionadas para as abordagens orientadas por objetos e o desenvolvimento de componentes

Page 23: Engenharia de  Software para Jogos

Taxonomia em Ferramentas CASE

A Taxonomia de ferramentas CASE diz respeito à sua categorização Ferramenta de desenvolvimento de sistemas comerciais Ferramenta de documentação Ferramentas de prototipação   

Page 24: Engenharia de  Software para Jogos

 Engines

● É uma Ferramenta para o desenvolvimento do Game● Possui um conjunto de Bibliotecas, onde cada biblioteca

possui uma funcionalidade específica de cada característica do Game. (ex: Animações Físicas).

● Na Engenharia de Softwares para Games a Engine é um ponto muito importante, pois dependendo da Engine utilizada pode definir um tempo estimado para o Término do Projeto.

● A Engine sendo Completa facilita e agiliza o desenvolvimento.

Page 25: Engenharia de  Software para Jogos

Engines

● Engines Completas possui um Conjunto de Engines menores ou específicas.

● A Primeira Engine de Terceiros foi a Freescape Engine. (Tiro em Primeira Pessoa).

● Empresas que possuem Engines próprias :VALVE coporation, Blizzard Enterteinment

Page 26: Engenharia de  Software para Jogos

Bibliotecas e SDKs

● OpenGL● Glide API● Fahrenheit graphics API● Microsoft XNA ● DirectX(Direct3D)● QuickDraw 3D● Fahrenheit graphics API

●NVIDIA PhysX●Havok●Bullet ●Farseer Physics Engine  

Page 27: Engenharia de  Software para Jogos

OpenGL

Page 28: Engenharia de  Software para Jogos

OpenGL Jogos:■Alien Arena 2008■America's Army (Mac OS X and

Linux versions)■Série Doom■Série Call of Duty■Counter-Strike■CUBE■Enemy Territory: Quake Wars■ Far Cry – Padrão D3D■ Frets on Fire■ FlightGear■Half-Life■OpenArena■Quake■Savage■Second Life

■StarCraft II ( MAC )■Unreal■Urban Terror■Warcraft 3■Wolfenstain■World of Warcraft■Worms \o/

Software:■Adobe After Effects■Adobe Photoshop CS3 +■ 3D Studio Max■Autodesk MAya■Blender■Celestia■Google Earth■Scilab■Stellarium

Page 29: Engenharia de  Software para Jogos

DirectX ( Direct3d )

Page 30: Engenharia de  Software para Jogos

ConclusãoDiferenças na Eng. Jogos e Eng. Software Comercial● Equipes multidisciplinares ●  Inclusões de boas práticas do XP, Scrum, Waterfall para

Artistas. ● Requisitos --> Regras●  MODs

Boas práticas no desenvolvimento de jogos: ● Programação em par● Comunicação entre a equipe● Integração Continua● Reunião em Pé

Page 31: Engenharia de  Software para Jogos

Bibliografia● Análise de Metodologias de Desenvolvimento de Software aplicadas ao Desenvolvimento de Jogos Eletrônicos -  Raphael Lima Belém de Barros 

● Práticas Ageis no Processo de Desenvolvimento de Jogos Eletrônicos - Fábio dos Santos Petrillo

● Aruitetura de Motores de Jogos: Carlos André C. Pessoa,Eduardo Sampaio Rocha e Geber Ramalho

● Engenharia de Software – Roger Pressman, Editora Makron Books, 1995;● Computação Gráfica - Introdução ao OpenGL - Tony Alexander Hild● Indrodução ao OpenGL - http://www.di.ubi.pt/~agomes/cg/praticas/01-opengl-lab.pdf● http://www.opengl.org/about/overview/ a● http://en.wikipedia.org/wiki/OpenGL● SIKORA, D. Incremental development. GameDev.net, junho 2002. Disponível em:

<http://www.gamedev.net/reference/articles/article1843.asp>.● ALMEIDA, Marcos Silvano Orita.MGUP: RUP APLICADO A JOGOS MÓVEIS. Diponivel em: http://www.dominiopublico.gov.br/download/texto/cp000585.pdf Acesso em 30/05/2011.