Introdução ao
Desenvolvimento de
Jogos
Atividade Complementar
Engenharia de Software
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.
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.
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.
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.
Plataformas
Licenciamento
Uma 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ãocomercial 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)
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.
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.
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!" );
}
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.
Licenciamento
A 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.
Plataformas
Linguagens
A 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.
C#
// HelloWorld.cs
using UnityEngine;
public class HelloWorld : MonoBehaviour {
void Start() {
Debug.Log(“Hello World!”);
}
}
UnityScript
// HelloWorld.js
#pragma strict
class HelloWorld extends MonoBehaviour {
function Start() {
Debug.Log(“Hello World!”);
}
}
Boo
# HelloWorld.boo
import UnityEngine
class HelloWorld (MonoBehaviour):
def Start():
Debug.Log(‘Hello World!’)
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.
Licenciamento
A 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.
Plataformas
Linguagens
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.
Java
/* HelloWorld.java */
class HelloWorld implements ApplicationListener {
@Override
public void create() {
Gdx.app.log( "Log", "Hello, world!" );
}
...
}
Introdução ao Desenvolvimento de Jogos

Introdução ao Desenvolvimento de Jogos

  • 1.
    Introdução ao Desenvolvimento de Jogos AtividadeComplementar Engenharia de Software
  • 2.
    Espaço Bidimensional É formadopor 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.
  • 3.
    Sprite É um métodode 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.
  • 4.
    Modelagem Tridimensional É oprocesso 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.
  • 6.
    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.
  • 7.
  • 9.
    Licenciamento Uma licença decomputador 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ãocomercial 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)
  • 12.
    Unreal Kismet É umsistema 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.
  • 14.
    UnrealScript É uma poderosalinguagem 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.
  • 15.
    UnrealScript /* HelloWorld.uc */ classHelloWorld 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!" ); }
  • 17.
    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.
  • 18.
    Licenciamento A Unity contacom 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.
  • 20.
  • 21.
    Linguagens A Unity trabalhacom 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.
  • 22.
    C# // HelloWorld.cs using UnityEngine; publicclass HelloWorld : MonoBehaviour { void Start() { Debug.Log(“Hello World!”); } }
  • 23.
    UnityScript // HelloWorld.js #pragma strict classHelloWorld extends MonoBehaviour { function Start() { Debug.Log(“Hello World!”); } }
  • 24.
    Boo # HelloWorld.boo import UnityEngine classHelloWorld (MonoBehaviour): def Start(): Debug.Log(‘Hello World!’)
  • 26.
    Libgdx é umaframework 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.
  • 27.
    Licenciamento A 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.
  • 29.
  • 30.
    Linguagens 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.
  • 31.
    Java /* HelloWorld.java */ classHelloWorld implements ApplicationListener { @Override public void create() { Gdx.app.log( "Log", "Hello, world!" ); } ... }