introdução ao desenvolvimento de jogos
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.TRANSCRIPT
![Page 1: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/1.jpg)
Introdução ao Desenvolvimento de
JogosAtividade ComplementarEngenharia de Software
![Page 2: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/7.jpg)
Plataformas
![Page 8: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/8.jpg)
![Page 9: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/10.jpg)
![Page 11: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/11.jpg)
![Page 12: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/13.jpg)
![Page 14: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/16.jpg)
![Page 17: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/19.jpg)
![Page 20: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/20.jpg)
Plataformas
![Page 21: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/22.jpg)
C#// HelloWorld.cs
using UnityEngine;
public class HelloWorld : MonoBehaviour {
void Start() { Debug.Log(“Hello World!”); }}
![Page 23: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/23.jpg)
UnityScript// HelloWorld.js
#pragma strict
class HelloWorld extends MonoBehaviour {
function Start() { Debug.Log(“Hello World!”); }}
![Page 24: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/24.jpg)
Boo# HelloWorld.boo
import UnityEngine
class HelloWorld (MonoBehaviour):
def Start(): Debug.Log(‘Hello World!’)
![Page 25: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/25.jpg)
![Page 26: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/28.jpg)
![Page 29: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/29.jpg)
Plataformas
![Page 30: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/31.jpg)
Java/* HelloWorld.java */
class HelloWorld implements ApplicationListener { @Overridepublic void create() {
Gdx.app.log( "Log", "Hello, world!" );
}
...
}
![Page 32: Introdução ao Desenvolvimento de Jogos](https://reader034.vdocuments.net/reader034/viewer/2022050816/54966f51ac7959342e8b5107/html5/thumbnails/32.jpg)