32
Introdução ao Desenvolvimento de Jogos Atividade Complementar Engenharia de Software

Introdução ao Desenvolvimento de Jogos

Embed Size (px)

DESCRIPTION

Apresentação para uma atividade complementar da matéria de Engenharia de Software, do 2º semestre do curso de Análise e Desenvolvimento de Sistemas.

Citation preview

Page 1: Introdução ao Desenvolvimento de Jogos

Introdução ao Desenvolvimento de

JogosAtividade ComplementarEngenharia de Software

Page 2: Introdução ao Desenvolvimento de Jogos

Espaço BidimensionalÉ formado por duas dimensões (altura e largura) sendo plano em sua essência. Um bom exemplo de representação pode ser concedido pelo sistema de coordenadas cartesiano.

Através da posição X e Y, uma imagem pode ser posicionada no espaço bidimensional da tela via código.

Page 3: Introdução ao Desenvolvimento de Jogos

SpriteÉ um método de animação rápido de várias imagens agrupadas num arquivo, base das animações em jogos bidimensionais, que quando organizados sequencialmente geram um efeito de flipbook.

Page 4: Introdução ao Desenvolvimento de Jogos

Modelagem TridimensionalÉ o processo de desenvolver uma representação matemática de qualquer superfície tridimensional de um objeto via software especializado.

Um objeto 3D é representado usando uma coleção de pontos no espaço 3D, conectados por linhas e assim formando polígonos, sendo os mais comuns os de 3 e 4 lados.

Por ser uma coleção de data (posição de cada ponto em X, Y, Z, dentre outras informações), os modelos 3D também podem ser criados via programação.

Page 6: Introdução ao Desenvolvimento de Jogos

A Unreal Engine (UE) é uma game engine para jogos 3d, desenvolvida pela Epic Games, primeiramente exposta em 1998 com o game Unreal.

Com o código escrito em C++, a Unreal Engine possui um alto grau de portabilidade e é uma ferramenta usada por muitos desenvolvedores da atualidade.

A UE3 é a versão mais atual; já a UE4 foi anunciada em 2005 e está sendo desenvolvida desde 2003.

A tecnologia da UE4 é uma das mais promissoras nas futuras remessas de games para PC.

Page 7: Introdução ao Desenvolvimento de Jogos

Plataformas

Page 8: Introdução ao Desenvolvimento de Jogos
Page 9: Introdução ao Desenvolvimento de Jogos

LicenciamentoUma licença de computador para uma engine high-end como a Unreal Engine não saía por menos de $220.000,00.

Atualmente, a Epic Games conta com a Unreal Development Kit (UDK), a edição gratuita para uso não-comercial da Unreal Engine 3.

Para o uso comercial da UDK com direito à atualizações gratuitas, deve-se desembolsar, uma vez, $99,00 em uma licença comercial e conceder 25% de royalties quando o licenciado obter um lucro superior à $50.000,00.

(existem outras opções de licença)

Page 10: Introdução ao Desenvolvimento de Jogos
Page 11: Introdução ao Desenvolvimento de Jogos
Page 12: Introdução ao Desenvolvimento de Jogos

Unreal KismetÉ um sistema de codificação visual, possibilitando para artistas e level designers controle sobre como um nível irá funcionar, sem a necessidade de se escrever uma única linha de código.

Permite conectar eventos simples e ações criadas por programadores, para rapidamente transformar tudo de simples comportamentos para completos protótipos de gameplay.

Permite aos programadores extender facilmente e criar suas próprias ações e eventos para o jogo.

Possui suporte à matemática, lógica condicional, tratamento de eventos e execução de ações.

Page 13: Introdução ao Desenvolvimento de Jogos
Page 14: Introdução ao Desenvolvimento de Jogos

UnrealScriptÉ uma poderosa linguagem de programação orientada a objetos com uma sintaxe influenciada pelo C++ e Java.

Suporta as características comumente utilizadas nas linguagens de programação modernas, tais como herança, delegações e interfaces.

UnrealScript possui um conceito de estados embutido. Classes podem definir múltiplos estados, com funções no escopo destes estados.

Também pode-se chamar diretamente funções nativas, que dispõem de uma interface para acessar todo código relacionado aos sistemas da game engine.

Page 15: Introdução ao Desenvolvimento de Jogos

UnrealScript/* HelloWorld.uc */

class HelloWorld extends GameInfo; event InitGame( string Options, out string Error ){

super.InitGame( Options, Error );

// Unreal Engine 1 e 2 Log( "Hello, world!" );

// Unreal Engine 3 `log( "Hello, world!" );}

Page 16: Introdução ao Desenvolvimento de Jogos
Page 17: Introdução ao Desenvolvimento de Jogos

A Unity é uma game engine para jogos 2d e 3d desenvolvida pela Unity Technologies, primeiramente exposta em 2005 na Apple’s Worldwide Developers Conference.

Com o código escrito em C# e C++, a Unity é uma das maiores game engines da atualidade.

A versão atual da Unity é a 4.2.1, lançada em setembro de 2013.

Duas versões estão disponíveis para download, Unity e Unity Pro.

Page 18: Introdução ao Desenvolvimento de Jogos

LicenciamentoA Unity conta com uma versão gratuita, simplesmente chamada de Unity, que pode ser usada livremente para fins comerciais, válida para empresas que ganharem menos de $100.000,00 no último ano fiscal. Esta versão possui menos recursos que a Pro, e qualquer aplicação desenvolvida nela contará com uma marca d’água do logo da Unity.

Atualmente a Unity Pro custa $1.500,00, com as opções adicionais iOS Pro, Android Pro e BlackBerry 10 Pro, custando pelo mesmo preço cada: $1.500,00. Também conta com uma licença para equipes que extende as funcionalidades do editor para uma eficiente colaboração remota e local pelo preço de $500,00.

Page 19: Introdução ao Desenvolvimento de Jogos
Page 20: Introdução ao Desenvolvimento de Jogos

Plataformas

Page 21: Introdução ao Desenvolvimento de Jogos

LinguagensA Unity trabalha com a parte visual integrada na programação, utilizando o MonoDevelop como IDE.

Se mostra bem versátil, sendo possível programar em 3 linguagens diferentes:

C#, UnityScript (ou JavaScript) e Boo.

Page 22: Introdução ao Desenvolvimento de Jogos

C#// HelloWorld.cs

using UnityEngine;

public class HelloWorld : MonoBehaviour {

void Start() { Debug.Log(“Hello World!”); }}

Page 23: Introdução ao Desenvolvimento de Jogos

UnityScript// HelloWorld.js

#pragma strict

class HelloWorld extends MonoBehaviour {

function Start() { Debug.Log(“Hello World!”); }}

Page 24: Introdução ao Desenvolvimento de Jogos

Boo# HelloWorld.boo

import UnityEngine

class HelloWorld (MonoBehaviour):

def Start(): Debug.Log(‘Hello World!’)

Page 25: Introdução ao Desenvolvimento de Jogos
Page 26: Introdução ao Desenvolvimento de Jogos

Libgdx é uma framework para desenvolvimento de jogos 2d e 3d em Java que dispõem de uma API unificada que funciona através de todas as plataformas suportadas.

Ao invés de compilar para Android/iOS/JavaScript após cada mudança no código, você pode executar e debugar seu jogo no desktop.

É escrita em Java com alguns componentes escritos em C e C++ por questões de performance no código.

A Libgdx é atualizada constantemente pelo repositório Git, estas versões são chamadas de Nightly Builds. A Libgdx também possui versões estáveis, sendo a última a 0.9.7.

Page 27: Introdução ao Desenvolvimento de Jogos

LicenciamentoA Libgdx é Open Source, licenciada sobre Apache 2.0, e mantida pela comunidade de desenvolvedores através do GitHub.

Não é necessário nenhum tipo de pagamento para comercializar seu jogo, esta licença é livre para propósitos comerciais, inclusive, não é obrigatório adicionar na seção de créditos a utilização do framework no jogo, tornando este opcional.

Também permite ao desenvolvedor distribuir sem nenhuma preocupação quanto à royalties.

Page 28: Introdução ao Desenvolvimento de Jogos
Page 29: Introdução ao Desenvolvimento de Jogos

Plataformas

Page 30: Introdução ao Desenvolvimento de Jogos

A Libgdx é uma framework baseada em OpenGL (ES) e utiliza o Java como linguagem.

Permite escrever o código uma vez e compilar em múltiplas plataformas sem a necessidade de modificação.

A Libgdx utiliza-se de várias outras bibliotecas para dispor de sua funcionalidade, tais como Lightweight Java Game Library, OpenGL, Box2d, SoundTouch Audio Processing Library, FreeType, dentre outros.

O grande destaque da Libgdx é a preocupação com a ótima performance. A Libgdx evita ao máximo gerar Garbage Collector e é otimizada usando código nativo.

Linguagens

Page 31: Introdução ao Desenvolvimento de Jogos

Java/* HelloWorld.java */

class HelloWorld implements ApplicationListener { @Overridepublic void create() {

Gdx.app.log( "Log", "Hello, world!" );

}

...

}

Page 32: Introdução ao Desenvolvimento de Jogos