Introducing KBlocks

Yesterday I finally managed to finish the features I have planned for KBlocks, and it is now living in kdereview. If everything goes as planned, it could be in kdegames for KDE 4.1.
And I realized I have never blogged about KBlocks until today! KBlocks is a single player falling blocks puzzle game that I started in Glasgow, during last year’s Akademy. One of the purposes of the game was to serve as a test ground for APIs and technologies introduced in libkdegames for KDE 4 and Qt4 as well. It has been very useful as a test application, where I could experiment with different methods of doing animation in QGV, usage of different types of graphics item (svg X cached pixmap), and more. As far as libkdegames goes, it uses almost all of the new convenience classes: KGameThemeSelector, KScoreDialog, KGamePopupItem, KGameDifficulty and KNewStuff2 (integrated into KGameThemeSelector.)
KBlocks also attempts to give more flexibility and power to the artists and theme designers, allowing the specification of game screen layout and other game parameters directly in the theme files. It also uses animation subtly, and includes classes (KBlockAnimators) that will be extended in the future to implement additional animation types that could be used by theme authors. Currently, only fade in and fade out are available. Some screenshots here, including the default theme and the black and white test theme downloaded with KNS2:

KBlocks
KBlocks theme selector
KNS2

I will post a step-by-step tutorial on creating KBlocks themes with Inkscape in a couple of days. If you are in a hurry, check the default_theme.svg and .desktop files at

http://websvn.kde.org/trunk/kdereview/kblocks/themes/

I hope it can serve as a good resource for getting into KDE games development and QGV. Not to mention the hours of fun I had “testing” it already 🙂

[pt_BR]
Ontem eu finalmente consegui finalizar minha lista de items para o KBlocks, que agora está disponível no módulo kdereview. Se tudo correr bem, o jogo vai fazer parte do módulo kdegames no KDE 4.1.
Aí percebi que eu não havia blogado a respeito do KBlocks até hoje! KBlocks é um jogo para um jogador do tipo “quebra cabeça de blocos que caem”, iniciado em por mim em Glasgow, na última Akademy. Um dos objetivos do jogo era servir como campo de teste para APIs e tecnologias introduzidas na libkdegames para o KDE4 e no Qt4. Tem sido bem útil para isso, pude tentar diversos métodos de fazer animação no QGraphicsView, como usar os diferentes tipos de itens gráficos (svg X pixmaps cacheados), e mais. Em relação a libkdegames, KBlocks usa quase todas as novas classes de conveniência: KGameThemeSelector, KScoreDialog, KGamePopupItem, KGameDifficulty e KNewStuff2 (integrada no KGameThemeSelector).
KBlocks também tenta dar mais flexibilidade e poder aos artistas e desenvolvedores de temas, permitindo a especificação do layout da tela de jogo e outros parâmetros diretamente nos arquivos de tema. Também usa animações sutilmente, e inclui classes (KBlockAnimators) que podem ser expandidas no futuro para implementar tipos adicionais de animação usáveis pelos autores de tema. Atualmente, apenas fade in e fade out estão disponíveis. Algumas telas estão disponíveis acima, incluindo o tema padrão e um tema preto e branco de testes baixado com KNS2.
Vou postar um tutorial passo a passo sobre como criar temas do KBlocks com Inkscape na próxima semana. Se estiver com pressa, veja os arquivos default_theme.svg e .desktop em

http://websvn.kde.org/trunk/kdereview/kblocks/themes/

Espero que possa servir como um bom recurso de aprendizado sobre como se iniciar desenvolvimento de jogos para o KDE e o uso do QGraphicsView. Sem contar as muitas horas de diversão que eu já gastei “testando” o KBlocks 🙂