rockbot

First build, history and graphics

Some time after submitting the code, we uploaded a windows build of the engine. It is very basic, contains some bugs and is just a proof of concept, but we would like to have feedback about it, so go grab it and comment about ūüôā

While Betabot is already very different than original graphics, Rockbot just looks like.. a mod over Megaman graphics. And that is what it is, for now. We are working hard to create character design to be distinct from the original Megaman series. First drafting in paper with pencil, then Aris creates Corel Draw versions (soon to be posted here) that we change until decide it is good enought and simple to adapt to pixels; then in the last part, we try to create pixel art based on the designs, and this is the part we have most difficulties and need help. But I hope by the end of the week, we will have a original version of its graphics, or at least a version moddified enought as betabot is.

History is a different animal. It is very easy task and we already have good ideas of things we can improve over the original megaman series:
– an intro stage like megaman x4 before selecting on of the 8 bosses
– dialogs in key parts. Like in megaman x series or megaman anniversary collection: other characters talk and explanin things
– tokyo 20xx ad enviroenment (based in the same kind of universe)
– bosses will talk, like recent megaman x games
Basically, while Megaman and Protoman protect the city (in the game they are cited as “heroes” because we won’t use the names), a young scientist called Canotus, inspirated by the creations of the benevolent Dr. Light, creates two fighting robots, called Rockbot and Betabot, to help out in small missions while the big-ones are occupied. But a new raid of enemies happen and the heroes are now missing, so Rock and beta have to take the crown and fight the bad guys in their place.

Estamos abertos (o código)!

Acabei de enviar todo o código do motor do jogo para o projeto no sourceforge.
A partir de agora, código, listas de lançamentos, bugs, tarefas e novas features serão concentradas no sourceforge. As notícias continuarão a ser publicadas aqui.

We are now open (source)!

Just dropped the whole game-engine source in sourceforge project.
From now on, source, releases, bug, TODO and features lists will be placed in sourceforge. news will still be placed here.
Our address in sf.net: https://sourceforge.net/projects/rockman-engine/

Creation process [Processo de Criação]

A quick note to show the boss creation chaotic process.

[Apenas uma pequena nota para mostrar o processo caótico de criação dos chefes de fase]

Lidando com bugs

[nota do editor: a partir de agora vou recriar os posts em inglês e depois português]

Eu estou atualmente no processo de resolver alguns problemas com o motor do jogo. O primeiro é scrolling [movimento da tela para acompanhar o jogador], enquanto ele foic orrigido e também ajudou a fechar alguns outros bugs [defeitos] feios no código encontrados durante a re-implementação do scroll, ele ainda carece de suporte a dois jogadores, sendo baseado ainda apenas em um. Agora devemos ter o cuidado de não mover a tela de forma que qualquer um dos jogadores ficar fora da tela. Ao passo que mover a tela horizontalmente não é um problema, Rockbot é um jogo de plataformas, então o movimento da tela é mais complexo.
Pense sobre o caso de entrar em uma sala de chefe: como pode um jogador entrar nela sem o outro junto?
Ou quando você sobe ou desce numa escada e a tela é movida completamente para mostrar outra área? Como fazer isto se um dos jogadores sequer está na escada?

A solução, é claro, é impedir um jogador sair da tela enquanto o outro ainda não estiver também na saída desta. Ou seja, para entrear em uma sala de chefe, ambos os jogadores deverão estar na frente da porta ao mesmo tempo. Ou em uma escada simultaneamente para poder entrar em outra área.

Outro problema √© que jogando apenas uma pessoa, quando voc√™ morre, retorna a um “ponto seguro”, normalmente no in√≠cio ou meio da fase. Em modo dois jogadores o jogador deve retornar para a mesma parte, mas n√£o no mesmo ponto, porque isto pode faz√™-lo morrer novamente – imagine morrer por cair em espinhos e voltar exatamente sobre os espinhos de novo e de novo. Uma solu√ß√£o bastante boa para este problema √© encontrada no jogo Chip & Dale de NES, onde o personagem que morreu volta flutuando pela tela em um bal√£o, e quando o jogador achar que est√° em uma boa posi√ß√£o, aperta o bot√£o e o personagem cai sobre a plataforma.

Apesar de adicionar muitos problemas, ter dois personagens simult√Ęneos adiciona um monte de divers√£o ao jogo, e √© uma caracter√≠stica usada t√£o poucas vezes em jogos que chega a ser vergonhoso. Bons tempos em que havia Battletoads, Chip & Dale e Contra ūüôā

Dealing with bugs

I’m now in the process to solve some problems with the engine.
The first one is scrolling, while it has been fixed and also helped closing other nasty problems in the code found while re-implementing the scroll, it still lacks support for two players, the scroll is still based in just one. Now, we must take care to not scroll the screen in a way any of the two players disappear from the screen. While in regular horizontal scroll this is not a problem, Rockbot is meant to be a platform game, so scrolling of screen change is more complex.
Think about the case of entering a boss room: how one player can enter it and the second one not?
Or when you go up/down a ladder and the screen is scrolled to show a new part of the stage. What to do that if the other player is not even in the ladder?

The solution, of course, is to now allow the player out of the screen while the second one is not also on the exit. Meaning that, to enter on a boos room, both must be in the door area, or to change area when on a ladder, both must be.. in the ladder!

Another problem is that in one player mode, when you die, you just return to a “safe spot”, in the start or middle of the stage. In 2 player mode, the player must return to the same part, but not in the same spot, because this can make him die again – imagine diying by falling in spikes, then returning above the same spikes again and again. A good solution to this problem is found in chip & dale for the NES, the player that died returns floating in a baloon, and press a button the the character is at a good position.

While adding so many problems, having two player simultaneous adds a lot of fun to the game, and is a feature used so few times in games that it is a shame. Godd times of Battletoads, Chip & Dale and Contra ūüôā

Game concepts

While development is a little slow (using my free time for other kind of fun things) I’ve started to think about the game design itself. While player characters are basically done (Rockbot and Betabot) we need to start to think about bosses, enemies, and the most difficult part in my opinion: the background.

[Rockbot first draft]

For bosses, I’ve started, in the best Megaman’s and Capcom’s tradition, a contest between my friends for ideas, concepts and design. While they have priority, anyone is welcome to participate, just post a comment in this topic.
Enemies and background need to have bosses decided first to get started, and I’m afraid drawing backgrounds will take a long time so for now, we’ll use very simple backgrounds, and eliminate as soon as possible the ones I’ve got from RPG Maker.

So, while the idea for this game is to have and editor, I’m focusing in harcoding most things, exept for the graphics and stages; so do not expect to create a game using it for a while, first we need to create a game for developing the engine with it. First version will be just a megaman-like game, not an editor like RPG Maker.

Better quality code

Most work being done in Rockbot lately is just the rewrite of old code. This is happening for several reasons, such as the original code being based on a RPG and not an action game, new need when engine envolves to support multiple players and projectiles, and finnaly because Rockbot is meant to be a kind of “learning” project, not only for me, but for people who will read the code, so I’m trying to make it more legible.

[TTF fonts in action]

As news, we have working support for SDL_ttf and using some old-school fonts, some fixes in sprites, an shooting. For now, the shooting does nothing more than draw the projectiles on the screen, but it already led to a lot of bug fixes because it showed some fails, and some optimization. Now I need to fix the scroolling, that is based on a really old code and concept, that I need to re-work from scratch.

[shooting]

All in all, it is a boring phase for the project now, but things are looking really bright for the future.

Player 2 – READY

[English]
Just commited to our internal subversion repository a big update including a new, improved and easier animation system and support for simultaneous two player game. Also, a first version of our custom made graphics, that still need some work, but already gives and idea of things to come. We still need to work on self-made background graphis to move the project to sourceforge.

[Rockbot on left, and Betabot on right]

There are some bugs that need to be worked right now, such as redrawning all sprites after a screen scrolling (not only the sprite that caused the scroll), better handling os sprite erasing to avoid copying parts of other sprites and leaving those on the underscreen, animation duration, lock screen scroll if one player os on the extreme left/right and much more.


[Português]
Acabei de enviar para nosso reposit√≥rio interno uma grande atualiza√ß√£o, incluindo um novo, melhorado e simplificado sistema de anima√ß√£o e suporte a dois jogadores simult√Ęneos. Tamb√©m uma vers√£o inicial de nossos gr√°ficos pr√≥prios, que ainda precisam de trabalho, mas j√° d√£o uma id√©ia do que est√° por vir. Ainda temos que fazer os gr√°ficos de fundo para podermos migrar para o sourceforge.
Existem alguns bugs que precisam ser trabalhados a partir de agora, tais como redesenhar todos os sprites quando mover a tela (n√£o apenas o sprite que causou o movimento), melhorar o ocultamento na tela para evitar copiar partes de outros sprites e deixar estas na tela de fundo,
duração de animação, trancar o movimento da tela quando um dos jogadores está na extrema esquerda/direita.

Progresso

Ontem fiz diversas corre√ß√Ķes que fizeram o jogo funcionar novamente em Playstation 2 – o PS2 tem diversas limita√ß√Ķes que precisam ser respeitadas, ent√£o eu fa√ßo o desenvolvimento no Linux e depois testo e arrumo no console, al√©m de ter acelerado bastante a velocidade depois que achei a resolu√ß√£o certa para a tela da TV (640×448).
Hoje comecei programando umas telas de introdu√ß√£o, e como o tempo est√° feio demais para sair de casa, planejo ainda adicionar suporte a dois jogadores simult√Ęneos na tela, o que j√° terminaria a base mais b√°sica do jogo. Os pr√≥ximos passos seriam adicionar suporte a tiros e NPCs, o que certamente vai exigir a reescrita de uma boa parte de c√≥digo.

[tela de título]
[introdução e história]
[jogo em ação]