Desenvolvendo games com Ruby e MiniGL: Parte 1 - preparação do ambiente
Olá, caros leitores. Sejam bem-vindos a essa nova série de posts sobre desenvolvimento de games! Mais especificamente, vamos falar sobre desenvolvimento de games com a linguagem de programação Ruby e a biblioteca MiniGL - criada por mim. :)
Para quem não conhece, Ruby é uma linguagem interpretada, fortemente orientada a objetos, e focada em ter uma sintaxe amigável, de fácil leitura e geralmente oferecendo várias maneiras de fazer uma mesma coisa, dando grande liberdade ao programador. Para saber mais sobre a linguagem e sua filosofia, visite o site oficial.
O objetivo destes posts será mostrar como é possível construir jogos 2D de maneira muito rápida usando Ruby e a biblioteca MiniGL. Para podermos entrar de cabeça no assunto, não vamos ensinar a linguagem Ruby desde o básico, mas vou explicando os conceitos conforme o código for aparecendo. Se você já for programador em qualquer linguagem orientada a objetos, não deve ser difícil de acompanhar. :)
Preparando o ambiente
Vamos começar pelo começo: como deixar sua máquina pronta para trabalhar com Ruby e MiniGL. Bom, vai depender de qual sistema operacional você usa.
Linux
Se você usa Linux (e se não usa, recomendo experimentar ;)), o processo consistirá em três passos.
1) Instalando o Ruby
Muitas distribuições Linux já vem com alguma versão de Ruby instalada, porém, a versão instalada no sistema tem a desvantagem de precisar de permissão de super-user para executar comandos como por exemplo instalação de bibliotecas (chamadas de “gems” no ecossistema Ruby). Assim, vamos fazer uma instalação para o usuário local usando o RVM - Ruby Version Manager.
Abra um terminal e execute os comandos a seguir:
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
\curl -sSL https://get.rvm.io | bash -s stable
Após a execução do segundo comando, será gerado um script, cujo caminho será mostrado na saída. O próximo passo é executar este script:
source <caminho do script gerado>
O interpretador Ruby será então compilado de maneira otimizada para sua máquina e sistema operacional. Terminada a execução, o Ruby estará instalado para seu usuário. Porém, se você executar o programa “ruby” no terminal neste momento, ainda será referenciada a versão do sistema. Para alterar isso, você pode alterar as configurações do seu terminal para rodar como um “login shell”, ou então executar o comando a seguir antes de começar a usar o Ruby:
source ~/.bash_profile
Feito! Agora, reabra o terminal, caso tenha optado pela alteração da configuração, e execute o comando “irb”. Este é um modo rápido de testar a instalação de Ruby, executando comandos da linguagem no próprio terminal. Dentro do irb, execute:
puts 'Hello, world!'
Deverá ser impressa a frase “Hello, world!” no próprio terminal. Se for o caso, a instalação do Ruby está funcionando. Para sair do “irb”, use Ctrl+D ou “exit”.
2) Instalando as dependências da MiniGL
A biblioteca (ou “gem”) MiniGL utiliza uma outra biblioteca como base, chamada Gosu, a qual depende de algumas bibliotecas nativas. Nas distribuições baseadas em Debian (como Ubuntu ou Linux Mint), você pode instalá-las com o seguinte comando:
sudo apt-get install build-essential libsdl2-dev libsdl2-ttf-dev libpango1.0-dev libgl1-mesa-dev libopenal-dev libsndfile-dev libmpg123-dev libgmp-dev
Para demais distribuições, você pode consultar instruções aqui.
Instaladas as dependências, execute:
gem install gosu
O comando “gem install” é responsável por instalar bibliotecas Ruby.
3) Instalando a MiniGL
Se a instalação da biblioteca Gosu estiver funcionado, para instalar a MiniGL você só precisará de mais um passo:
gem install minigl
E pronto! Seu ambiente Linux está configurado. :)
Windows
Agora, se você utiliza Windows, os passos são os seguintes:
1) Instalando o Ruby
Instale o Ruby usando o RubyInstaller. Baixe a versão mais atual aqui e execute o instalador, que é um clássico wizard do tipo “next, next, finish”. Pode manter todas as opções padrão.
Terminada a instalação, abra o prompt de comando, e execute “irb” para validar a instalação.
2) Instalando a MiniGL
Estando tudo ok, no prompt de comando execute:
gem install minigl
Será instalada a biblioteca Gosu (dependência) e em seguida a MiniGL. Terminado este comando, seu ambiente estará configurado.
Criando um programa MiniGL
Com o seu ambiente preparado, abra seu editor de texto favorito e vamos criar nosso primeiro programa MiniGL!
O primeiro passo é referenciar a biblioteca:
require 'minigl'
A seguir, referenciamos o namespace principal para poder utilizar as classes oferecidas pela biblioteca apenas pelo nome delas:
include MiniGL
Então, vamos criar uma classe que vai representar a janela do jogo.
class MyGame < GameWindow
# código aqui...
end
Para os não familiarizados com Ruby, o código acima declara uma classe de nome “MyGame” herdando a classe “GameWindow” (definida pela MiniGL).
Vamos definir o construtor desta classe, para inicializar a janela:
class MyGame < GameWindow
def initialize
super 800, 600, false
self.caption = 'Meu Primeiro Jogo'
end
end
A palavra-chave “def” é usada para declarar métodos. O método de nome “initialize” é tratado de maneira especial, correspondendo ao construtor da classe.
A chamada “super” é uma chamada ao construtor da superclasse. Os parâmetros passados são a largura da janela, a altura e um booleano indicando se a janela deve ser aberta em full screen. Em Ruby, os parâmetros passados para um método não precisam de parênteses delimitando.
Por fim, “self.caption = ‘Meu Primeiro Jogo’” está definindo o texto do título da janela.
Definida a classe e o construtor, vamos abrir a janela:
MyGame.new.show
Aqui, “MyGame.new” é a maneira de criar uma instância da classe MyGame. Dessa instância, chamamos o método “show”, que basicamente vai exibir a janela.
O código final do seu arquivo deve ficar assim:
require 'minigl'
include MiniGL
class MyGame < GameWindow
def initialize
super 800, 600, false
self.caption = 'Meu Primeiro Jogo'
end
end
MyGame.new.show
Agora, salve o arquivo como “game.rb”, abra o terminal ou prompt de comando, navegue até a pasta onde salvou o arquivo com “cd”, e execute:
ruby game.rb
Deverá ser aberta uma janela de 800 por 600 pixels, preenchida de preto. Se isso acontecer, quer dizer que a MiniGL está funcionando e você está pronto para começar a desenvolver games!
Por hoje é isso, não perca o próximo post da série, quando vamos começar a programar, de verdade, um jogo.
Até a próxima!