• Nenhum resultado encontrado

para desenvolvimento de jogos

No documento Chemistry Quest Alchemist (páginas 38-51)

2.4.1

C

A Linguagem C foi criada e implementada por Dennis Ritchie, como evolução de uma linguagem chamada BCPL. Existem várias implementações de C, mas para garantir compatibilidade entre estas implementações existe o padrão ANSI (American National Standard Institute) para a linguagem C, o padrão foi chamado de C ANSI. Abaixo destaca- se algumas de suas características. O Trecho de Código 2.1 mostra um exemplo de codificação C (PAULA,2016).

• C é uma linguagem de alto nível com uma sintaxe bem estruturada e maleavel o que faz da programação em C ser muito simples;

• Quando os códigos em C são compilados geram programas executáveis;

• C compartilha recursos de alto e de baixo nível, permitindo assim o acesso e programação direta do microprocessador. Utilizando disso rotinas cuja dependência do tempo é crítica, podem ser facilmente implementadas usando instruções em Assembly.

• C é uma linguagem estruturalmente simples e de grande portabilidade.

• O compilador C gera códigos mais enxutos e rápidos do que muitas outras lingua- gens;

• Mesmo sendo estruturalmente simples a linguagem não perde em funcionalidade, pois permite a inclusão de uma enorme gama de rotinas implementadas pelo usuário. Além disso fabricantes de compiladores fornecem uma ampla variedade de rotinas pré-compiladas como bibliotecas.

Código 2.1 Código C.

1 #include <stdio.h> 2 void main (void)

3 {

4 puts ("Bem vindo a linguagem C");

5 }

C++

É uma linguagem de programação de nível médio, foi desenvolvida por Bjarne Stroustrup, em meados de 1983, com novos e poderosos elementos e novas propostas para a programação, que contribuem para a reutilização de código, e também uma facil

2.4 Principais linguagens de programação utilizadas para desenvolvimento de jogos 36

manutenção e adição ao código. C++ possui extensas bibliotecas-padrão que utilizam em grande quantidade as características exclusivas da linguagem em relação à C. Códigos escritos em C/C++ são de fácil leitura, pois a linguagem permite separar seu código em partes e arquivos para que seja melhor estruturado. O C++ induz ao programador a ter bons hábitos na programação, sabendo organizar seu código de maneira legível e tornando-o mais veloz e eficaz. Abaixo destaca-se algumas de suas características. O Trecho de Código2.2mostra um exemplo de codificação C++ (SANTEE,2005).

• Programação Orientada à Objetos: Permite a reutilização de código de forma mais lógica e produtiva;

• A linguagem foi desenvolvida com o intiuto de prover atributos Orientados à Objeto para a linguagem C sem comprometer a eficiência;

• Portabilidade: O código escrito pode ser compilado em praticamente qualquer tipo de computador e sistema operacional sem fazer muitas alterações;

• Menos código: O Código escrito em C++ é bem menor se comparado com muitas linguagens, desde o uso de caracteres especiais e preferidos antes de palavras chave, evitando esforço desnecessario;

• Programação Modular: Um programa C++ pode ser feito de vários arquivos de código que serão compilados separadamente e “linkados” juntos. Economizando tempo quando se faz desnecessário recompilar toda a aplicação quando é realizada uma alteração simples, mas apenas o arquivo que contem o código alterado, permitindo assim a linguagem C++ utilizar e interagir com códigos produzidos em outras linguagens como o Assembly ou C;

• Compatibilidade com C: Qualquer código escrito em C pode ser facilmente incluído em um programa C++ sem fazer grandes mudanças;

• Velocidade: Após a compilação o código C++ é muito eficiente, devido a sua dualidade de linguagem de Alto e Baixo nível e do tamanho reduzido da linguagem.

Código 2.2 Código C++. 1 #include<ostream.h> 2 intmain() 3 { 4 cout<<“Oimundo!\n”; 5 return0; 6 } Java

Java é uma linguagem de programação orientada a objetos desenvolvida pela Sun Microsystems. A linguagem Java foi projetada para ser pequena, simples e portátil

2.4 Principais linguagens de programação utilizadas para desenvolvimento de jogos 37

para todos os sistemas operacionais, tanto o código fonte como os binários. Java é multi- plataforma. Então não é necessário usar um tipo especifico de computador, a linguagem funciona mesmo no Windows, Unix ou Mac. Ela foi e está sendo utilizada nos mais di- versos tipos de dispositivos, desde caixas eletrônicos à dispositivos móveis. O Trecho de Código2.3mostra um exemplo de codificação Java (INTEGRADO; NERY,2016).

• Orientada a objetos;

• Portabilidade: Independência de plataforma - "escreva uma vez, execute em qual- quer lugar"

• Recursos de Rede: Possui extensa biblioteca de rotinas que facilitam a cooperação com protocolos TCP/IP, como HTTP e FTP;

• Segurança: Pode executar programas via rede com restrições de execução; • Sintaxe similar a C/C++;

• Internacionalização: Suporta nativamente caracteres Unicode

• Simplicidade na especificação: tanto da linguagem como do "ambiente"de execução (JVM)

• É distribuída com um vasto conjunto de bibliotecas (ou APIs)

• Sistemas distribuidos e multitarefa: Possui facilidades para criação de programas distribuídos e multitarefa (múltiplas linhas de execução num mesmo programa) • Desalocação automática de memória: por processo de coletor de lixo

• Carga Dinâmica de Código: Programas em Java são compostos por uma coleção de classes armazenadas de forma independente e podem ser carregadas no momento certo, ou seja, na hora da utilização.

Código 2.3 Código Java.

1 public class OlaMundo {

2 public static void main(String args[]) { 3 System.out.println("OlaMundo");

4 }

5 }

Lua

Lua é uma linguagem brasileira de script procedural, pequena, leve e rapida, foi criada para expandir aplicações em geral, por ser uma linguagem extensível (que une partes de um programa feitas em mais de uma linguagem), para prototipagem e para ser embarcada em softwares complexos, como jogos. O Trecho de Código 2.4 mostra um exemplo de codificação Lua (CELES; FIGUEIREDO; IERUSALIMSCHY,2004).

2.4 Principais linguagens de programação utilizadas para desenvolvimento de jogos 38

• Lua roda em todos os tipos de Unix e Windows, e também em dispositivos móveis (usando Android, iOS, BREW, Symbian, Windows Phone), em microprocessadores embutidos (como ARM e Rabbit, para aplicações como Lego MindStorms), e até mainframes IBM;

• Embutível;

• Lua é usada para estender programas escritos não só em C e C++, mas também em Java, C#, Smalltalk, Fortran, Ada, Erlang, e mesmo outras linguagens de script, como Perl and Ruby;

• Pequena;

• O pacote de Lua 5.2.3, contendo o código fonte e a documentação, ocupa 246K comprimido e 960K descompactado. O fonte contém cerca de 20000 linhas de C; • No Linux, o interpretador Lua contendo todas as bibliotecas padrões de Lua ocupa

182K e a biblioteca Lua ocupa 244K. Código 2.4 Código Lua.

1 function fact (n) 2 if n == 0 then 3 return 1 4 else 5 return n * fact(n-1) 6 end 7 end 8 9 print("enter a number:") 10 a = io.read("*number") 11 12 print(fact(a)) JavaScript

JavaScript é uma linguagem de programação interpretada. Originalmente im- plementada como parte dos navegadores web para executar scripts do lado do cliente e interagir com o usuário rodando o script apenas pelo cliente sem passar pelo servidor, controlando o navegador, realizando comunicação assíncrona e alterando o conteúdo do documento exibido. O Trecho de Código 2.5 mostra um exemplo de codificação JavaS- cript (FLANAGAN,2002).

• Seus comandos e funções são incorporados a tags html;

• Baseada em objetos: porque já possui um conjunto de objetos embutidos. Sendo assim desnecessário a construção dos objetos;

2.4 Principais linguagens de programação utilizadas para desenvolvimento de jogos 39

• Portátil: não depende do sistema operacional para funcionar basta apenas de um navegador que a interprete.

Código 2.5 Código JavaScript.

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"/> 5 <script type="text/javascript"> 6 alert("Olá Mundo") 7 </script> 8 </head> 9 <body> 10 </body> 11 </html> C#

É orientada a objetos, fortemente tipada, desenvolvida pela Microsoft como parte da plataforma .NET. A sua sintaxe orientada a objetos foi baseada no C++mas inclui muitas influências de outras linguagens de programação, como Object Pascal e Java. O Trecho de Código 2.6 mostra um exemplo de codificação C# (ARCHER; WHITECHAPEL,2002).

• Simplicidade: é poderosa como o C++ e simples como o Visual Basic; • Completamente orientada a objetos: toda variável faz parte de uma classe;

• Fortemente tipada: ajuda a evitar erros por manipulação imprópria de tipos e atribuições incorretas.

Código 2.6 Código C#.

1 class ClasseTeste

2 {

3 static void Main(string[] args)

4 {

5 System.Console.WriteLine(args.Length);

6 }

2.5 Motores de Jogos 40

2.5

Motores de Jogos

Um motor de jogos ou “Game Engines” são bibliotecas, ou pacotes de funciona- lidades, feitas para facilitar as etapas do desenvolvimento, fazendo que nem tudo no jogo precise ser feito totalmente do zero. Não sendo necessário o desenvolvimento de partes essenciais em quase todos os jogos, reutilizando pacotes de modelagem e renderização de imagens 2D ou 3D, motor de física para controle de colisões de personagens, rede para jo- gos multiplayer, sons, inteligência artificial, animações e principalmente proporcionando suporte à linguagens de script. As seções seguintes apresentam os principais motores de jogos.

2.5.1

Unity 3D

O Unity 3D, é um motor de jogos 2D e 3D proprietário e uma IDE criada pela Unity Technologies. Cresceu a partir da adição do suporte à plataforma Mac OS X e depois se tornou um motor multi-plataforma.

O Unity possui duas versões: a Unity Pro e a versão gratuita, que pode ser usada para fins educacionais, e a versão pro que pode ser testada por um período de 30 dias. É utilizado em grande escala na criação de jogos para WEB, mas o motor é capaz de criar grandes jogos para outras plataformas. A Tabela 2.5 a seguir descreve suas principais características.

TIPO Suporte Linguagens Sistemas Opera-

cionais Licença 2D e 3D Física e Rede (multiplayer) C#, JavaScript, Boo Win,Linux,Mac, Web, Flash, iOS/Android, Consoles (Xbox360,PS3, Wii)

Grátis para Web e PC‘s (com limita- ções)

Tabela 2.5: Características do Unity 3D (UNITY,2016).

Homepage:<https://unity3d.com/pt>

Comunidade:<https://unity3d.com/pt/community>

Documentação:<http://docs.unity3d.com/Manual/index.html>

2.5 Motores de Jogos 41

2.5.2

Cryengine

CryEngine é um motor de jogos que ficou famoso ao ser utilizado no desenvolvi- mento de grandes jogos como Far Cry e Crysis. A engine foi originalmente desenvolvida pela Crytek para ser utilizada como demo tecnológica para a Nvidia, mas quando a com- panhia viu seu potencial, a transformou em um motor de jogos.

Quando placas de vídeo com suporte a sombreamento de pixels e vértices foram lançadas, a Crytek lançou a versão 1.2 da engine, que usava de algumas das suas capacidades para melhores gráficos. Posteriormente, a companhia desenvolveu a CryEngine1.3, com suporte adicional a iluminação HDR. A Tabela 2.6a seguir descreve suas principais características.

TIPO Suporte Linguagens Sistemas Opera-

cionais

Licença

2D e 3D Física e Rede

(multiplayer)

C++ e Lua Xbox 360, PlayS-

tation, Wii U, Windows, Mac, Android, iOS

Grátis (com limi- tações)

Tabela 2.6: Características do Cryengine (CRYTEK,2016). Homepage:<http://cryengine.com/>

Comunidade:<http://www.cryengine.com/community/landing.php>

Documentação:<http://docs.cryengine.com/display/SDKDOC1/Home>

2.5.3

Unreal Engine

Unreal Engine é um motor de jogos desenvolvido pela Epic Games, utilizado pela primeira vez em 1998 no jogo em primeira pessoa Unreal, ele tem sido usado para o desenvolvimento de muitos jogos desde então, incluindo: Unreal Tournament, Clancy’s Rainbow Six, Batman: Arkham Knight, Mortal Kombat X,e muitos outros.

Seu núcleo é escrito em C++, possibilitando a portabilidade para múltiplas plata- formas e consoles de jogos. A Tabela 2.7a seguir descreve suas principais características.

TIPO Suporte Linguagens Sistemas Opera-

cionais Licença 2D e 3D Física e Rede (multiplayer) C++, UnrealS- cript Windows, Linux, Mac, Dreamcast, Xbox 360, PlayS- tation, Wii U Proprietário, UDK gratuito

para uso não- comercial

2.5 Motores de Jogos 42

Homepage:<https://www.unrealengine.com>

Comunidade:<https://forums.unrealengine.com/>

Documentação:<https://docs.unrealengine.com/latest/INT/>

2.5.4

Moai SDK

Moai SDK é uma plataforma de desenvolvimento voltada para criação de jogos para dispositivos móveis. A plataforma é composta pela Moai SDK e Moai Cloud, uma serviço de nuvem utilizado para hospedar jogos.

Utiliza das linguagens de programação Lua, C++ e OpenGL. Vários jogos comerciais foram criados com este motor como: Steam Pirates, e Broken Age. A Tabela

2.8a seguir descreve suas principais características.

TIPO Suporte Linguagens Sistemas Opera-

cionais

Licença

2D Física Lua iOS, Android,

Chrome, PC,

Mac (em breve Linux)

Grátis e Open Source

Tabela 2.8: Características do Moai SDK (MOAI,2016). Homepage:<http://getmoai.com/>

Comunidade:<http://getmoai.com/forums/>

Documentação:<http://getmoai.com/wiki/index.php?title=Main_Page>

2.5.5

Torque 2D/3D

Torque Game Engine é um motor de jogos proprietário multiplataforma desen- volvido pela GarageGames. É compatível com sistemas Microsoft Windows, Mac OS X e Linux. O motor esta disponível em duas licenças: uma para desenvolvedores independen- tes e, outra para desenvolvedores de jogos profissionais. A Tabela 2.9 a seguir descreve suas principais características.

TIPO Suporte Linguagens Sistemas Opera-

cionais Licença 2D e 3D Física e Rede (multiplayer) C++ Windows, Linux, Web

Grátis para Web e PC‘s (com limita- ções)

Tabela 2.9: Características do Torque 2D/3D (TORQUE3D,

2.5 Motores de Jogos 43

Homepage:<http://torque3d.org/>

Comunidade:<http://forums.torque3d.org/>

Documentação:<http://wiki.torque3d.org/>

2.5.6

Cocos2D-X

Cocos2d é um software de código aberto. Pode ser utilizado para desenvolver jogos, aplicativos e outros programas interativos baseados em GUI multiplataforma. O Cocos2d esta disponível em varias versões, cada uma voltada para uma plataforma de de- senvolvimento específica. A Tabela 2.10a seguir descreve suas principais características.

TIPO Suporte Linguagens Sistemas Opera-

cionais

Licença

2D Física C++ iOS, Android,

WinPhone, Bada, Blackberry, Me- eGo, Marmalade, Windows, Mac e Html 5 Grátis e Open Source

Tabela 2.10: Características do Coco2D-X (COCOS,2016).

Homepage:<http://www.cocos2d-x.org/>

Comunidade:<http://discuss.cocos2d-x.org/>

Documentação:<http://www.cocos2d-x.org/wiki>

2.5.7

Shiva3D

ShiVa3D é um motor de jogos 3D com um editor gráfico desenvolvido para criar jogos para a Web, consoles de jogos e dispositivos móveis.

É um motor multiplataforma que utiliza das linguagens OpenGL, OpenGL ES e DirectX. ShiVa3D também suporta plugins como NVIDIA PhysX, F-Mod sounds library, e ARToolKit. A Tabela 2.11a seguir descreve suas principais características.

2.5 Motores de Jogos 44

TIPO Suporte Linguagens Sistemas Opera-

cionais

Licença

3D Física e Rede

(multiplayer)

Lua ou C++ iOS, Android,

Windows, Linux, Wii, webOS, Blackberry, Sym- bian, WinPhone, Web Grátis apenas para aplicações web

Tabela 2.11: Características do Shiva3D (SHIVA,2016).

Homepage:<http://www.shivaengine.com/>

Comunidade:<http://www.shiva-engine.com/>

Documentação:<http://www.shiva-engine.com/doc/>

Loja de Pacotes:<http://www.shiva3dstore.com/>

2.5.8

Stencyl

Stencyl é uma plataforma 2D de criação de jogos que permite o desenvolvi- mento para computadores, dispoditivos móveis e WEB. Pode ser baixado gratuitamente e possui modulos que podem ser comprados posteriormente. Era originalmente chamado StencylWorks mas seu nome foi mudado após o lançamento de sua primeira versão. A Tabela 2.12a seguir descreve suas principais características.

TIPO Suporte Linguagens Sistemas Opera-

cionais

Licença

2D Física Codificação vi-

sual ActionScript iOS, Android, Flash, Desktop (Mac, Windows, Linux). Pago

Tabela 2.12: Características do Stencyl (STENCYL,2016).

Homepage:<http://www.stencyl.com/>

Comunidade:<http://community.stencyl.com/>

Documentação:<http://www.stencyl.com/help/toc/>

2.5.9

AndEngine

AndEngine é um motor de jogos escrito para desenvolvimento em Java espe- cificamente para dispositivos Android. O motor utiliza da tecnologia OpenGL ES para

2.5 Motores de Jogos 45

trabalhar com aceleração de gráficos.

Pode ser utilizada pelas seguintes plataformas: Eclipse e Android Studio. A Tabela 2.13a seguir descreve suas principais características.

TIPO Suporte Linguagens Sistemas Opera-

cionais

Licença

2D Física Java Android Grátis e Open

Source Tabela 2.13: Características do AndEngine (ANDENGINE,2016).

Homepage:<http://www.andengine.org/>

Comunidade:<http://www.andengine.org/forums/>

Documentação:<https://code.google.com/p/andengine/>

2.5.10

FlatRedBall

FlatRedBall é um motor de jogos completamente gratuito em C#. É conhecido por uma interface de desenvolvimento amigável e simplificada e pode ser baixada gratui- tamente. A Tabela 2.14a seguir descreve suas principais características.

TIPO Suporte Linguagens Sistemas Opera-

cionais

Licença

2D/3D Física C# Xbox360, Win-

dows Phone, Windows, An- droid e Silver- light Grátis e Open Source

Tabela 2.14: Características do FlatRedBall (FLATREDBALL,

2016). Homepage:<http://newsblog.flatredball.com/> Comunidade:<http://community.flatredball.com/> Documentação: <http://documentation.flatredball.com/frb/docs/index.php? title=Main_Page>

2.5.11

Sunburn

É um motor de jogos 2D e 3D proprietário e multiplataforma desenvolvido pela SynapseGaming. Está disponível somente em versão paga. A Tabela 2.15 a seguir descreve suas principais características.

2.5 Motores de Jogos 46

TIPO Suporte Linguagens Sistemas Opera-

cionais

Licença

2D/3D Física C# Android, Mac

OS X, Linux, Windows Phone, Windows Sur- face, Windows Store, Xbox 360 Pago

Tabela 2.15: Características do Sunburn (SYNAPSEGAMING,

2016).

Homepage:<https://www.synapsegaming.com/products/sunburn/engine/>

Comunidade:<https://www.synapsegaming.com/community/>

Documentação:<https://www.synapsegaming.com/wikis/>

2.5.12

Construct 2

Construct é um motor de jogos 2D baseado em HTML5, desenvolvido pela Scirra Ltda. É destinado principalmente para não-programadores, permitindo a criação rápida de jogos utilizando um editor visual e um sistema de lógica baseada em comporta- mento. A Tabela 2.16a seguir descreve suas principais características.

TIPO Suporte Linguagens Sistemas Opera-

cionais Licença 2D Física e Rede (multiplayer) Codificação visual Web HLML5, Wii U, iOS, Android, Win- dows, Windows Phone, Mac, Linux, Black- berry, Facebook, Chrome Grátis

Tabela 2.16: Características do Construct 2 (SCIRRA,2016).

Homepage:<https://www.scirra.com/>

Comunidade:<https://www.scirra.com/forum/>

2.5 Motores de Jogos 47

2.5.13

Crafty

Crafty é um motor de jogos 2D gratuito desenvolvido pela CraftyJs. É um software de desenvolvimento de jogos voltados somente para navegadores. A Tabela 2.17

a seguir descreve suas principais características.

TIPO Suporte Linguagens Sistemas Opera-

cionais

Licença

2D Física HTML e JavaS-

cript

HTML5 Grátis

Tabela 2.17: Características do Crafty (CRAFTYJS,2016).

Homepage:<http://craftyjs.com/>

Comunidade:<https://groups.google.com/forum/#!forum/craftyjs>

CAPÍTULO

3

No documento Chemistry Quest Alchemist (páginas 38-51)

Documentos relacionados