• Nenhum resultado encontrado

RPGEDU: Estudo de caso da aplicação de linguagens de script em jogos educativos

N/A
N/A
Protected

Academic year: 2021

Share "RPGEDU: Estudo de caso da aplicação de linguagens de script em jogos educativos"

Copied!
7
0
0

Texto

(1)

RPGEDU: Estudo de caso da aplicação de linguagens de

script em jogos educativos

Heitor Adão Júnior., Rudimar Luiz Scaranto Dazzi

Grupo de Inteligência Aplicada – Universidade do Vale do Itajaí (UNIVALI) Itajaí – SC – Brasil

heitoradao@gmail.com, rudimar@univali.br

Abstract. The use of languages of script comes increasing in the development

of games and the educative games also follow this movement. The maintenance and magnifying of the educative games are important to keep the interest of the students in the game and the languages of script can facilitate this process significantly. This article describes the main characteristics of the languages of script and as they become related with the development of educative games to create flexible games with structures and contents, presenting examples of implemented pedagogical activities with languages of script.

Resumo. A utilização de linguagens de script vem aumentando consideravelmente no desenvolvimento de jogos e os jogos educativos também seguem esse movimento. A manutenção e ampliação dos jogos educativos são importantes para manter o interesse dos alunos no jogo e as linguagens de script podem facilitar sensivelmente esse processo. Este artigo descreve as principais características das linguagens de script e como elas se relacionam com o desenvolvimento de jogos educativos para criar jogos com estruturas e conteúdos flexíveis, apresentando exemplos de atividades pedagógicas implementadas com linguagens de script.

1. Introdução

Atualmente, um problema enfrentado por professores e pedagogos na utilização de softwares educativos é a pouca flexibilidade dos sistemas disponíveis.

Podemos observar na maioria dos jogos educativos disponíveis no mercado, um conteúdo estático e uma estrutura rígida. Os jogos educativos com conteúdo estático agem em um contexto específico e uma vez que o usuário aprende o conteúdo que o software apresenta, o jogo deixa de fornecer desafios ao jogador e perde a diversão.

Este trabalho vem propor uma solução para este problema, utilizando linguagens de

script para tornar as aplicações mais flexíveis e dinâmicas, permitindo assim sua fácil

modificação e extensão.

1.1 RPGEDU

Esta proposta surgiu após experiências na integração de um sistema de scripting para o projeto RPGEDU, um projeto de pesquisa cujo objetivo é o desenvolvimento de um jogo didático do tipo Role Playing Game (RPG) em terceira dimensão. Esse projeto tem como público alvo os alunos de 5ª a 8ª séries do ensino fundamental. O conteúdo pedagógico aborda várias disciplinas diferentes.

(2)

No desenvolvimento do projeto, utilizou-se a engine Ogre3D para a renderização de imagens, Crazy Eddie's GUI System (CEGUI) para o desenvolvimento da interface com o usuário, a biblioteca OPAL para a detecção de colisão, a biblioteca OpenAL para a sonoplastia, a linguagem C++ no desenvolvimento do núcleo do jogo e a linguagem de script LUA para o desenvolvimento das atividades pedagógicas e implementação do comportamento dos Non

Player Characteres (NPC). Foi usada também a biblioteca LuaBind para facilitar a integração

com o script.

O foco deste artigo é mostrar os benefícios proporcionados pelo uso de linguagens de script em jogos educativos. Na seqüência será apresentada uma visão geral sobre linguagens de script, seus benefícios e algumas características de algumas das linguagens disponíveis. Em seguida serão apresentados exemplos de utilização de linguagens de script em atividades pedagógicas, e por fim as conclusões do artigo.

2. Linguagens de script

Linguagens de script são linguagens de programação desenvolvidas com o objetivo de facilitar a extensão de aplicativos e sistemas, permitindo que qualquer pessoa possa alterar o comportamento de uma parte do programa sem a necessidade de re-compilação e usando uma linguagem de alto-nível de abstração [Valente 2005].

A diferença entre linguagens de script e as linguagens de programação tradicionais – compiladas – é que os scripts são interpretados em tempo de execução, ao passo que nas linguagens de programação tradicionais, o código-fonte é transformado em código de máquina em tempo de compilação pelos projetistas do sistema e a partir desse momento não pode mais ser alterado. É essa característica que permite que uma única aplicação contenha diferentes tipos de configurações e comportamentos, dependendo exclusivamente do script que está sendo executado por ela.

Os scripts podem ser executados em um interpretador embarcado em uma aplicação ou em uma máquina virtual – depois de pré-compilados para bytecode. Quando executado em uma máquina virtual, o script está limitado ao conjunto de instruções nela programadas. Quando executado por meio de um interpretador embarcado, torna-se possível a criação de novos conjuntos de instruções para serem utilizados no script. [Valente 2005]

Atualmente existem várias linguagens de script disponíveis, dentre estas, pode-se citar as linguagens Lua, Ruby, Python, AngelScript, GameMonkey, Squirrel e JavaScript. Para o projeto RPGEDU, a linguagem Lua foi escolhida por ser de alto nível, possuir sintaxe simples e de fácil aprendizado, possui código aberto e um alto desempenho comparada às outras linguagens [Debian 2007]. Lua também é distribuída gratuitamente.

Tabela 1. Características das principais linguagens de script

Característica Linguagem Multi-Thread Garbage Colector Orientação a Objetos Dinamicamente tipada Error Handling Multi-plataforma Lua x x x x Ruby x x x x x Python x x x

A maioria dos jogos usam uma forma de apresentar conteúdo diferente da que é fornecida pelo sistema operacional, com o objetivo de apresentar as informações de forma mais lúdica. É possível acrescentar novas funções e estruturas de dados à linguagem lua. Utilizando a biblioteca externa LuaBind, é possível também, compartilhar classes de objetos. Utilizando estes recursos é possível fazer com que o script controle subsistemas peculiares da aplicação. Isso pode permitir que o script mostre informações de acordo com o padrão do jogo, por exemplo.

(3)

2.1 Ruby Script

Ruby é uma linguagem de script orientada a objetos. Seu criador, Yukihiro Matsumoto, mesclou partes das suas linguagens favoritas (Perl, Smalltalk, Eiffel, Ada, e Lisp) para formar uma nova linguagem que balanceia programação funcional com programação imperativa (MATSUMOTO, 2007). Ruby é uma linguagem popular no Japão, por este motivo a maior parte da documentação está disponível no idioma japonês.

O RPGMaker é uma ferramenta para desenvolvimento de jogos do tipo RPG em 2D (Enterbrain). Ele possui um sistema de script integrado utilizando a linguagem Ruby. Esse sistema permite que você altere o comportamento interno do engine.

Uma grande vantagem de utilizar a linguagem de script Ruby seria que, mantendo uma compatibilidade entre o RPGEDU e RPG Maker XP (RMXP), poderíamos desenvolver as atividades pedagógicas e comportamento dos agentes no RMXP, concomitantemente ao motor principal do RPGEDU. Depois que o motor estivesse pronto, só precisaríamos portar as atividades pedagógicas e os agentes. Outra vantagem é que os jogos feitos para o RMXP poderia ser portados com mais facilidade para o RPGEDU, caso a linguagem Ruby fosse utilizada.

Figura 2. Exemplo de código que faz a integração entre as linguagens Ruby e C.

3. Benefícios proporcionados com o uso de scripting em jogos

O Jogo do Milhão é um exemplo de um jogo com conteúdo estático. Ele possui um conjunto de perguntas que não pode ser modificado, não é possível acrescentar novas perguntas e nem excluir as perguntas já existentes.

Poucos jogos educativos permitem uma parametrização de seu conteúdo. Permitir parametrizar o conteúdo, no exemplo acima seria o mesmo que permitir ao usuário inserir novas perguntas e remover ou modificar as perguntas já existentes.

Apenas a parametrização do conteúdo não é a melhor solução. O ideal é que o jogo possua uma estrutura flexível que permita que o usuário modifique não apenas o conteúdo, mas também o comportamento do jogo.

(4)

Essa estrutura deve permitir ao script processar os eventos gerados e exibir respostas adequadas ao evento. No contexto do RPGEDU, cada atividade pedagógica está associada a um arquivo de script que contém instruções responsáveis pela construção, apresentação e também avaliação da solução.

Quando o jogador colide com um NPC, este poderá disparar um evento que está associado a um script de atividade, depois de ativado, o script apresenta uma atividade ao usuário.

O RPGEDU é um exemplo de jogo que possui uma estrutura flexível, isso significa que suas atividades podem ter comportamentos diferentes. Entre suas atividades pedagógicas, pode-se encontrar perguntas de múltipla escolha, tarefas de associação com moupode-se entre imagem e significado, tarefas de ordenação de imagens utilizando o mouse, mas não se limitando a somente esses tipos.

4. Exemplo de atividade pedagógica utilizando scripting

No contexto do RPGEDU, antes de o usuário iniciar uma atividade, o sistema verifica se a atividade está disponível ou se já não foi realizada, podendo então executá-la em caso afirmativo.

Atividade de múltipla escolha.

As atividades pedagógicas são desenvolvidas utilizando alguns componentes de formulários – fornecidos pela biblioteca CEGUI – como radio buttons, buttons e check boxes. Dentro da atividade, quando o usuário pressiona um botão do mouse, o núcleo do sistema verifica se o usuário clicou em cima de algum componente e comunica ao script o nome do componente, para que este determine a ação que deve ser tomada.

(5)

Trecho do script executado quando um determinado evento é disparado.

Atividade usando o conceito de associação

Cada script associado a uma atividade pedagógica deve conter uma função especial denominada de update(). Essa função é responsável por responder aos eventos gerados pela interação do usuário com a interface da atividade. Essa função deve saber qual componente da interface disparou o evento para responder adequadamente, mostrando mensagens, alterando estados de componentes, etc.

O núcleo do RPGEDU trata as atividades como se fossem iguais. Para o núcleo não importa se a atividade em questão é uma atividade de múltipla escolha ou de associação. O tratamento diferenciado é feito totalmente pelo script.

(6)

Outra atividade usando o contexto de associação.

5. Idéias para o futuro

A utilização de linguagens de script viabiliza o desenvolvimento de jogos mais flexíveis e com capacidade de múltiplos conteúdos. Entretanto, esta solução ainda colide com a necessidade do usuário possuir conhecimentos em programação, algo indesejável para muitos projetos. Uma das possíveis soluções pra contornar este problema, é o desenvolvimento de front-ends e/ou editores que geram automaticamente os parâmetros para esses scripts, apresentando assim uma interface amigável ao usuário, não necessitando que ele tenha conhecimentos em programação para poder alterar as atividades existentes ou incluir suas próprias. Outra alternativa é fazer com que o jogo verifique através da internet, se os scripts que possui já são atualizados ou não e atualizar aqueles que forem necessários. Com essa abordagem, a atualização dos scripts do jogo é facilitada ainda mais, permitindo que o professor ou pedagogo atualize uma atividade pedagógica em todos os jogos de seus alunos, desde que estes estejam configurados para buscar atualizações em um mesmo servidor, definido pelo pedagogo.

6. Conclusão

O uso de linguagens de script mostrou-se eficiente no desenvolvimento das atividades pedagógicas e trouxe uma maior agilidade no desenvolvimento por sua flexibilidade, praticidade e simplicidade. Uma das maiores vantagens da utilização de linguagem de script é a possibilidade de fazer alterações (adaptações, expansões, etc) nos jogos sem precisar recompilar todo o projeto, pois para tal, basta fazer os ajustes nos arquivos dos scripts que o jogo já estará com as modificações efetuadas.

Embora ainda seja necessário um conhecimento de programação para que se possa alterar a estrutura de um jogo que usa script, os custos de manutenção deste jogo são reduzidos substancialmente e qualquer pessoa pode fazer essas alterações, pois não é necessário ter conhecimento sobre o funcionamento interno do jogo e nem acesso aos códigos-fonte.

A alteração do conteúdo do jogo pode ser feita por qualquer pessoa, mesmo que não possua conhecimento em programação. Mas é necessário que os desenvolvedores da estrutura da atividade forneça meios para isto, através de front-ends e/ou editores de conteúdo com interfaces amigáveis, por exemplo.

(7)

Referências

Debian (2007). “The Computer Language Benchmarks Game”, http://shootout.alioth.debian.org, Abril.

Gutshcmidit, Thomas (2003). “Game Programming with Python, Lua and Ruby”. Premier Press.

Ierusalimschy, R., Figueiredo, L. H. & Celes W. (2006), http://www.lua.org/manual/5.1/manual.html, Janeiro.

Matsumoto, Y (2005) “RUBY: What’s Ruby”, http://www.rubylang.org/en/20020101.html , Julho.

PUC-RIO (2007), “The Programming Language Lua”, http://www.lua.org, Janeiro.

Valente, L. (2006). “Guff: Um Framework para Desenvolvimento de Jogos”, (Mestrado), Programa de Pós-Graduação em Computação da Universidade Federal Fluminense, Niterói.

Referências

Documentos relacionados

Cada um desses perfis possui “drivers” e fatores de mo- tivação completamente diferentes, ou seja, talvez você esteja fazendo o possível para motivar alguns membros de sua

(pontuação) relacionada à qualidade de um sistema. Uma nota obtida num aspecto de usabilidade pode evidenciar que tal aspecto está sendo adequadamente atendido

Olá leitores, pensando mais em atividades para crianças o demonstre trás uma lista com diversos Jogos, e hoje são 8 “Jogos Educativos de 3 a 6 anos”, para trabalhar em sala de aula

Observamos que existem lacunas no conhecimento sobre como sintetizar resultados de estudos que utilizaram métodos qualitativos, assim como já acontece com estudos da

Controlador de alto nível (por ex.: PLC) Cabo da válvula Tubo de alimentação do ar de 4 mm Pr essão do fluido Regulador de pressão de precisão Regulador de pressão de

Que fizeste?» Jesus respondeu: «A minha realeza não é deste mundo; se a minha realeza fosse deste mundo, os meus guardas teriam lutado para que Eu não fosse entregue às

Informe dois dos motivos mais comuns para utilização de ponteiros em C... Descreva o conceito e as regras que as estruturas de dados

• Não Existe uma regra de inserção ou remoção fixa.. Fila de Impressão.. • Essa construção possui como base todo o aprendizado das estruturas de programação