Prévia do material em texto
Jogos para Internet Material Teórico Responsável pelo Conteúdo: Prof. Me. Alcides Teixeira Barboza Junior Revisão Textual: Prof.ª Dr.ª Selma Aparecida Cesarin Ferramentas de Desenvolvimento de Jogos para Internet • Conceitos Iniciais; • Arquitetura Cliente-Servidor; • Principais Ferramentas de Desenvolvimento de Jogos para Internet; • Nossa Ferramenta de Trabalho. · Apresentar as formas de desenvolvimento de jogos; · Apresentar as principais ferramentas para o desenvolvimento de jo- gos para Internet; · Demonstrar a instalação e a configuração da ferramenta GDevelop. OBJETIVO DE APRENDIZADO Ferramentas de Desenvolvimento de Jogos para Internet Orientações de estudo Para que o conteúdo desta Disciplina seja bem aproveitado e haja maior aplicabilidade na sua formação acadêmica e atuação profissional, siga algumas recomendações básicas: Assim: Organize seus estudos de maneira que passem a fazer parte da sua rotina. Por exemplo, você poderá determinar um dia e horário fixos como seu “momento do estudo”; Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma alimentação saudável pode proporcionar melhor aproveitamento do estudo; No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você também encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão sua interpretação e auxiliarão no pleno entendimento dos temas abordados; Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus- são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e de aprendizagem. Organize seus estudos de maneira que passem a fazer parte Mantenha o foco! Evite se distrair com as redes sociais. Mantenha o foco! Evite se distrair com as redes sociais. Determine um horário fixo para estudar. Aproveite as indicações de Material Complementar. Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma Não se esqueça de se alimentar e de se manter hidratado. Aproveite as Conserve seu material e local de estudos sempre organizados. Procure manter contato com seus colegas e tutores para trocar ideias! Isso amplia a aprendizagem. Seja original! Nunca plagie trabalhos. UNIDADE Ferramentas de Desenvolvimento de Jogos para Internet Contextualização Você gosta de jogar? Quais jogos você costuma jogar? Qual a plataforma ou meio em que você costuma jogar seus jogos? Existem diferentes plataformas no Mercado, nas quais podemos jogar os mais diferentes tipos de jogos que gostamos. Você deve conhecer várias plataformas, como, por exemplo, os consoles (PlayStation, Xbox etc.), os smartphones que rodam jogos em Android ou iOS e a plataforma mais tradicional de todas, os Computadores Pessoais (PC). Como existem diferentes plataformas, você deve estar se perguntando: como é possível desenvolver jogos para elas? Conforme a plataforma que você deseja trabalhar, você pode escolher entre uma ou outra ferramenta ou Tecnologia. Assim, existem diversas opções no Mercado, que você deve conhecer. Embora possamos aprender várias ferramentas ou Tec- nologias, precisamos focar em alguma para termos maior facilidade de manuseio. Nesta Unidade, iremos conhecer algumas das ferramentas mais utilizadas no Mercado; contudo, vamos selecionar uma para podermos aprender os princípios da criação de jogos para Internet. Você deve, então, estar com outra dúvida: como se cria um jogo para a Internet? O conteúdo desta Unidade também irá discutir brevemente como funciona essa arquitetura na qual podemos criar os nossos jogos. Não se preocupe, nesta Disciplina não iremos exigir uma programação em lin- guagens específicas; precisaremos, no entanto, fazer uso da lógica para desenvol- ver nossos jogos na Tecnologia ou na ferramenta selecionada. 8 9 Conceitos Iniciais Segundo a definição do dicionário Michaelis, jogo é qualquer atividade recreativa que tem por finalidade entreter, divertir ou distrair. Podemos enriquecer um pouco mais tal definição para acrescentar que essa atividade lúdica é composta por uma série de ações e decisões que conduzem a uma situação final, que se resume em ganhar ou perder, atingir ou não um objetivo previamente proposto. Trazendo essa definição para o nosso contexto, os Jogos Digitais, todo o cená- rio, regras e o universo são apresentados por meio eletrônico, controlado por uma lógica computacional. O desenvolvimento de Jogos Digitais talvez seja uma das áreas mais fascinantes da Ciência da Computação, pois permite ao desenvolvedor dar vida a imagens, modelos e ideias, tornando possível a criação e a exploração de um mundo do imaginário. No entanto, apesar de fascinante, o desenvolvimento de um jogo envolve muito mais do que somente a sua programação, indo desde sua concepção e planejamento, até a finalização do projeto e sua publicação em algum meio de distribuição, seja ele uma plataforma móbile, como smartphones (Android ou Apple, por exemplo) ou até mesmo na Web. Simplificadamente, na etapa de planejamento, você precisará definir a base de seu jogo, ou seja, o tema ou enredo do jogo, personagens, mapas, puzzles a serem solucionados e storyboard com animações, entre outras informações; porém, é nessa etapa que o desenvolvedor deve ter claramente definida a ferramenta que será utilizada na concepção do Jogo. Assim, nosso objetivo, nesta Unidade, será apresentar algumas das principais ferramentas oferecidas no Mercado. Você também aprenderá sobre a Arquitetura Cliente-Servidor para entender como funcionará seu jogo. Ao final da Unidade, mostraremos a ferramenta selecionada e como você deve fazer para instalar essa ferramenta na sua máquina. Arquitetura Cliente-Servidor A ideia de interligar computadores formando uma grande Rede é mais antiga do que podemos imaginar e surgiu nos Estados Unidos, em plena Guerra Fria. O que, em princípio, deveria servir para o compartilhamento de informações entre bases militares, acabou sendo o nascimento da Internet como conhecemos hoje. A tecnologia predominantemente utilizada hoje nas Redes de Computadores baseia-se numa Arquitetura chamada de Cliente-Servidor, na qual as tarefas e as cargas de trabalho são distribuídas em módulos ou processos distintos. 9 UNIDADE Ferramentas de Desenvolvimento de Jogos para Internet Nessa Arquitetura, temos, de um lado, equipamentos que são responsáveis pela manutenção e distribuição da informação, denominados servidores, e do outro lado temos o cliente que, por meio do seu equipamento, solicita algo para o servidor por meio de um endereço. Assim, predominam dois conceitos: • Servidor: é um host (máquina) no qual são executados os serviços e comparti- lhados recursos com os clientes. Os servidores são equipamentos com grande poder de processamento e armazenamento, capaz de atender às requisições de diversos clientes; • Cliente: responsável por iniciar uma sessão de comunicação com o servidor, com a finalidade de obter conteúdo ou um serviço. Os clientes são, em geral, os Computadores Pessoais, smartphones e tablets conectados à Internet. A Figura 1 demonstra graficamente essa Arquitetura, de forma simplificada. Em re- sumo, o cliente, por meio do seu navegador, por exemplo, faz uma solicitação de um servidor, utilizando um endereço dele. O servidor captura essa solicitação, faz o pro- cessamento necessário e devolve para o cliente os dados solicitados e já processados. URL HTML/CSS/JS Servidor WebCliente Conexão Internet Figura 1 – Arquitetura Cliente-Servidor Fonte: Adaptado de iStock/Getty Images Nesse modelo, a comunicação é feita por meio de protocolos (TCP/IP, por exemplo) que, em linhas gerais, garantem o transporte e o compartilhamento da informaçãona rede. São exemplos da utilização dessa Arquitetura a troca de e-mail e o acesso a qualquer site ou serviço remoto. Embora possamos fazer as solicitações aos servidores utilizando os navegadores Web (Chrome, Firefox etc.), também é possível fazer isso utilizando nossos aplica- tivos de celulares. Importante! Embora possamos disponibilizar os jogos nos servidores, para acessar de qualquer computa- dor, nesse tipo de desenvolvimento para Internet, podemos simplesmente fazer os testes e jogar em nossas máquinas, bastando para isso termos somente um navegador Web. Importante! 10 11 Lembre-se de que nosso foco aqui é desenvolver Jogos para Internet. Assim, iremos criar nossos jogos em nossas máquinas. Depois de seu desenvolvimento, podemos colocar esses jogos em servidores na Internet. Após disponibilizar os jogos, podemos acessá-los em qualquer computador com acesso à Internet e um navegador. Importante! Utilize as últimas versões dos navegadores Google Chrome ou Firefox em seu computador para testar os jogos desta Disciplina. Você Sabia? Que tal você conhecer mais sobre a história da Internet? Acesse o vídeo disponível em https://youtu.be/pKxWPo73pX0 para conhecer um pouco mais sobre esse mundo.Ex pl or Conheça um pouco sobre a história dos navegadores no vídeo disponível no link a seguir: https://youtu.be/MeqxcMEO4Ig.Ex pl or Principais Ferramentas de Desenvolvimento de Jogos para Internet Você já deve ter notado que a Era da Informação na qual vivemos nos proporcionou muitas facilidades. As facilidades trazidas pelos avanços das tecnologias tornaram pos- sível algo que antes era para poucos, que seria o desenvolvimento de Jogos Digitais. A criação de jogos próprios, gratuitos ou não, tornou-se uma realidade a partir da popularização dos softwares livres, das plataformas de distribuição diretamente na Internet e, principalmente, pela criação de ferramentas que facilitam de certa forma esse desenvolvimento, bastando para tanto uma ideia na cabeça e muita dedicação. Hoje em dia, existem diversas ferramentas para o desenvolvimento de jogos. Com elas, você será capaz de juntar todos os elementos que devem estar presentes em um jogo, para então produzi-lo. As ferramentas atuais possuem como foco facilitar o desenvolvimento de jogos. Essa facilitação é no sentido de manusear desde a parte gráfica até os conceitos de Física, como a gravidade, de forma simplificada. Outra característica da maioria dessas ferramentas e permitir publicar o jogo para diferentes plataformas. A seguir, vamos apresentar algumas das principais ferramentas existentes no Mercado para o desenvolvimento de jogos digitais e suas características. 11 UNIDADE Ferramentas de Desenvolvimento de Jogos para Internet GameSalad A GameSalad é uma ferramenta multiplataforma para desenvolvimento de Jo- gos 2D, que utiliza uma programação do tipo arraste e solte. Utilizando-se de edi- tores visuais e um Sistema de Lógica baseado em comportamento, você só precisa ajustar os parâmetros necessários para o seu jogo. A interface dessa ferramenta é exibida na Figura 2. Figura 2 – Exemplo da ferramenta GameSalad A principal vantagem da ferramenta é a liberdade para a criação de jogos sem a prévia necessidade do conhecimento de programação; sua versão gratuita só permite a publicação em ambiente Web (HTML5). Assim, para projetos mais ousados, visan- do à publicação na Google Play, por exemplo, é necessária a obtenção da versão Pró. GameSalad: https://goo.gl/ijm6j8. Acesse o canal GameSalad no YouTube para ver essa ferramenta em ação: https://goo.gl/eXDmwP.Ex pl or Multiplataforma: é o termo usado para descrever quando fazemos um Jogo ou aplicação numa determinada Tecnologia e essa Tecnologia pode ser executada em diferentes plata- formas, sem a necessidade de alterar todo o Código ou Programação. Ex pl or Construct 2 A Construct 2 também é uma ferramenta para a criação de Jogos Digitais mul- tiplataforma em 2D, baseados em HTML 5, desenvolvida para quem não têm co- nhecimento algum de Programação, vez que possui ferramentas intuitivas e fáceis de usar na criação de um Jogo. A Figura 3 exibe a ferramenta com um projeto de jogo aberto. 12 13 Figura 3 – Construct 2 Similar ao GameSalad, a Construct 2 oferece a possibilidade de criação de Jo- gos utilizando o estilo arraste e solte, baseado num Sistema de Lógica que funciona a partir de comportamentos. A principal desvantagem da ferramenta está no uso de sua versão gratuita, que limita bastante a criação dos jogos, permitindo a utilização de apenas 100 elemen- tos, sejam eles visuais, áudio, comportamento, seja qualquer outro recurso do jogo. Apesar de ser multiplataforma, a versão gratuita limita a publicação para am- biente Web (HTML5). Isso sem mencionar o fato de que não existem versões para as plataformas Linux e Mac OS X, mesmo sendo um programa de Código Aberto. A Empresa criadora dessa ferramenta já está lançando a versão beta do Construct 3. Depois, dê uma espiada no site para conhecer. Construct 2: https://goo.gl/Zz4ms8. Acesse o canal https://goo.gl/kzfPbL para ver a ferra- menta em ação.Ex pl or GDevelop A ferramenta GDevelop, exibida na Figura 4, é uma das escolhas mais interes- santes para a criação de jogos entre as ferramentas que não necessitam trabalhar diretamente com o Código em Linguagens de Programação. Assim com as demais ferramentas apresentadas anteriormente, é multiplata- forma, com versões para os principais Sistemas, a ferramenta permite que você desenvolva seu jogo e exporte para diferentes plataformas. As plataformas suportadas são: PC, Web (HTML5), Android e iOS, tudo isso de forma gratuita. 13 UNIDADE Ferramentas de Desenvolvimento de Jogos para Internet Figura 4 – GDevelop. A exemplo das ferramentas apresentadas anteriormente, o GDevelop também usa um estilo araste e solte, utilizando o conceito de eventos para traduzir a lógica do seu Jogo, sem a necessidade do prévio conhecimento de programação. GDevelop: https://goo.gl/21Qp6n. Veja o vídeo https://goo.gl/Fdvok1, para conhecer um pouco mais sobre a ferramenta.Ex pl or Unreal Engine A Unreal Engine, exibida na Figura 5, é uma das ferramentas para criação de jogos mais flexíveis e poderosas disponíveis no Mercado, desenvolvida pela famosa produtora e editora de Jogos Eletrônicos Epic Games. Por ser gratuita, a Engine pode ser utilizada para fins educacionais, para Ar- quitetura e até na criação de simulações, sem custo algum. Sua única restrição é quanto à comercialização do jogo. Nesse caso, o desenvolvedor deverá pagar uma taxa de 5% sobre seus ganhos com a comercialização do jogo, desde que ultrapas- sem os U$ 3.000,00. Figura 5 – Engine Unreal 14 15 A Engine permite a criação de jogos para consoles, web e até smartphones; possui uma funcionalidade bastante interessante: um Sistema de script chamado Blueprint, que permite o desenvolvimento de jogos complexos sem a necessidade de implementar Linhas de Código complexos. Ainda entre os recursos disponíveis, podemos destacar, também, a possibilidade de aplicar inteligência artificial aos personagens do jogo, para que os movimentos possam ser mais inteligentes e naturais em relação ao cenário do game. Com tantos recursos e funcionalidades, não é à toa que a Unreal Engine é uma das ferramentas de desenvolvimento mais utilizadas no Mercado de criação de games. Unreal: https://goo.gl/tsDdSD. Veja o vídeo https://youtu.be/5R_dniXqMvU, para entender por que essa é uma das ferramentas mais utilizadas para o desenvolvimento de jogos em grandes e pequenos estúdios.E xp lo r Game Engine: nomenclatura atribuída às ferramentas de desenvolvimento de jogos que fornecem diferentes pacotes de recursos ou funcionalidades visando a facilitar o desenvolvi- mento dos jogos. As engines atuais demoraram muito tempo para chegar ao ponto em que estão; foram anos de evolução, o que se traduziu em ferramentas repletas de recursos que vão desde a parte visual até a utilizaçãode Inteligência Artifi cial, de forma simplifi cada. Ex pl or Unity Quando o assunto é criação de jogos simples ou até os mais complexos, a Unity se apresenta como a opção preferida de ferramenta para o desenvolvimento em 2D ou 3D, contando com os mais diversos estilos gráficos e mecânicos. A interface da Engine é exibida na Figura 6. Figura 6 – Unity engine Trata-se de uma ferramenta com interface gráfica e suporte a diversos recursos, como uma IDE auxiliar (o MonoDevelop – Para a construção de scripts em C#), simulação de gravidade, texturas, iluminação e algoritmos de colisão, entre outros. 15 UNIDADE Ferramentas de Desenvolvimento de Jogos para Internet Por sua facilidade de aprendizagem e a existência de farto material de apoio e fóruns de discussão na Internet, a Unity é uma das engines mais utilizadas no Mercado de desenvolvimento de jogos. Apesar dos pontos fortes destacados acima, a versão gratuita da Unity possui alguns recursos limitados, que não impedem sua utilização por desenvolvedores ini- ciantes, mas, assim como a Unreal, coloca algumas cobranças sobre o faturamento dos jogos comercializados. Também é válido citar que, assim como diversas ferramentas existentes no Mer- cado, ela requer conhecimento ou aprendizagem de uma Linguagem de Programa- ção; nesse caso, a mais utilizada é o C#. Unity: https://goo.gl/DbLkcK. Para entender por que essa é uma das ferramentas preferidas dos desenvolvedores de jogos de todo mundo, acesse: https://goo.gl/2mbspw.Ex pl or Godot O Godot é uma ferramenta criada em 2001, com filosofia voltada à simplicidade e foco na criação de jogos 2D e 3D para múltiplas plataformas e até mesmo consoles comerciais, como o PlayStation e o Vita. Sua interface procura ser intuitiva, tanto para designers, quanto programadores, usando um esquema hierárquico de janelas de contexto, oferecendo uma curva de aprendizagem acessível e Linguagem de Programação de alto nível (o GDScript), que possui muita familiaridade com o Python. Além disso, a Godot inclui um mecanismo 2D melhor que o disponível pela Unity, que pode transformar e redimensionar sprites, criar Sistemas de Física e colisão e animar facilmente. A interface dessa ferramenta é apresentada na Figura 7. Figura 7 – Godot Editor. Fonte: docs.godotengine.org 16 17 Totalmente gratuita e sem limitações, a Godot pode ser uma opção para estúdios pequenos e até mesmo grandes desenvolvedoras de jogos. Godot: https://goo.gl/6i5Nzs. Veja o vídeo: disponível em https://youtu.be/UTAeDoRIHaA para entender por que essa ferramenta tem grande potencial.Ex pl or Nossa Ferramenta de Trabalho Com tantas opções de ferramentas, você deve ser Perguntar qual é a melhor escolha para começar a aprender e se aventurar nessa incrível área da criação de jogos. Apresentamos somente algumas opções existentes no mercado. Acredite, exis- tem muitas outras! Nesse sentido, apesar de possuírem recursos parecidos e até oferecerem a opção de exportação para diversas plataformas, a melhor opção dependerá inicialmente do seu conhecimento de programação. Se você não possui nenhum conhecimento nessa área, as melhores opções se- riam o GameSalad, o Construct 2 ou o GDevelop. Em um cenário diferente, no qual o domínio de uma Linguagem de Programação não é um obstáculo, certamente, a escolha pela Unreal, Unity ou Godot seria a mais adequada. Nesta Disciplina, considerando o objetivo inicial, que é o desenvolvimento para Internet e frente à ausência de limitações, iremos utilizar o GDevelp como ferra- menta principal para a criação de jogos. Nossa escolha para esse início do desenvolvimento de jogos mostra-se adequada na medida em que, além de todas as características já citadas anteriormente e as facilidades oferecidas pela GDevelop, nenhum conhecimento prévio de Programa- ção é exigido para a criação de jogos simples. Você deverá somente usar a Lógica de Programação e algoritmos para desen- volver seus jogos... e seja criativo. Para mais informações sobre as ferramentas, acesse https://goo.gl/ZmEPsH e leia um artigo sobre a escolha da engine para a criação de games.Ex pl or Instalação e Confi guraÇão do Gdevelop A instalação da ferramenta GDevelop é bastante simples e deve ser feita a partir do download no site oficial. 17 UNIDADE Ferramentas de Desenvolvimento de Jogos para Internet A Figura 8 demonstra o local para fazer o download. Figura 8 – Download da ferramenta Acesse o site para fazer o download https://goo.gl/VwzwRB. Ex pl or Selecione sua plataforma de trabalho, como exibido na Figura 9 (Windows, MacOs ou Linux), e salve o instalador em um local fácil na sua máquina. Figura 9 – Escolha da versão do Sistema Operacional Clique no arquivo que você acabou de baixar e o GDevelop será instalado em sua máquina e será exibido a tela inicial. Não será necessária nenhuma configuração inicial para começarmos a trabalhar. Apenas clique em OK para fechar a janela de boas-vindas e pronto (Figura 10). 18 19 Figura 10 – Ferramenta GDevelop Para iniciarmos nosso trabalho, clicamos em CREATE A NEW PROJECT (Fi- gura 11) e podemos começar. Figura 11 – Iniciando um novo projeto Por enquanto, vamos encerrar aqui, com a instalação da ferramenta. Na Unida- de II, vamos conhecer um pouco mais sobre as características básicas do GDevelop para, na Unidade III, começarmos, então, nosso primeiro projeto de desenvolvi- mento de um jogo 2D de plataforma. 19 UNIDADE Ferramentas de Desenvolvimento de Jogos para Internet Material Complementar Indicações para saber mais sobre os assuntos abordados nesta Unidade: Leitura Documentação do GDevelop 5 https://goo.gl/4dS9C6 Documentação do GDevelop 4 https://goo.gl/ZC9nt7 Indústria de Jogos. Artigos na Indústria de Jogos. https://goo.gl/V3k99Q Mapeamento da Indústria de Jogos no Brasil https://goo.gl/Dmfbmk 20 21 Referências DOCUMENTAÇÃO do GDevelop 5. Disponível em: <http://wiki.compilgames. net/doku.php/gdevelop5/start>. DOCUMENTAÇÃO do GDevelop 4. Disponível em: <http://wiki.compilgames. net/doku.php/start>. FORBELLONE, A. L. V.; EBERSPACHER, H. F. Lógica de Programação: A Constru- ção de Algoritmos e Estrutura de Dados. 3.ed. São Paulo: Pearson Prentice Hall, 2008. SCHELL, J. A Arte de Game Design: O Livro Original. São Paulo: Campus, 2011. BUCHARD, E. The Web Game Developer’s Cook book: Using Java Script and HTML5 to Develop Games. Addison-Wesley, 2013. MEYER, Jeanine. O guia essencial do html5: usando jogos para aprender HTML5 e Javascript. Rio de Janeiro: Ciência Moderna, 2011. 21