SDL: Uma Ferramenta de Aprendizado?

1. Experiência Inicial com a engine SDL
Com a inauguração do Programa de Bolsas de Iniciação Científica 2013 [1] – BicJr. – os novos integrantes do Grupo de Programação de Jogos Eletrônicos do Campus Contagem (GPJE-CC) ficaram encarregados de explorar os recursos fornecidos pela engine de games Simple DirectMedia Layer (SDL) [2].

SDL é uma biblioteca de desenvolvimento multimídia e multiplataforma que fornece uma interface simples para gráficos/sons (e que possibilita a escrita de games). Manipula e possui acesso a áudio, teclado, mouse, joystick, entre outros recursos; além de possuir várias bibliotecas de extensão para funcionar em conjunto e obter melhorias. Inicialmente a biblioteca foi escrita em C, mas atualmente funciona com C++ e possui ligações com Python e C# [3].

No primeiro momento, a equipe [4] - até então formada por Adriane Gomes, Aline Torres, Victor Hugo e Jonathan Douglas – dedicou-se ao estudo do conteúdo indicado pelo professor Alisson Rodrigo dos Santos. O material consistia em minicursos [5] com abrangência inicial e tutoriais de instalação da Biblioteca [6]. Com a finalização do estudo a equipe obteve uma boa noção do que se tratava a engine. O próximo passo era a instalação - que para os estudantes foi realmente um “bicho de sete cabeças”.

Com o avanço dessa etapa - instalação finalizada nos computadores dos integrantes do GPJE-CC, os alunos Adriane Gomes, Aline Torres e Jonathan Douglas criaram uma apresentação contendo uma introdução a cerca da SLD e um tutorial bem simples de sua instalação (disponibilizado para os alunos da turma de Informática do 2° ano[7].

2. O primeiro uso da SDL - o Jogo Squash

Jogos eletrônicos são de grande importância para pessoas que são iniciantes na programação. E, como sabemos, esses produtos atualmente vem dominando o mercado de entretenimento e estão sendo vistos como oportunidade de trabalho.

O Brasil é o país onde o mercado de jogos eletrônicos mais cresceu em 2012. As vendas movimentaram R$ 1,6 bilhão, crescimento de 60% em relação a 2011. Além disso, o país é o quarto maior consumidor de jogos do mundo. Com esse mercado, as previsões para quem trabalha na área também são animadoras.”, em artigo do site << http://g1.globo.com/jornal-hoje/noticia/2013/07/mercado-de-jogos-eletronicos-cresce-no-brasil-e-gera-empregos-na-area.html >>.

Nesse contexto, o professor Alisson Rodrigo dos Santos passou como tarefa para os alunos de Informática do 2º ano do Campus Contagem a programação simplificada do Jogo Squash [8]. Com foco no uso da programação orientada a objetos juntamente com o uso da biblioteca SDL – que facilitou o uso de imagens, sons e interação com usuário. Por parte dos alunos foi necessário o conhecimento de classes, objetos e inclusão e uso de bibliotecas. O jogo consistia em uma barra de controle para o usuário, uma bolinha e duas mensagens:

Fonte: Arquivo Pessoal
No primeiro momento, a ideia de programar um game pareceu um tanto quanto assustadora para mim – até então acostumada com telas pretas que requisitavam dados do usuário através do elemento scanf(). Porém, apesar da inquietação inicial, o trabalho visava o pleno desempenho dos alunos no uso dos conceitos tratados em sala de aula.

De forma geral, as maiores dificuldade dos alunos ao longo do trabalho consistiram na instalação da engine, na criação do algoritmo inicial – uma vez que não estavam acostumados a pensar na lógica básica de um jogo - e na orientação a objetos.

Para a realização do trabalho os grupos envolvidos tiveram a necessidade de pesquisar e utilizar as dicas de programação sugeridas pelo professor e trocar informações entre colegas de classe – o que facilitou a interação dos estudantes -, além de utilização de tutoriais disponíveis na internet e tempo extraclasse.

Cada grupo criou e utilizou uma estratégia de programação diferente: algumas equipes decidiram inicialmente instalar as bibliotecas de extensão (SDL_Image, SDL_ttf e SDL_Mixer), enquanto outras as foram instalando de acordo com a necessidade do jogo.

Os códigos gerados pelos estudantes para este trabalho foram escritos no compilador Code::Blocks. E outra ferramenta utilizada por todos e essencial na criação do jogo foram os tutorias (organizados em Lições, com explicações claras e fornecimento de um código fonte) fornecidos pelo site Lazzy Foo' Productions, com o objetivo de auxiliar os programadores a iniciarem programação de jogos. São tutorias simples que utilizam a mesma linguagem de programação utilizada na grade curricular do CEFET-MG, C++ - também considerada a linguagem de programação padrão da indústria dos games.
O site Lazzy Foo me auxiliou bastante, já que possui dificuldades – em um primeiro momento - de encontrar na internet a documentação da Biblioteca SDL”, diz o estudante Jonathan Douglas.
No geral, apesar das dificuldades, os alunos tiveram a capacidade de concluir a tarefa e eu, como aluna e participante do projeto, posso assegurar a satisfação em ver os games prontos e o avanço do conhecimento em programação da turma.
Aprendi bastante nesta primeira experiência real de criar um jogo, além de aprofundar meus conhecimentos em programação orientada objeto – que é a base da indústria dos jogos”, relata Júlia Catarina.
 3. O segundo projeto SDL - recriação Atari

Ainda nesta temática – de utilizar a Biblioteca SDL e com foco em programação orientada a objetos, o professor Alisson Rodrigo apresentou outro projeto aos alunos: “TP-ATARI – RECRIAÇÃO DE UM TÍTULO ATARI” [9]. O programa criado deveria consistir em uma recriação de um título do antigo console de vídeo games Atari, ou outro console mais novo. 
A Atari, Inc. é uma das mais antigas empresas de produtos eletrônicos, sendo considerada por muitos, uma das grandes responsáveis pela popularização dos videogames. A empresa é muito conhecida pelos títulos arcade, contudo, alguns jogos recentes também contam com muitos fãs, como o caso da franquia Driver, Dragon Ball Z e RollerCoaster Tycoon.” (em artigo no site techtudo.com.br)
Ao meu ver, foi vantajosa a liberdade fornecida na escolha do jogo a ser recriado, uma vez que tornou a atividade mais prazerosa. 

Por se tratar do segundo projeto com a engine, foi notável as facilidades encontradas como a experiência: melhor adaptação do loop do jogo, a instalação das bibliotecas de extensão já estarem concluídas, melhor noção de onde buscar informações e tutorias para a realização da atividade.

Foi perceptível que as dificuldades ficaram concentradas ainda na programação já que, com o passar do tempo o professor vem nos ensinando mais conteúdos e dificultando as tarefas. Cada equipe teve uma dificuldade especifica, pois eram games diferentes. Mas no geral eram em organizar estruturas de dados, utilizar diversos formatos de mídia, montar a interface gráfica voltada para o usuário, colisão e passagens por parâmetro.

Na entrega, além do código fonte e relatório - que descrevia o processo de desenvolvimento, o professor requisitou a criação do instalador do jogo. Que foi uma forma de facilitar a divulgação do nosso trabalho, em fóruns, para amigos, entre outros...

Apesar da dificuldade e estranhamento inicial, enfrentados por todos, estas tarefas foram muito produtivas. Os jogos são um dos maiores exemplos de aplicação da programação, e mais presente na vida dos jovens também. Foi interessante ter uma noção básica de como é o desenvolvido um software tão utilizado para a nossa diversão e lazer.

Comparativo entre o jogo Skiing e sua recriação, desenvolvida pelos alunos Victor Theles e Agnes Rabelo:
"Para mim foi muito importante este trabalho escolar, uma vez que tenho bastante interesse na área, pois confirmou que esse é o rumo que pretendo seguir. Além de ser a confirmação que com o meu conhecimento atual a cerca de programação tenho capacidade de criar jogos eletrônicos", diz Jonathan Douglas.
Instaladores dos Jogos criados pela turma de Informática, 2º série, Centro Federal de Educação Tecnológica de Minas Gerais, Campus XI (CEFET-MG):
 
 
 

REFERÊNCIAS CONSULTADAS:
[1] Projeto. Disponível em: <http://gpjecc.blogspot.com.br/p/blog-page_9368.html>
[2] SDL - Simple DirectMedia Layer. Disponível em: <http://www.libsdl.org/>
[3] Documentação Wiki - Simple DirectMedia Layer. Disponível em: <http://wiki.libsdl.org/FrontPage>
[4] Equipe. Disponível em: <http://gpjecc.blogspot.com.br/p/blog-page_7113.html>
[5] RGB, Diogo. Portal C++. Disponível em: <http://diogorbg.blogspot.com.br/2008/04/mini-curso-programao-de-jogos-2d-com.html>
[6] Lazy Foo' Productions. Disponível em: <http://lazyfoo.net/SDL_tutorials/>
[7] Tutorial de instalação e uso da SDL. Rodrigo, Alisson. Disponível em: <http://gpjecc.blogspot.com.br/2013/08/tutorial-de-instalacao-e-uso-da-sdl.html>
[8] Rodrigo, Alisson. Especificação - Jogo Squash com SDL. Disponível em: <http://gpjecc.blogspot.com.br/2013/08/especificacao-jogo-squash-com-sdl.html>
[9] Rodrigo, Alisson. TP-ATARI - Recriação de um título do ATARI. Disponível em: <https://dl.dropboxusercontent.com/u/54995170/TP-Atari.pdf>

escrito por Adriane Gomes

Postar um comentário

0 Comentários