Monthly Archives: December 2009

jRuby e Swing

Há algum tempo que eu estou querendo aprender a linguagem Ruby. Segundo dizem as artes do aprendizado, deve-se sempre partir de algo conhecido para algo não conhecido que queira-se aprender. Então resolvi começar com jRuby, implementação do Ruby em Java, que roda na JVM. Usando Swing, a SDK padrão do Java para interfaces gráficas.

Criei esse joguinho da velha (jrVeia) bem simples, que na verdade eu nem terminei ainda. Na verdade não mexi mais nele depois que eu comecei. Falta apenas a verificação do tabuleiro. Pretendo também, se der, implementar uma camada de rede, para poder jogar via direct ip (igual eu fiz com o VeiaOnline).

Mais detalhes: jrVeia.

Como já disse, comecei com esse joguinho só pra me familiarizar com a sintaxe do Ruby, uma vez que já conheço um pouco de Swing. Na verdade nem sei qual é a real aplicabilidade de linguagens interpretadas a jogos. Vou estudar mais isso, mesmo porque pretendo participar do Indie Bay Competition com Ruby e Gosu. Pode deixar que logo logo eu compartilho aqui o que eu aprendi.

Só para ilustrar o tópico, vou mostrar um código bem simples pra criar uma janela com jRuby e Swing:

# Diz que vamos usar as classes do Java
require 'java'

#
# Podemos usar puro Ruby na JVM, ou interagir completamente com classes em Java! \o/
#

# A classe principal, que herda da classe JFrame, exatamente como fazemos no Java...
class Window < javax.swing.JFrame

   # Nosso construtor
   def initialize

      # Super Man - Nenhuma novidade aqui ^^
      super("Hello World")

      # Aqui muda, você pode chamar os métodos com o mesmo nome em java
      # setSize, ou então chamar pelo padrão Ruby, set_size, que ele
      # irá executar o método do mesmo jeito!
      set_size(300, 300)
      set_visible(true)
      set_default_close_operation(javax.swing.JFrame::EXIT_ON_CLOSE)

      # Vamos adicionar um textinho na janela
      add(javax.swing.JLabel.new("Hello World - by CrociDB"))
   end
end

# Aqui está o nosso &quot;método main&quot;
janela = Window.new

Só para vocês terem uma idéia da facilidade. Não esqueçam de dar uma olhadinha no código do jrVeia. E aguardem, logo sai um post açucarado sobre Gosu e Ruby. Até lá. :)

Google Buzz

E lá se foi a Ludum Dare 16…

Esse fim de semana passado aconteceu a Ludum Dare 16. Competição de games de 48 horas que acontece várias vezes por ano. Eu, infelizmente, não pude participar. Entretanto tentei acompanhar (não em tempo real) vendo os posts da galera.

Essa edição da competição teve 121 jogos cadastrados, e o tema foi Exploration (exploração). O bacana desse concurso é que muita gente participa, conversam em tempo real no IRC, postam no blog com suas atualizações, o que comem e fazem durante a competição e no final ainda escrevem postmortem’s e exibem timelapses do desenvolvimento. Acho que isso eu já falei aqui, mas que seja, eu vim mesmo foi mostrar alguns materiais que me chamaram atenção e eu resolvi compartilhar.

É bom ver que bastante gente resolve fazer o game com alguma ferramenta/linguagem/api que ainda não domina com o pretexto de aprender. Isso é algo que eu não sei se faria antes, ainda mais porque o tempo é limitadíssimo, porém talvez seja até interessante. Talvez eu faça isso na próxima Indie Bay Competition, que começa dia 8 de Janeiro, com Ruby e Gosu, que eu to tentando aprender (logo logo tem post sobre isso).

(Dividi o post por aqui para não deixar a página principal muito pesada com tantos vídeos, clique aqui para ver o Post Inteiro)

read more »

Google Buzz