Yep, still working

[lang_pt-br]Nós ainda estamos trabalhando no beta4, a falta de notícias aqui no site é apenas em razão de que estou de férias, por isso me concentro em aproveitá-la ao máximo, para descansar, me divertir e programar, mas temos várias novidades.

A implementação na game engine do Rockbot está indo muito bem, mas decidimos passar algumas funcionalidades previstas no beta4 para o beta5, encurtando um pouco o tempo de desenvolvimento para tentar fazer um beta por mês, por isso teremos mais versões antes do lançamento da versão final, já que cada beta deverá ter menos coisas. Esta decisão tem como objetivo manter o foco nas funcionalidades realmente necessárias e manter o código mais estável entre cada versão, com correções de bugs frequentes. Mas enfim, algumas das novidades já implementadas na engine são:

  • color-cycling: esta técnica permite criar animações ao alterar as cores da paleta da tela
  • nível 2 de tiles no mapa: permite criar tiles com partes transparentes
  • nível 3 de tiles no mapa: estes aparecem por cima do jogador, como nuvens, postes, etc.
  • escadarias
  • troca de tela: dividimos os mapas em peças menores, e quando o jogador chega em um ponto, um novo mapa é carregado
  • leitura de joystick por eventos: acelera bastante a versão de PS2
  • correção da SDL_Timer: permite usar basicamente os mesmos tempos de animação em PC e PS2
  • projéteis (tiros) usando gráficos
  • indicação de quando um jogador está trancando o movimento (troca de tela) do outro

Está faltando ainda terminar a implementação de carregar os npcs definidos pelo editor. Além disto, o editor em sí tem muitas funcionalidades que ainda precisam ser implementadas, como melhor edição de NPCs, Zoom, definir ponto de início para o jogador 1 e 2. Ele irá passar a ser distribuído junto com o jogo neste próximo beta, mas tenha em mente que jogos criados em um beta não necessariamente funcionarão no próximo; apenas quando a versão final for lançada teremos uma estabilidade no formato de arquivos do mapa.

É isto, continuem nos acompanhando na jornada rumo a um jogo muito legal para todos os fãs de megaman por aí :)[/lang_pt-br]

[lang_en]We are still working in beta4, the lack of news here in the site, is just becaquse I am in vacation, so I focusing in enjoy it at it’s best, to rest, have fun and program, but we have several news anyway.

The game engine implementation of Rockbot is going very well, but we decided to pass some functionalities from beta4 to 5, making the development time shorter, in a way to try to make a beta each month, that is way we’ll have more beta versions before the final version launch, once each beta will have less stuff on it. This decision comes with the goal to keep focus in the functionalities that we really need and keep the code more stable between each beta, with bug fixing more often. But in resume, some already implemented features are:

  • color-cycling: this technique allow us to create animations by swapping colors in palette
  • tileset level2: allow to create tiles with transparent parts
  • tileset level 3: those are shown over players, like cluds, trees, etc;
  • staircases
  • screen swapping: we divide the maps in smaller pieces, and when the player reaches a point, a new map is loaded
  • joystick reading using events: makes PS2 version much faster
  • correction in SDL_Timer: allow us to use same timings from PC version
  • projectiles (shots) using graphics
  • indication of when a player is holding the other one (screen swap)

We are still missing finish the implementation of loading NPC defined by the editor. Besides that, the editor itself have lots of things that still need to be worked, like better NPC editing, Zoom, setting the starting point for P1 and P2. It will be distributed from the next beta with the game, but keep in mind that games made with a beta, will not meant to be compatible with the other ones; onely when the final version is released we’ll have file format stability.

That’ s it, keep following us in the journey to a very cool game for all megaman fans out there :)[/lang_en]

Beta 4 kickoff

[lang_en]

In this last weekend, work on beta 4 has been started with great success. The new colision detector and movement handler are almost completed, and work much better than in beta3, and the code is cleaner and better too, I dare to say that there is only one bug that is very hard to reproduce.

Also, we started testing sound, it works pertectly in Linux, but will need some work on Playstation 2 because our current implementation of key/joystick reading (we are not using threads at this point of development) makes the music glitch, probally we need something to read input less often or put it on a thread.

Another thing was that we finally fixed a but that made the game goes freeze. It was just that using short int for a timer is not a great idea, and after passing the 32k, the number goes negative and our timer testing, just were not released.

So, here is the list of planned features for beta 4:

  • Fix beta 3 bugs:
  • a) projectiles are clearning the screen in the wrong position (above) – DONE
  • b) sometimes the game freezes (animation still run, but player do not move) – DONE (CheckDelay)
  • c) colision detection have a bug that allows player to “walk in the air” (1) – DONE
  • d) player can fall to the left side of screen (1) – DONE
  • (1)revise whole collision detection – INWORK
  • try to hack SDL to disable bilinear filter (not possible currently) – CANCELLED
  • fix SDL_Timer (see http://forums.ps2dev.org/viewtopic.php?t=2842&highlight=clock+tick) – DONE
  • (2)fix SDL_mixer (see http://forums.ps2dev.org/viewtopic.php?t=9798&highlight=sdlmixer)
  • commit SDL changes to ps2dev.org
  • music (2) – DONE
  • sound effects (2)
  • editor: allow user to set p1 and p2 starting position (must be in same screen area – MAX_W and MAX_H of distance)
  • editor: allow user to add boss door
  • editor: add npc support (including a wizard to define it’s frames)
  • editor: add line tool
  • editor: add stairs (use locked 2)
  • editor: allow second level of tiles (this will allow user to create transparent tiles, for stairs, etc)
  • better “loading”: make it generic and allows two types:
  • a) scroll messages up when new one reaches bottom of screen (for debug)
  • b) loading with a progress bar and showing only the last message)
  • add loading for all elements, including intro screen and such
  • load NPCs from the game/map file
  • NPC movement types (wait, attack, loop, left to right and right to left)
  • NPC can only execute acions that are defined in the frameset list (if do not have jump frame, can’t jump)
  • NPC must return when killed and out of players vision
  • create transitions between two differente stages (like a boss door, or a staircase)
  • if the whole screen height have a wall (locked) ahead, do not scroll beyond it, hidding the contents after it (this will allow us to use more regions in the map)
  • make win32 version run from anywhere
  • must find a way to determine the jump size by the time of button pressed
  • create a new animation system, that have individual frames with duration [add_frame(posx, duration)]
  • redesign whole game intro (use in-game like graphics)
  • create graphics of players in several angles to improve graphics ideas
  • add some animation using color cycle in intro by switching palettes
  • working staircases
  • indicate when a player is blocking the scrolling (using a P1/P2 above it’s head)
  • add boss (Apebot)
  • make the screen rendering in real time, use a small part out of the screen to render when necessary instead of rendering the whole thing at onde
  • (create function render line and render column) – memory should go from 226x63x256=3.600kB to 22x15x256 = 84kB (main app still uses ~1.5MB)
  • compile the game for Nintendo DS (no real build yet, just start testing)

[/lang_en]

[lang_pt-br]

No último fim de semana, o trabalho na versão beta 4 começou com grande sucesso. O noivo sistema de colisão e gerenciador de movimentos estão quase completos, e funcionam muito melhor do que no beta 3, além do código ser mais limpo e melhor. Eu ouso dizer que existe apenas um pequeno bug, bem difícil de reproduzir.

Também começamos a testar o som, ele funciona perfeitamente em Linux, mas vai precisar de algum esforço para o Playstation 2, porque nossa implementação atual de leitura de teclado e joystick faz a música ficar cortada, provavelmente vamos precisar ler menos frequentemente o dispositivo de entrada ou colocar a leitura em uma thread (não estamos as usando neste momento do desenvolvimento).

Outra coisa que fizemos foi corrigir um bug que fazia o jogo congelar. A causa foi que, usar uma variável do tipo short int para tempo não é uma grande idéia, já que ao passar de 32 mil,  a variável fica negativa, e o nosso contador de tmepo ficava simplesmente preso.

Então, para finalizar, aqui está a lista de tarefas para o beta 4:

  • Corrigir bugs do beta 3:
  • a) projéteis estão limpando a tela na posição errada (acima) – FEITO
  • b) algumas vezes o jogo trava (a animação continua, mas o jogador não se move) – FEITO (CheckDelay)
  • c) a verificaçãod e colisão tem um bug que permite andar no ar  (1) – FEITO
  • d) o jogador pode cair para o lado esquerdo da tela (1) – FEITO
  • (1) revisar toda a verificação de colisão – INWORK
  • tentar desabilitar o filtro biliniear na SDL (não é possível atualmente) – CANCELADO
  • corrigir a SDL_Timer (see http://forums.ps2dev.org/viewtopic.php?t=2842&highlight=clock+tick) – FEITO
  • (2) corrigir a SDL_mixer (see http://forums.ps2dev.org/viewtopic.php?t=9798&highlight=sdlmixer)
  • enviar modificações na SDL para o ps2dev.org
  • música (2) – FEITO
  • efeitos sonoros (2)
  • editor: allow user to set p1 and p2 starting position (must be in same screen area – MAX_W and MAX_H of distance)
  • editor: allow user to add boss door
  • editor: add npc support (including a wizard to define it’s frames)
  • editor: add line tool
  • editor: add stairs (use locked 2)
  • editor: allow second level of tiles (this will allow user to create transparent tiles, for stairs, etc)
  • better “loading”: make it generic and allows two types:
  • a) scroll messages up when new one reaches bottom of screen (for debug)
  • b) loading with a progress bar and showing only the last message)
  • add loading for all elements, including intro screen and such
  • load NPCs from the game/map file
  • NPC movement types (wait, attack, loop, left to right and right to left)
  • NPC can only execute acions that are defined in the frameset list (if do not have jump frame, can’t jump)
  • NPC must return when killed and out of players vision
  • create transitions between two differente stages (like a boss door, or a staircase)
  • if the whole screen height have a wall (locked) ahead, do not scroll beyond it, hidding the contents after it (this will allow us to use more regions in the map)
  • make win32 version run from anywhere
  • must find a way to determine the jump size by the time of button pressed
  • create a new animation system, that have individual frames with duration [add_frame(posx, duration)]
  • redesign whole game intro (use in-game like graphics)
  • create graphics of players in several angles to improve graphics ideas
  • add some animation using color cycle in intro by switching palettes
  • working staircases
  • indicate when a player is blocking the scrolling (using a P1/P2 above it’s head)
  • add boss (Apebot)
  • make the screen rendering in real time, use a small part out of the screen to render when necessary instead of rendering the whole thing at onde
  • (create function render line and render column) – memory should go from 226x63x256=3.600kB to 22x15x256 = 84kB (main app still uses ~1.5MB)
  • compile the game for Nintendo DS (no real build yet, just start testing)

[/lang_pt-br]

    Art

    I’m using my free time between beta 3 and 4 to rethink some parts of the code and to draw, here is one parcial result:

    New Screenshots

    Future

    While we wait for beta3 to have all of it’s bug list squashed, we can already start looking to the future, and here is what beta4 has planned to bring:

    • must find a way to determine the jump size by the time of button pressed
    • create a new animation system, that have individual frames with duration [add_frame(posx, duration)]
    • redesign whole game intro (use in-game like graphics)
    • create graphics of players in several angles to improve graphics ideas
    • revise whole collision detection
    • add some animation using color cycle in intro by switching palettes
    • working staircases
    • indicate when a player is blocking the scrolling (using a P1/P2 above it’s head)
    • load NPCs from the game/map file
    • editor: allow user to set p1 and p2 starting position
    • editor: allow user to add boss door
    • editor: add npc support
    • editor: add line tool
    • music
    • sound effects
    • NPC movement types (wait, attack, loop, left to right and right to left)
    • NPC must return when killed and out of players vision
    • create transitions between two differente stages (like a boss door, or a staircase)
    • add boss (Apebot)
    • compile the game for Nintendo DS (no real build yet, just start testing)
    • make the screen rendering in real time, use a small part out of the screen to render when necessary instead of rendering the whole thing at once (this probally will reduce around 3~4 MB of memory usage)

    Have suggestions for what we should implement first? Write a comment here.

    Now on WordPress

    Our previous solution for the Rockbot website, that consisted of a blogger that was dynamicaly imported using PHP and RSS, was giving us too much trouble. So, we decided to start using wordpress, and from now on a unique platform for web is used, meaning we have less work to mantain it, and can spend more time coding and designing Rockbot. In other news, the beta3 release will have to suffer a small delay. Adding support for Playstation cdrom was a bit problematic, contrary to the easy mass (USB), and we’ll probally not have support for HDD, as we do not have the hardware to do the several tests needed. We are also looking for people with desire to work to create ports do Mac OSX and PSP, while still needing some help in the graphics and music parts, so come and join us! All that said, beta3 will be released one we finish the following items:

    fix npc-player colision function for PS2
    • 2 player on pc freezes when there is joystick attached
    • INWORK – finish player sprites adjustments (teleport on P2, p1 new face)
    • try to track down eternal loop bug
    • INWORK – create a complete map (without boss)
    • fix small underscreen bug on top of the screen
    • show projectile more near to the hit target (is vanishing too soon)
    • add a small text in the stage ending (beta and credits)
    • create deb package for Ubuntu/Linux
    • create an official PS2 build
    • fix npc-player colision function for PS2

    fix npc-player colision function for PS2

    • 2 player on pc freezes when there is joystick attached
    • INWORK – finish player sprites adjustments (teleport on P2, p1 new face)
    • try to track down eternal loop bug
    • INWORK – create a complete map (without boss)
    • fix small underscreen bug on top of the screen
    • show projectile more near to the hit target (is vanishing too soon)
    • add a small text in the stage ending (beta and credits)
    • create deb package for Ubuntu/Linux
    • create an official PS2 build
    • fix npc-player colision function for PS2

    Steady Progress

    Work is being done nicely, and beta 3 promisses to be a really good one. See this small preview:

    Here is the list of features, and it’s status, that will be in the next beta, targeted to the end of this month:

    DONE – one/two player mode
    a) remove player 2 from move/clear/show functions
    b) scroll with only one player
    c) select one or two players
    d) on PC, P1 can use both joy1 and keyboard
    DONE – allow multiple instances of a same NPC (to reuser the same graphics in a different position)
    DONE – adjust players initial position
    DONE – add players HP bars
    DONE – fix collision verification when falling from a jump and moving left/right (still needs more work)
    DONE – make NPC shield itself (shiled flag, plus frame zero in animation)
    DONE – player hit animation
    DONE – add collision verify into player hit animation to not move where it can’t
    DONE – NPC hit animation
    DONE – player hit animation
    DONE – make players loose 3 hit points when touching a NPC
    DONE – fix jump+shoot and walk+shoot animation
    DONE – player teleport animation in stage start
    DONE – “ready” text animation on stage start
    DONE – align hit animation centered vertically and horizontally to the player or npc
    DONE – editor: add fill tool (still needs work for non-continual areas like a square)
    NOT – separate hit into NPC check into a separate function and call it even if player is stopped
    DONE – make NPC shoot
    DONE – NPC shoot must diminish 1 HP from players when hit them
    – fix small underscreen bug on top of the screen
    – show projectile more near to the hit target (is vanishing too soon)
    – NPC killed animation
    – create a complete map (without boss)
    – add a small text in the stage ending (beta and credits)
    – create deb package for Ubuntu/Linux
    – map PS2 joystick buttons correctly
    – fix timing for PS2
    – initialize units for PS2 according to need (use argc to find run path)
    – create an official PS2 build

    Beta 2 released

    This is a big day for the Rockbot project as marks the first release that already have a good foundation and a plan for features. Go grab the beta 2 build for Windows in our project page.

    Some of the new features added in this beta are:
    • revised and incrementd NES palette to use current black colors
    • added ESC key to leave game in intros too
    • fixed the screen’s left side extra one pixel
    • fixed NPC sprite background overlapping PCs
    • changed NPC graphic
    • fixed bug that players are one pixel above ground
    • fixed scrolling to make floor always visible
    • vertical scrolling together with horizontal not working
    • a dead NPC is still blocking the shoots
    Linux still do not have a build, but we plan to create deb packages for Ubuntu (always the lastest version, currently 9.10) and a Playstation 2 build starting from the next beta.

    We have a plan! (besides take over the world)

    We are deciding a list of features each beta will need to acomplish.

    This is great, because it is cleaner to see and think what needs to be done, in an incremental way, instead of the old and plain TODO list.
    Here is what is planned to beta2 (and much more that was implemented before the creation of the plan), due to come out in the next weeks:
    • revise and increment NES pallete to use current black colors (add a strong yellow for Betabot)
    • add ESC key to leave game in intros too
    • fix the screen’s left side extra one pixel
    • fix NPC sprite background overlapping PCs
    • change NPC graphic
    • fix bug that players are one pixel above ground
    You can check the up to date document here: sourceforge svn for RoadMap