450 likes | 541 Views
Game engines. Usando tecnologia como commodity. O que é um commodity?Linha de raciocínio. Produtos de base É utilizado para construção de produtos mais complexos (ex: couro curtido vira um sapato). Mas e os softwares?.
E N D
Game engines Usando tecnologia como commodity
O que é um commodity?Linha de raciocínio • Produtos de base • É utilizado para construção de produtos mais complexos (ex: couro curtido vira um sapato)
Mas e os softwares? Em games precisamos desenvolver muito código até que alguma coisa apareça na tela. • Programas desse tipo são da área da engenharia da computação • Precisamos escrever em linguagens de baixo nível para obter performance • Bons profissionais que trabalham com essas linguagens são muito caros e raros • O resto da equipe criativa faz o que enquanto essa base é desenvolvida?
ENGINES! GRANDE IDÉIA! • Engines são softwares para fazer outros softwares • Abstraem toda a parte de baixo nível • Já dão soluções prontas para funções comuns em games (ex: mover o personagem, audio, colisão 3d, etc) • Tem ferramentas para que os artistas trabalhem diretamente no jogo sem precisar programar
Baixo nível? Sim! Baixo nível é quando um programa tem que fazer requisições mais próximas a linguagem de máquina. (“código de máquina” = 000010001001010101010101101010) Ou seja, quanto mais a linguagem de programação abstrai a linguagem binária mais “alto nível” ela é.
Isso significa que… • O código da lógica do jogo é desenvolvido mais rápido • Você não tem que envolver no projeto engenheiros altamente especializados e caros • Artistas podem trabalhar diretamente no produto final (maior fidelidade com o conceito original)
QUANTO VOCÊ PAGARIA POR UMA MARAVILHA DESSAS??? CALMA… NÃO RESPONDA AINDA!
PORQUE VOCÊ AINDA LEVA… • Compra de tecnologia de países que desenvolvem software de ponta sem pagar impostos de importação • Comunidades ativas de desenvolvedores de todo mundo (para quem fala inglês) • Ampla documentação de como desenvolver um projeto com esse software
Contras… • As engines sempre se especializam em um tipo de game, algumas fecham bastante as possibilidades de desenvolver um determinado gênero • Apostar na “engine errada” (ex: uma que é descontinuada, que não atualiza a tecnologia, etc) pode resultar em trabalho perdido • SEMPRE EXISTE UMA CURVA DE APRENDIZADO
Como decidir então pela melhor engine? • Sabendo o tipo de jogo que você quer desenvolver e qual o processo • Fazendo escolhas técnicas NÃO EXISTE A MELHOR ENGINE. A MELHOR ENGINE É AQUELA NA QUAL VOCÊ VAI DESENVOLVER SEU JOGO MAIS RÁPIDO, COM MAIS QUALIDADE E COM MENOR CUSTO POSSÍVEL
OK, agora algumas questões técnicas(em um slide) É preciso entender algumas questões técnicas para escolher uma engine: • PLACAS DE VÍDEO (GPU) E ACELERAÇÃO GRÁFICA • DIRECTX, OPEN GL E RENDERIZAÇÃO POR SOFTWARE • C++ • .NET (C#) E JAVA (MÁQUINAS VIRTUAIS) • LINGUAGENS INTERPRETADAS OU SCRIPTS (VB SCRIPT, JAVA SCRIPT, PERL, ETC) • SOFTWARES BASEADOS EM BEHAVIORS
Tipos de engines • Game engines 2d • Game engines 3d • Softwares que podem ser usados para desenvolver games
Como estão divididas • High end • Profissionais • Indies
Torque Game Builder • Mac / PC / Linux / Wii / Xbox 360 / iPhone / Web • Level editor • Genre kits • US$ 250
Unity 3D • Windows / Mac / iPhone / Wii • Suporte a C# • Suporte a behaviors
Softwares • Vamos nos focar em 2: Flash e Director • Existem muitos outros
Flash • Action script 3.0 – orientação a objetos acelera o desenvolvimento • Aceleração por hardware a partir do Flash player 10 • Muitos bons artistas já conhecem a ferramenta • É o plugin mais difundido da internet (99%!!!) • Comunidade de desenvolvedores é imensa e ativa
Contras • O mercado considera jogos em Flash “baratos” (porque vou pagar por algo que posso ter de graça na internet?) • Seu código NUNCA estará seguro
Director • Suporte a 3d • Acelerado por hardware • Amplo acesso ao sistema operacional • Linguagem fácil de aprender • Amplo suporte a behaviors
Director • Pouco suporte ao software pela Adobe • Baixa penetração do plugin web (20%) • Muitos concorrentes de peso (ex: Unity)
Mas e se a engine que eu escolhi não tem uma função que é muito importante para meu jogo? Nesse caso você pode optar por um middleware!
Middle o que? • Os middlewares são responsáveis por apenas uma função do game, eles podem se integrar a qualquer engine. Exemplos: • Física • Audio • A.I. • … etc
Middleware de física: Havok • Usado em vários games • Suporte a ragdoll, rigid body, fluids, etc • Disponível no director
Middleware de I.A.: A.I. Implant • Suporte a multidões • Suporte a humores • Editor gráfico de I.A.
Mas e as outras plataformas? • Existem engines de games para muitas outras plataformas (ex: Iphone, Symbian, etc) • Todas ainda estão em estado embrionário • Plataformas para videogames (consoles) são uma história a parte…
Engines para videogames • Todos os consoles de hoje possuem engines profissionais e empresas que fazem apenas engines • Obrigatoriamente, para adquirir um desses softwares, a empresa deve possuir os seguintes pré requisitos: • Ser um desenvolvedor oficial • Ter um contrato de publicação do game com uma distribuidora (publisher)
Algumas das razões dos consoles dessa geração serem tão diferentes • Quanto custa desenvolver um jogo para Wii e quanto custa desenvolver um jogo para PSIII? • O quanto de complexidade gráfica as pessoas precisam para se divertir com um game? • As pessoas “comuns” também poderiam fazer games para o nosso console se a linguagem fosse fácil! (XNA)
No futuro? • Jogos online serão o padrão? • Qualquer um poderá desenvolver games? • Os games serão tão complexos de desenvolver como os filmes hoje? • Games serão a próxima “grande mídia”?
Já temos um começo! Vamos conversar mais sobre desenvolver games!