rockbot

Intro Screen

It is still a bit sharpen, but it is great to have at last one decent intro screen ūüôā

Development is not dead [O desenvolvimento n√£o morreu]

Things are moving a bit slow in development, result of new year holydays, but little by little it are being resumed. Meanwhile we had the following improvements:
  • started the changes in Rockbot graphics; he now have larger arms and feets with a thinner face. steel remembers Rockman/Megaman, but is not a simple ripoff anymore
  • corrected again the bug that made shots not disapearing in left side
  • created a small stage with simple graphics for testing
  • created a test NPC
  • created structs to contain data about players and NPCs, like hit points and name
  • created graphic of one more boss: Daisybot, a girl who shots flowers
————————————————————————————————-

As coisas andam um pouco devagar no desenvolvimento, resultado das festas de ano novo, mas ao pouco v√£o sendo retomadas. Enquanto isso tivemos as seguintes melhorias:

  • in√≠cio da altera√ß√£o no gr√°fico do Rockbot: ele agora tem os bra√ßos e pernas mais grossos e rosto mais fino; ainda lembra o Rockman/Megaman, mas n√£o √© mais uma simples c√≥pia.
  • corrigido novamente o problema com os tiros n√£o desaparecendo na esquerda
  • criada uma pequena fase com gr√°ficos simples para testes
  • criado NPC para teste
  • criadas estruturas para conter informa√ß√Ķes como nome e pontos de vida de jogadores e NPCs
  • criado gr√°fico para mais um chefe: Daisybot, uma garota que atira flores

carregando…

Semana passada eu descobri que a SDL foi portada para o Nintendo DS, então eu pensei que seria legal portar o Rockbot para ele Рeu adoraria recriar o Rockman 0 e 10 para jogar no meu DS já que a Capcom decidiu não portá-lo. Na verdade, a primeira razão para eu decidir criar todo o projeto Rockbot foi por estar brabo com a Capcom que decidiu não portar um jogo que parece de NES para plataformas antigas como o Playstation, e eu não tenho dinheiro ou desejo de comprar um console de nova geração.
Mas bem, uma vez assentada a idéia, eu tinha que construir todo o SDK do DS e as bibliotecas SDL, o que se mostrou um desafio, porque a SDL foi baseada em uma evrsão antiga do kit de desenvolvimento e tive que corrigir alguns bugs antes de ter um ambiente funcional para compilar alguns testes. Uma vez terminado, eu teria que diminuir o uso de memória de 46MB para menos de 4MB, que é o limite do Nintedno DS.

A√≠ vem a parte divertida, a maioria dos programadores de hoje s√£o simplesmente pregui√ßosos de otimizar o c√≥digo e usam o quanto de mem√≥ria conseguirem, e frequentemente as pessoas acham que os jogos mais legais s√£o os que as obrigam a comprar um computador inteiro novo, ent√£o podem ter um PC super modificado com luzes de laser interno e resfriamento a √°gua e outras tolices frescas. Felizmente, os videogames n√£o est√£o infestados por essa moda de atualiza√ß√Ķes frequentes. Ent√£o, a primeira coisa a fazer √© usar vari√°veis menores, j√° que estou lidando com valores abaixo de 64 mil, todos os inteiros foram convertidos para short. O pr√≥ximo passo foi limitar o uso de cores a 256, usando paleta web-safe, o que no fim das contas √© legal, por parecer mais com os jogos antigos de NES. Finalmente, n√£o d√° para carregar toda uma fase na mem√≥ria de uma vez, pois √© isso o que mais usa mem√≥ria, j√° que o n√ļcleo em s√≠ √© bem pequeno. Ent√£o, eu reduzi o tamanho do mapa, e agora o jogo usa cerca de 5.1MB de RAM!

Mas nós precisamos de mais, por isso eu planjeo usar os mesmos truques que jogos de NES antigos usavam: quebranco a fase em partes. Lembram-se como era lenta a transição de tela quando você estava em uma escadaria, ou alguns jogos tinham uma sala de chefe no meio? A razão é que, neste momento, vocês está liberando um mapa e carregando outro. Assim, acredito que será possível reduzir o uso de memória para 3MB.

O passo seguinte é aprender a editor os makefiles dos exemplos de SDL para DS para recompilar o Rockbot para o Nintendo DS e testar. Mas como o fim de ano está próximo, por enquanto planejo trabalhar em gráficos.

Outras notícias:
Рvocê pode sair da introdução pressionanto start
Рcomeçado trabalho em um teileset para montar um cenário
– feito um build teste para PS2, funciona bem, mas ainda tem problemas com delay/waiters.
РO PS2 precisa de ajustes para carregar os drivers necessários de acordo com a unidade de onde o programa está rodando, e também setar o FILEPATH com ela
Рprecisa ser refeito o sistema de tempo para frame de animação- por alguma razão eu perdi parte do código
– devemos implementar escadarias e “teleporte” de um mapa para outro
– implementar som usando SDL_mixer e doomsdl_mixer (PS2)

loading…

Last week I found that SDL was ported to Nintendo DS, so I tought that it would be a great thing to port Rockbot to it – I would love to recreate Rockman 9 and 10 to play on my DS once Capcom do not port it. Actually, the first reason I decided to create the whole Rockbot project was because I was angry Capcom did not wanted to port a game that is NES like to old platforms such as Playstation 2 and I do not have money, nor desire, to buy a new generation console.
But well, once settled the idea, I had to build all the DS SDK and SDL libraries, that showed to be a chalenge, because the SDL port was to an old version of the devkit and I had to fix some bugs before having an working dev enviroenment to build some tests. Once it was done, phase two started, I have to diminish memory usage from 46 MB to less than 4MB, that is Nintendo DS limit.

Now comes the fun part, most programmers today are just lazy to optimize code and take as much memory as he can get, and often people find that the good games are the ones that need a complete upgrade on your system, so you can have and ultra modded PC with internal lazer lights, water cooling and other pimp foolishes. Gladly videogames are not plagued by this upgrade-often fashionism. So, first thing is to use smaller variables, as I’m dealing with values under 64k, all integers were converted to short. Next step is to limit color usage to 256 colors, using web-safe palette, that is nice because looks more like old NES 8 bits style. Finally, we can’t load the whole stage in memory, because it is the thing that uses more space, as the program core footset by itself is very small. So, I’ve lowered the size of the map, and now the game uses only just around 5.1 MB in RAM!
But we need more, so I plan to use the same tricks old NES games used: breacking the stage in parts. Remember how slow was the scrolling when you changed screens on a starircase? Always wondered why some games had a middle-boss room? This is why, in that moment, you just freed one map, and loaded a new one. So, I believe soon, we’ll be able to reduce the memory usage to 3MB.

Next step is learn how to edit the makefiles from SDL+DS examples to compile Rockbot to Nintendo DS and test. But as holidays are near, for now I’ve work on intro and graphics.

In other news:
– you can skip intro by pressing enter
– started to work on a tileset to build a scenary
– made a build to test PS2, works OK but still have bugs with delay/waiters
– PS2 needs adjustments to load necessary drivers according to the unity is is running from, also, set the FILEPATH with it.
– needs to re-work the animation frame delay – for some reason I’ve lost part of code
– must implement staircase and map “teleport” to another map
– implement sound using SDL_mixer and doomsdl_mixer (PS2)

Editor Update

Iniciei o trabalho na ferramenta de edição de NPC. Ela será mais complexa no futuro, já que o usuário terá que adicionar cada frame gráfico, mas atualmente é bastante fácil pois não possui suporte a animação de NPCs.

Started to work on the NPC editing tool. It will be kind of complex in the future, as the user will have to add each frame, but currently it is fair simple as it does not support animation for NPCs.

[editing a NPC]

Editando

Durante o fim de semana, foram feitos os √ļltimos retoques no editor b√°sico, que j√° conta com boa parte das funcionalidades do editor antigo e no motor do jogo para suportar o novo formato de mapas.

Uma desvantagem do novo formato, √© ao contr√°rio de id√©ia inicial de termos um arquivo por mapa, que decidimos por ter um n√ļmero fixo de est√°gios e tamanho de mapas unificado em um √ļnico arquivo, para simplificar a programa√ß√£o do sistema. O problema reside exatamente no tamanho, um arquivo de jogo possui 34 Mega bytes, o que n√£o √© exatamente um problema hoje em dia, mas ainda desejamos diminuir, se poss√≠vel, este valor, usando compress√£o via zlib ou outras alternativas.

O que est√° faltando s√£o ferramentas como desenhar uma linha ou fazer preenchimento com um tile, para o usu√°rio n√£o cansar de clicar o bot√£o do mouse. Al√©m disso temos que come√ßar a organizar e implementar suporte a objetos mais complexos como NPCs, objetos m√≥veis (implementando um segundo n√≠vel de tiles) e outras caracter√≠sticas para poder finalmente produzir um pequeno jogo na vers√£o 1.0.

Editing

During the last weekend, some retouchs were made into the basic editor tool, that already have a good part of the functionalities from the old editor, and in the game engine to support the new maps format.

One disavantage of the new format is that, contrary to the initial idea of have one file for each map, that we decided to have a fixed number of stages and unified map size in just one file, to make the system programming simpler. The problem is that the size of the file containing the game is now 32 mega bytes, that is not a big problem nowadays, but we still want to lower this value, if possible, using compression with zlib or by using some other alternative.

What is missing are tools like drawing a line or filling with a tile, so the user does not get tired of clicking the mouse button. Besides that, we have to start to organize and implement support to more complex objects like NPCs, movable objects (implementing a second tile level) and other characteristics in order to be able to, at last, create a small game on version 1.0.

Pixels

I am no good ate creating pixel art, but slowly we get there:
Eu n√£o sou muito bom em criar arte em pixels, mas devagar chego l√°:

[Ape Bot and Seahorse Bot]

In other news, I’m rethinking the editor plans. Ideally it should be written in C++ with Qt to be like a normal Desktop app, but more and more I’m kind of thunking the task ahead is too big to fit our needs. So I’m back to think about developing the editor also using SDL as it is simpler and keeps the dependencies low for the whole project. We lose some ease of use, but gain in not loosing time with something that is not the focus of the first release.
Em outro tópico, eu estou repensando os planos para o editor. Idealmente ele deveria ser escrito em C++ com Qt para parecer um programa desktop normal, mas estou pensando cada vez mais que a tarefa pela frente é muito grande para caber em nossas necessidades. Então, volto a pensar em desenvolver também o editor em SDL, já que é mais simples e mantém as dependências do projeto como um todo, baixas. Perderemos alguma facilidade de uso, mas ganhamos em não perder tempo com algo que não é o foco do primeiro lançamento.

Primeiro build, história e gráficos

Um pouco ap√≥s enviar o c√≥digo, n√≥s fizemos o upload de uma build para windows do motor do jogo. √Č bem b√°sica, cont√©m alguns bugs e √© apenas uma prova de conceito, mas n√≥s gostar√≠amos de ter retorno sobre seu funcionamento, ent√£o peguem uma c√≥pia e comentem aqui ūüôā

Enquanto o Betabot j√° √© bem diferente dos gr√°ficos originals, o Rockbot ainda parece.. uma simples modifica√ß√£o dos gr√°ficos do Megaman. E √© isso que ele √©, por enquanto. N√≥s estamos trabalhando duro para criar o design de personagens bem distinto da s√©rie Megaman orginal. Primeiro desenhando a m√£o com l√°pis, ent√£o a Aris cria vers√Ķes no Corel Draw (em breve postaremos aqui) the modificamos at√© achar que est√° bom o suficiente para para ser adaptado para pixels; ent√£o vem a √ļltima e mais dif√≠cil parte para n√≥s e onde precisamos de ajuda, onde tentamos criar arte em pixels baseada nos designs. Mas eu espero ter at√© o final de semana, uma vers√£o original dos gr√°ficos do Rockbot, ou pelo menos uma vers√£o bem alterada, como o Betabot.
A hist√≥ria √© um tipo de animal bem diferente. √Č uma tarefa bem f√°cil e que n√≥s j√° temos boas id√©ias de coisas que podemos melhorar sobre a s√©rie original:
– uma fase inicial antes da tela de sele√ß√£o dos oito rob√īs
Рdiálogos em pontos chave; como na série X ou anniversary collection em que outros personagens explicam algo
Рambientação no mundo fictício de tokyo 20XX AD
Рos chefes vão falar, como nos recentes jogos da série X
A hist√≥ria ocorre basicamente, quando Megaman e Protoman protegem a cidade (no jogo eles s√£o chamados de “her√≥is” porque n√£o vamos usar seus nomes), um jovem cientista chamado Canotus, inspirado pelas cria√ß√Ķes do benevolente Doutor Light, cria dois rob√īs de combate chamados Rockbot e Betabot, para ajudar em pequenas tarefas enquanto os “grand√Ķes” est√£o ocupados. Mas um novo ataque de inimigos ocorre e os her√≥is desapareceram, ent√£o Rock e beta ter√£o que tomar a coroa e lutar com os bandidos em seu lugar.

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.