Como começar a desenvolver games e onde trabalhar?

Documentos relacionados
Desenvolvimento de jogos digitais

1.5 PROGRAMAÇÃO DE JOGOS EM AMBIENTE DE REA LIDADE AUMENTADA AMBIENTES INTEGRADOS DE DESENVOLVIMENTO DE JOGOS 19

Curso online de Fundamentos em Android. Plano de Estudo

Professor: Laboratório de Programação com Games. Anselmo Montenegro Conteúdo: - Introdução. Instituto de Computação - UFF

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

VISEDU: JOGO DE REALIDADADE AUMENTADA DE LETRAS COM CONTEÚDO DINÂMICO

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

Arquitetura de Jogos Gustavo Goedert. p

Introdução ao Desenvolvimento para Dispositivos Móveis

Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação

COMO DESENVOLVER E LANÇAR JOGOS DIGITAIS 2D. Projecto FEUP 2013/2014 Grupo 2

Primeiros Passos para o Desenvolvimento de Aplicações Móveis na Plataforma Android. Odette Mestrinho Christian Reis 1

ÍCARO GOULART FARIA MOTTA FRANÇA

PEF 5743 Computação Gráfica Aplicada à Engenharia de Estruturas

Desenvolvendo aplicações com Unity3D. Renan Vinicius Aranha

DESENVOLVIMENTO DE UM APLICATIVO MÓVEL (JOGO) PARA AUXÍLIO NO ENSINO DE MATEMÁTICA. Beatriz Polita Franchin 1, Elvio Gilberto da Silva 2

O QUE SÃO OS BOOTCAMPS DE FÉRIAS DA HAPPY CODE? AQUI IRÁ ENCONTRAR APRENDER BRINCAR CRIAR. 1. Quais as Datas 2. Cursos Disponíveis 3.

Curso online de Aplicações. Híbridas. Plano de Estudo

MIEIC Luís Borges up Margarida Silva up Nuno Martins up Tiago Castro up Tiago Fragoso up

Aula 1.7 Introdução a APOO e UML

Apps na prática 1 Aviso Legal: Este material foi produzido e desenvolvido pela Fábrica de Aplicativos S.A para o curso presencial e online.

Noções de sistemas de computação

Introdução à Programação para Dispositivos Móveis

Computação e Desenvolvimento de Jogos Digitais

HAPPY CODE ALTO DOS MOINHOS

CURSOS HAPPY CODE Para Alunos Pioneiros

Sistema colaborativo para monitoramento de focos de Aedes aegypti

Introdução à Engenharia ENG1000

2.1 NesC Seguem alguns dos principais desafios impostos à linguagem NesC:

Definição IHC. Disciplina ou campo de estudo interessada no design, implementação e avaliação de sistemas computacionais interativos para uso humano.

Descrição Arquitetural

Computação Gráfica e Áreas Correlatas

WORKSHOP FUNDAMENTOS DO UNITY 3D. WorkShop Fundamentos de UNITY 3D João Pires

Curso online de. Formação em Front-End. Plano de Estudo

AULA 1 INTRODUÇÃO AO JAVA

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

JOGO - TEDDY S RUN SILVA, L.C.S.; VERONA, E.D. ; RANDO, D. R.; MODESTO, L. R.


Algoritmos e Programação

ESTÁGIO CURRICULAR I e II

Curso Online de E-commerce. Plano de Estudo

FRAMEWORK PARA GERENCIAMENTO E DISPONIBILIZAÇÃO DE INFORMAÇÕES MULTIMÍDIA GEOLOCALIZADAS NA PLATAFORMA ANDROID

PROGRAMA DE RESIDÊNCIA HP/C.E.S.A.R. Desenvolvimento de Aplicações para Windows 8

DESENVOLVIMENTO DE JOGOS NA PLATAFORMA UNITY

Reconstrutor de modelos 3D utilizando técnica de nível de detalhamento no ios

Sistemas de Informação (SI) Infraestrutra de Tecnologia da Informação (TI): Software

TENDÊNCIAS NO DESENVOLVIMENTO DE APLICAÇÕES MOBILES

MERCADO DE TRABALHO DE TI E O IMPACTO DO ANGULAR 7

Projeto de Sistemas para Internet

Linguagens de Programação

Implementação de uma biblioteca gráfica multiplataforma utilizando OpenGL e GLFW.

Agenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software

IrrRPG Builder Uma Ferramenta Livre Para Desenvolvimento de Jogos Eletrônicos de RPG

HAPPY CODE PORTUGAL 1

UNITY 3D CONHECENDO, ADQUIRINDO, INSTALANDO E CONFIGURANDO

A autoria - I. A autoria - I. Ferramentas para desenvolvimento de multimídia. A autoria - I Wilson de Pádua Paula Filho.

GRADUAÇÃO EM ENGENHARIA DE COMPUTAÇÃO - EAD

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Google smartphones tablets

Algoritmos e Programação

MICROSCÓPIO VIRTUAL UTILIZANDO REALIDADE AUMENTADA

Ferramenta para Desenvolvimentode Sistemas EmbarcadosUtilizando Linguagem de Alto Nível p.1/25

Desde o surgimento dos primeiros jogos eletrônicos em meados dos anos 50, uma infinidade de aparatos eletrônicos foram desenvolvidos, principalmente

Módulo. de captura, filtragem e redirecionamento de mensagens DirectX. Giovani Chaves Orientador: Mauro Marcelo Mattos

Visualizador de animações 3D com suporte ao formato arquivos FBX em Objective-C++

Tópicos Especiais em Engenharia de Software (Jogos II)

Linguagens e Técnicas de Programação III Aula 01 Introdução ao Android

Faculdade de Tecnologia "Dep. Júlio Julinho Marcondes de Moura" RELATÓRIO FINAL DE INICIAÇÃO CIENTÍFICA

3 Aplicação Desenvolvida

Code em Up: Programando para Games

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio de Janeiro

Desenvolvimento de um jogo interativo para plataforma web integrado à rede social Facebook

ANIMAÇÃO E PROGRAMAÇÃO EM JOGOS ELETRÔNICOS. Salustiano Rodrigues de Oliveira

ISCED Mobile Direcção Académica, Junho/2017

Ângelo Lovatto Éderson Ferreira Taiane Ramos

Oportunidades de trabalho em TI&Telecom Instituto Eldorado - Campinas

DESENVOLVIMENTO DE UMA APLICAÇÃO IOS PARA MONITORAMENTO DE SUBESTAÇÕES DE ENERGIA ELÉTRICA 1. Daniel Lucas Huber 2, Paulo Sausen 3.

Informática Parte 15 Prof. Márcio Hunecke

Quem somos? escola de tecnologia e inovação referência global habilidades do século 21

Biblioteca de componentes de interface para iphone OS

KDE para Futuros Gearheads V1.1

Requisitos do sistema para o Qlik Sense. Qlik Sense 3.0 Copyright QlikTech International AB. Todos os direitos reservados.

Programa Analítico de Disciplina INF311 Programação para dispositivos móveis

CHAMADA PÚBLICA 06/ EDITAL DE SELEÇÃO

PROFESSORES ORIENTADORES 2º SEMESTRE 2015 LINHAS E TEMAS PARA PESQUISA

Customização e Extensibilidade de Aplicações para o público com TEA

MC-102 Aula 01. Instituto de Computação Unicamp


MJ3I- PA - AMBIENTE VIRTUAL 3D PARA VISUALIZAÇÃO DE BRAÇOS ARTICULADOS NO IOS

DESENVOLVIMENTO DO JOGO DE DAMAS UTILIZANDO A BIBLIOTECA ALLEGRO

DESENVOLVIMENTO DE UM APLICATIVO EM REALIDADE VIRTUAL PARA MODELOS ÓSSEOS ATRAVÉS DO UNITY

Graduação: Engenharia. Quadro de disciplinas e carga horária

Java Básico. Aula 1 por Thalles Cezar

Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade,

Apresentação da Disciplina

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Plataforma de desenvolvimento JAVA para terminal POS

Transcrição:

VI Semana Acadêmica de ADS Como começar a desenvolver games e onde trabalhar? Prof. Jean Felipe P. Cheiran Agosto de 2016

Roteiro O primórdio dos jogos digitais Desenvolvendo jogos Oportunidades no mercado Contatos 2

Professor da UNIPAMPA Biografia Mestre em Computação pela UFRGS Atua nas linhas de pesquisa de Engenharia de Software, Interação Humano-Computador e Desenvolvimento de Jogos. Joga durante quase todo o tempo livre desde que ganhou seu Odyssey 2 e uma TV preto e branco. 3

Jogos 4

O que são jogos? 5

Você joga? Quanto? 6

Qual é o perfil do gamer de hoje? 7

Qual é o perfil do gamer de hoje? Média de idade: 35 anos Média de anos jogando: 13 anos Gênero 41 59 Masculino Feminino 8

Por que as pessoas jogam? 9

Como começou o hardware dos jogos digitais? 10

Tennis for Two (Higinbotham, 1958) 11

Spacewar (Russell, 1961) 12

Pong (1972) 13

Como começar a desenvolver um jogo? 14

Como começar a desenvolver um jogo? Escolha uma linguagem de programação. Encontre ferramentas e editores de jogos que possam ajudar no trabalho. Tente fazer algo simples (muito simples). Falhe miseravelmente e tente de novo. O começo é complicado, mas o importante é persistir. 15

16 16

LINGUAGEM C Principal linguagem de jogos na década de 90. Amplamente conhecida. Alto desempenho. Muitas bibliotecas disponíveis. Muitas questões de baixo nível para lidar. Muito complicada para coisas simples (char*). Sem orientação a objetos. 17

LINGUAGEM C++ Substituiu C no topo do desenvolvimento de jogos. Características de alto nível (incluindo OO). Alto desempenho. Muitas bibliotecas disponíveis. Ainda com muitas questões de baixo nível. Ainda muito complicada para coisas simples. Muito tempo para compilação e montagem. 18

LINGUAGEM JAVA Presente em várias plataformas (inclusive Android). Simples, limpa e orientada a objetos. Algumas bibliotecas disponíveis (inclusive nativas). Falta de tipos definidos pelo usuário. Desempenho pode ser um problema. Não é suportada pelos grandes consoles. Engenharia reversa facilitada. 19

LINGUAGEM C# Simples, limpa e orientada a objetos. Fortes raízes em C++ e Java. Disponível em várias plataformas Microsoft. Proprietária. Desempenho poder ser um problema (atenuado pela possibilidade de interagir em baixo nível). Engenharia reversa facilitada. 20

LINGUAGEM OBJECTIVE C Reflexiva e orientada a objetos. Influenciada por C e SmallTalk. Principal linguagem para sistemas Apple. APIs sólidas para construção de sistemas interativos (Cocoa e Cocoa Touch). Suporte a Automatic Reference Counting. Não é suportada pelo grandes consoles. 21

LINGUAGENS DE SCRIPT (E.G., JAVASCRIPT) Mais simples, flexíveis e heterogêneas. Alto nível e gerenciamento automático de recursos. Permite desenvolvimento e montagem rápidos. Códigos viram recursos editáveis. Desempenho é um problema. Geralmente têm poucas bibliotecas disponíveis. Difícil captura de erros. 22

Bibliotecas, engines, plataformas jmonkey Engine Java Allegro C (nativo), C++ (nativo), Lua e Python Unity scripts C#, JavaScript e Boo Construct 2 JavaScript Unreal Engine C++ OpenGL e OpenAL C DirectX C, C++ Panda3D Python, C++ Game Maker Game Maker Language 23

Engine É uma camada de software que serve de base para o jogo. Fornece funções para facilitar a criação. Permite carregar arquivos, renderizar cenários, tratar eventos, simular física, etc. 24

Engine O que pode me ajudar a escolher a engine mais adequada? 1. Editores de áudio/gráficos disponíveis 2. Otimização para o dispositivo alvo 3. Portabilidade para plataformas 4. Usabilidade e ergonomia de uso 5. Documentação ampla e detalhada 6. Comunidade colaborativa 7. Atualizações recentes 8. Quanto custa? 25

Design com ciclos protótipo é bom o suficiente Formule/escolha um problema Teste os protótipos Faça um brainstorming para encontrar soluções possíveis protótipo é insuficiente Construa protótipos para atenuar riscos Escolha uma solução Liste os riscos da solução 26

JOGO COMO UMA COLEÇÃO DE PROBLEMAS Formule um problema: Novo jogo de corrida. 27

JOGO COMO UMA COLEÇÃO DE PROBLEMAS Faça um brainstorming com potenciais jogadores e outros interessados e colete soluções: 1. Corrida com dinossauros. 2. Corrida de foguetes no espaço. 3. Corrida de carrinhos de lomba. 4. Corrida subaquática (com torpedos!). 5. Corrida de pessoas (de cabeça para baixo!). NENHUMA IDEIA É DESCARTADA! TODAS SÃO BEM-VINDAS! 28

JOGO COMO UMA COLEÇÃO DE PROBLEMAS A equipe escolhe uma solução possível: Corrida subaquática (com torpedos!). 29

JOGO COMO UMA COLEÇÃO DE PROBLEMAS A equipe elenca os potenciais riscos: Incerto sobre aparência das pistas de corrida. Talvez não seja inovador o bastante. Temos tecnologia para bons efeitos subaquáticos? 30

JOGO COMO UMA COLEÇÃO DE PROBLEMAS A equipe elabora protótipos e realiza testes: [artistas esboçam conceitos das pistas] [designers inventando e esboçando mecânicas e efeitos de saltos para fora d água e corrida em campos minados] [programadores fazendo pequenos programas de teste com efeitos de água] 31

EXEMPLOS DE ESQUEMAS, MODELOS E PROTÓTIPOS 32

33

34

35

JOGO COMO UMA COLEÇÃO DE PROBLEMAS A equipe avalia os resultados, toma decisões e escolhe novos problemas para abordar: Corridas em túneis e profundezas abissais parecem legais. É necessário que sejam submarinos de corrida com manobras responsivas e que possam voar. Os efeitos sobre a superfície da água parecem bons, mas efeitos subaquáticos são muito custosos em CPU. Novo problema: Jogo de corrida com submarinos que possam voar. 36

Anatomia do código de um jogo Inicialização do jogo Laço principal do jogo Fechamento do jogo Inicialização de front-end Laço de front-end Tratamento de entradas e eventos Renderizar e atualizar a tela Fechamento de front-end Inicialização de nível Laço de nível Tratamento de entradas e eventos Executar IA e simulações físicas Atualizar entidades e estado do jogo Enviar e receber mensagens de rede Renderizar e atualizar a tela Fechamento de nível 37

Mercado 38

Onde trabalhar? Estados Unidos Irlanda França China Coreia Taiwan Singapura Austrália 39

Onde trabalhar? 40

Estados Unidos Alemanha Inglaterra Irlanda China Turquia México Rússia Chile Brasil Coreia... Onde trabalhar? 41

Onde trabalhar? 42

Onde trabalhar? Estados Unidos Inglaterra 43

Onde trabalhar? 44

Onde trabalhar? Porto Alegre Aquiris Cupcake Epopeia MonsterBed Rockhead Swordtales 45

São Leopoldo Learn4Fun Mura Novo Hamburgo BrazaGames Caxias do Sul Urizen Santa Maria Decadium Onde trabalhar? 46

47

48

49

50

Posso fazer jogos sozinho? 51

Jogos Indie Desenvolvedores independentes. Pequenas equipes com poucos recursos. Pouco ou nenhum financiamento. 52

53

54

55

56

57

58

59

Onde hospedar minha empresa? Incubadora de Empresas de Base Tecnológica e/ou Social IF Farroupilha PampaTec UNIPAMPA Alegrete Zenit UFRGS Porto Alegre TecnoPuc PUCRS Porto Alegre UlbraTech ULBRA Canoas Feevale Techpark Feevale Campo Bom e NH TecnoSinos UNISINOS São Leopoldo 60

Dispositivos móveis Apple Store Google Play Store Consoles PlayStation Store Wii Shop Xbox Game Store PC Steam Desura GOG Nuuvem Distribuidoras de jogos 61

Contato Prof. Jean Cheiran (jeancheiran@unipampa.edu.br) Av. Tiarajú, 800 sala 230 62