Where do we stand?

Hello all, sorry for the lack of news lately.

People following the project are probally asking, what is happening, is it still alive? The answer for the second question is yes, and for the first one, a long one.

First of all, I need to tell how the porting to C++ is going. Most of the basic engine code (colision, players, npcs, sound, graphics) is already ported and working, but as this code is the oldest one, there are lots of room for improvement, even the already ported code have parts that will need to be rewritten in the future, as the code is ugly, full of hacks and hardcoded parts. It is important to remember that the project was started with a much smaller scope than the current one, so, having a code that was well written for future support was not an important matter – sorry for that. So, because of that, some parts as jump and gravity – that now uses acceleration and speed meaning a much better behavior – were completely redone, and with that, a lot of old and new bugs appeared.

This moves us to where we are now. I am dividing my time between fixing bugs and porting code such as the weapons menu, that by being much newer, are better modularized, and can be ported without any drastic chances, and much faster. I have no idea when the porting will be completed to get the same level of maturity and functionality from version 0.1 RC1, but I hope to create a beta release by the end of this month (november/2011).

Talking about released, another improvement we want, and need to make, is how we build the project for different platforms. Sadly, out prefered development IDE (Qt Creator) still have a very limited support for multiple toolkits, so we are probably going to use Code Blocks IDE for that. This is a must, as compiling in C++ uses much more objects and a single script or makefile is not enough in most cases.

Engine Status

Small sample of the current state of the game engine, written in C++, for Rockbot:

I would say that the port is done around 40%, but should progress fast from now on, sinse great part of the most complex logic and methods was already ported.

C++ is fun, but sometimes, is not

As vezes o C++ cria alguns problemas chatos. A idéia de uma linguagem com orientação a objetos é que cade peçado (classe/objeto) é uma entidade independente, mas que pode conter outras entidades. O problema começa quando você tem dois tipos de entidades diferentes, como NPCs e Players,q eu tem que fazer cálculos levando em conta a outra entidade, que ela no conhece. No caso do Rockbot, a classe game, possui duas listas, uma de players e outra de npcs, e cada uma destas, contém uma lista de projéteis, o problema é que cada elemento da lista precisa acessar a lista do outro tipo de elemento, para fazer verificações de colisão e proximidade. Vou ter que pensar muito bem em uma solução.


Press Start to Continue…

Hey folks, long time no see!

Sorry for the recent lack of new, but I was in the process of buying an apartment for myself and move to it, so since november things were a bit complicated, and when april arrived, all went crazy with fast moving to the new place, fixing several problems on it, and also, work was a bit tiring as I am in a kind of a new position that demands much brain effort. Long history short, now I’m living on my owned place, have started to relax a bit, and am trying to resume the work on Rockbot were it was left. The C++ port is doing well even if it is a lot of work; it is very fast so far, and as the code is much more logic, it will be simpler to program for, once the porting is finished. I hope to release some new version next month, but keep in mind that it is a complete new code, so a lot of fatures from the old one are still being reimplemented, and will be missing for a while.

See you guys soon!

Complete Rewrite


Taking the opportunity given by the file-format chances, we are starting the complete rewrite of Rockbot in C++. This decision was being matured a long time ago, and basically, is because:

  • confusion in keeping a ANSWI C code organized
  • good support for C++ in our chosen platforms to port
  • coding simplicity thanks to heritage, hash tables and vectors

It will take a time to adapt all again, but we are sure that this will lead to much faster development from now on.


Once our work now is for long, to implement a lot of stuff in the editor, we will post fwe news here in the game site blog, but stay tunned in our twitter (@RockbotGame), que is visible in the site’s right side, for often updates.


After a short period of rest and vacations, work on Rockbot is being resumed. We are working more in the structure and backend, so there is nothing new to show up, but the bug number have gone sky rocket. This situation should last a pair of months, but after that, we’ll have all the structure needed to finish last adjustments and release the final version.

Meanwhile, the artwork is being greatly improved, and we plan to start working on Dreamcast and Android ports, also adjusting image for centering image on resolutions that are bigger than default, but not high enought for scale 2x.

Goodbye Nintendo DS, and also 0.1

We decided to change our plans a little bit. As we started implementing things that were suposed to get only on later versions, and the game engine matured really well, instead of doing a series of zero-dot (0.X) versions, the next one will be focused in refactoring file-architeture in order to have much less hardcoded stuff, but not as much as initially planned. In short, some stuff we tought like manually adjusting initial X and Y for each NPC sprite, will not happen, as it adds too much complexity and have little advantages to the player/editor. What will make is a better separation of elements, like was already done for object list, meaning, instead of a map object list being part of the map file, a separated file will contain it, being a little more like a SQL database with relations. This will allow us to change file-format without having to redraw the entire map, meaning faster improvements in editor and game.

Finally, we set a new standard for minimal hardware requirements:

  • 320×200 display
  • 16 MB RAM
  • CPU must be fast enought to run game at 30 FPS

This means, the Nintendo DS port is now out. Sadly the hardware and most important, the SDK, is too weak to support a multi-platform game written in SDL. A native port is possible, but it will not be on our radar if someone else does not take over it, we will focus on pure SDL coding. For people that have a DS, I recomend to buy a Dingoo A320 or GA330, or hope for a decent SDL port/SDK for DSi/3DS.

0.1 Release Candidate 1 Released (Rock&Roll)

After more than two months, we finnaly bring to you a new version.

Go to our downloads section to get binaries for Linux, Ubuntu 10.04, Windows, Playstation 2 and Dingoo (Dingux).

The changelog from beta7 is:

  • corrigir problema de botões no menu (corrigir esquema de read_input e game_mode)
  • array de teclas deve ser INT e não CHAR
  • estrelas maiores devem ser cinza
  • melhorar “pisca” do player quando invulnerável (está muito rápido)
  • inimigos tem que ter um hit-timer para ficarem invencíveis por um segundo, como os players
  • direcionar debug para arquivo stdout.txt
  • spiked chain não deve ser destruída no hit
  • chefes tem que ter um hit-timer para ficarem invencíveis por um segundo, como os players
  • EDITOR: implementar fator de zoom
  • direcionar debug para arquivo stdout.txt
  • ajustar sensibilidade do análogo para PS2 e PC independentemente
  • implementar direcional digital no PS2
  • corrigir problema em que player muda tipo de animação no meio do pulo
  • refinar velocidade e gravidade do pulo
  • corrigir problema em “got weapon” onde não anda para o meio se passou dele
  • teleporte voltado para esquerda não está aparecendo
  • corrigir problema de pulo+espinhos depois de barreira
  • descobrir porque player fica invulnerável após morte (hit == 1?)
  • melhorar dano de espinhos
  • plataformas que se movimentam “derrubam” jogador para dentro das paredes
  • itens colocados via editor não estão funcionando corretamente
  • pílula só deve ser barulho se HP OK – pular sobre escadas ainda está dando problema
  • corrigir pequena discrepância na posição vertical da tela (área cinza)
  • implementar morte para 2 jogadores (player reaparece na mesma tela, junto do player que está vivo – não pode ter 2 mortos simultâneos)
  • (URGENT) corrigir scroll para 2 player mode
  • (SERIOUS) em 2 player mode, ESC não sai do jogo (PC)
  • criar flag LINUX, WIN32 e colocar PC (Linux e Windows) no projeto – ajuda com alguns ifdefs
  • tecla de quit deve funcionar apenas em PC e Dingux
  • (URGENT) objetos só testam player 1
  • (SERIOUS) na água, se esbarra em uma parede, volta a gravidade normal (devemos testar meio do player/terrain apenas)
  • menu deve ser chamado indepententemente para betabot e rockbot
  • (FEATURE) betabot must shot two projectiles at once
  • colorcycle deve ser aplicado também sobre nível 3 de tiles
  • implementar sistema de checkpoints (no loadMap, se a posição do mapa for < RES_W, é checkpoint) – na versão 0.2 isso será uma lista em stage
  • congelamento de tempo só pode parar um único chefe (magebot)
  • animação de hit deve seguir o player/npc
  • animações de hit devem sumir quando o player morrer ou trocar de tela OK – new gravity system more similar to megaman games
  • (SERIOUS) quando atingido, se está segurando o botão de pulo, está pulando automaticamente
  • add a animation state for transition between stand and moving called OK – add a “scroll lock” terrain type, similar to boss door, but without doors animation/sound
  • (URGENT) blocks are falling
  • to not block top and botton in colision. if player leaves by bottom, dies (holes).
  • fix door/scroll-lock right to left (infinite loop) OK – show 3rd level on “ready”
  • dying makes the music reset to apebot’s OK – (SERIOUS) stage intro dialog is showing again when player dies
  • must show player and NPC on boss dialog OK – (SERIOUS) moving left/right platform not working
  • (URGENT) crashing when loading a stage after beating a boss OK – teleporter is returning to the first used one always
  • implement teleporters return (for 8 bosses room in skull castle) OK – (URGENT) create a new type of terrain that is meant to be checkpoint
  • (URGENT): npc grtempaphics are using filename as key. this is wrong, as we can have different NPCs with same graphic file, must use name instead.
  • (URGENT) when beating a boss and dying, is returning to previous stage (must set checkpoint to new stage)
  • (see checkpoint terrain) – boss door 1 must save checkpoint – novos npcs: c) DONE – morcegos d) DONE – shooters de teto (atira uma na diagonal, uma reto) e) shooters laterais
  • allow user to define NPC direction in editor
  • different damages according to weapon type for bosses OK – (SERIOUS) ready is showing in the top-left after first blink in Dingux, similar problem for Destrin ship
  • (URGENT) fix jump on stairs
  • (URGENT) items placed with editor are not being shown in game (do not allow dot in the name)
  • (URGENT) player is heatting the head too soon
  • colorcycle is not working well in intro (have to add one extra colorcycle in the start with a very small timer)
  • user key reading in intro is too slow, so keypresses are being lost (had a bug with new/load screen not showing)
  • (SERIOUS) item colision check is bad (falling from jump item if a bit to the left) (removed reducer)
  • (URGENT) intro and dialogs are out of place (showing dynamite in spike)
  • only show weapons adquired
  • jump should not pass the screen maximun (y + ph > 4), but must keep the gravity calc
  • add jet and coil “you got”
  • TEST – jump is slow in Dingux: need to refactory in order to move the same amount (x axis), but faster (more yinc)
  • (URGENT) with the new jump gravity system, player if “kicking” in the water
  • fix star speed by using sdl_surfaces for stars/bg instead of fill_rect
  • (SERIOUS) check weapon damage in bosses, seems like it is not working
  • moving cursor in weapons menu should move only to the first available weapon, not empty positions
  • fix got weapon sound effect repeating
  • need small music for castle intro
  • check and improve color-cycling in the game intro (is failing in the dingux)
  • adjust timings in intro
  • IA para Apebot
  • ending (rockbot or betabot over train)
  • show boss energy
  • player2 energy must be placed under p1
  • thinner energy bars
  • (URGENT) [PS2] intro feeezes (probally due to colorcycle)
  • INITIAL_HP must be used in NPCs only for bosses
  • [PS2] the “you got” second line is showing trash
  • (URGENT) [PS2] teleporters are sending player to the wrong place
  • [PS2] trash appearing in credits
  • (URGENT/RE-TEST) [PS2] corrigir problema de botoes do player2 no PS2

The Nintendo DS port is still absent, and should be our focus for RC2.

We hope you enjoy and, if find any problem, tell us.


The bugfixing period is going well, and I would like to take the opportunity to explain why the absence of the Nintendo DS port. It happens that, during beta7 development, we expanded the tileset image size to fit the images for the new stages. We then found, sadly, that the DS cannot load a large file (large meant pixel wise, and not memory/filesize). The solution is to shrink the image again and refactor some maps, or separate, only for the DS, the tileset into two files. Sadly, the DS is a very bad machine to develop for, and so, the solution will still take a while.