iuri

This user hasn't shared any biographical information

Homepage: http://rockbot.upperland.net/


Posts by iuri

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]

Open Rockbot – página no ar

Já está no ar a página do projeto Open Rockbot: http://www.upperland.net/rockbot/index.php

A página ainda não possui muito material, mas colocamos um leitor de RSS para exibir as novidades publicadas aqui e em breve vamos colocar algumas informações sobre o desenvolvimento e telas.

Apresentando o projeto Open Rockbot

Eis o nome do projeto para criar uma engine open-source similar aos jogos clássicos Rockman (Megaman nos EUA). O nome surgiu fácil, trocando man (homem) por bot (robô) e mantendo o Rock ao invés de Mega, pois a versão japonesa é mais legal.
Mais complexos são os objetivos: criar uma engine que seja flexível o suficiente para se criar um jogo praticamente igual a um Rockman clássico; para tanto o programa se dividirá em duas partes.

Primeiramente teremos um editor, programado em C++ e usando a biblioteca Qt para a criação de janelas e widgets, este editor deverá permitir ao usuário criar mapas, definindo pontos em que o personagem toma dano, morre, portas e outros, ponto inicial de saída do personagem, e vários aspectos dos npcs, tais como se eles disparam, se atacam ao se aproximarem, etc. Agora pense por exemplo na lógica de Toadman de Rockman 4: se atingido por um tiro, ele pula sobre o personagem. Isto é difícil de ser informado pelo usuário, de forma que alguns tipos pré-existentes de habilidades e NPCs terão de ser programados diretamente na engine e disponibilizadas como opções de escolha. A complexidade do editor portanto está em dar ao usuário, opções o suficiente para ele poder criar um jogo que não fique repetitivo.

O game-core, programado em C e utilizando a biblioteca SDL, e portado para Windows, Linux e Playstation 2, é o jogo em sí. Ele deverá abrir um arquivo de jogo, criado no editor, ler as fases e npcs e permitir ao usuário jogá-las. A engine em sí é basicamente simples, e como a idéia é reproduzir a série clássica de Rockman (1-6 e 9), um mínimo de diferenças em relação ao original deve ser feito, mas iremos adicionar alguns elementos inéditos à série, como a possibilidade de duas pessoas jogarem com dois personagens simultaneamente, ao melhor estilo Contra ou Chip & Dale.

Por enquanto é isso, acompanhem as novidades aqui na upperland.net que logo teremos mais informações sobre este projeto.

Desenvolvendo para Playstation 2 – ROUND 2, FIGHT!

Cerca de um ano e meio atrás eu brinquei um pouco de converter um pequeno game que estou desenvolvendo, parecido com Rockman (Megaman) para o Playstation 2 usando o SDK PS2DEV disponível em  http://www.ps2dev.org. Este SDK, além de um toolkit próprio, chamado gsKit, tem suporta a uma biblioteca gráfica, muito utilizada para jogos em Linux mas também utilizada em Windows e Mac, chamada SDL, e para o qual eu já havia desenvolvido pequenos games. Após ligar com diversos problemas de compilação, consegui instalar todo o ambiente em meu Duron 1.6/512MB RAM rodando Ubuntu Linux e comecei a desenvolver.

O problema é que, do modo como eu estava desenvolvendo, eu tinha que copiar o executável (.elf) para um memory card ou pendrive USB, e toda vez ir5 do computador em um quarto, até o PS2 na sala. Isso até não era o maior problema, o problema é que desta forma, você não tem a mínima idéia se o seu programa deu um erro, você simplesmente fica olhando para uma tela escura, ou a tela do seu jogo travado. Utilizando códigos de cores para debugar (desenhando retângulos coloridos como forma de indicar por onde o programa passou), consegui algum sucesso, mas a dificuldade acabou me fazendo desistir.

Chegamos ao presente. Agora com um computador bem mais rápido (Core 2 Duo 2.2/2GB RAM), lá fui eu tentar um segundo método: rodar o programa via emulador de Playstation 2, chamado PCSX2. No linux este emulador mostra as mensagens de output (printf para quem sabe C) do processador IOP (entrada e saída do PS2), e então eu poderia finalmente debugar e corrigir os problemas do jogo, certo? Errado! O emulador simplesmente quebra com o OpenGL da minha máquina…

Bom, nesse ano e meio que se passou, eu adquiri um eeePC 701 e um roteador wifi. Com isso, um segundo método se abriu para mim: programar para o PS2 via rede. Na verdade sem o roteador eu poderia ter feito o trabalho usando um cabo USB ou um cabo cross ethernet, mas nunca me dispus, já com o cabo de rede e o roteador, eu posso também colocar o PS2 em rede, o que é um grande incentivo.

O sistema funciona basicamente assim, você grava um CD com um programa chamado ps2link e um arquivo de configuração que determina o endereço IP quie o PS2 irá requisitar ao seu roteador, e depois um cliente no Windows ou Linux, para acessar o PS2 e enviar para ele o seu programa via rede, ou seja, nada mais de atravessar a sala com o pendrive. Também permite dar um soft-reset – que já descobri não funciona direito com a SDL por alguma razão que ainda não tive tempo de achar.

Mas enfim, comprei um CD para gravar o programa e um cabo de rede de 6 metros, que se mostrou um metro mais curto do que seria recomendável… ninguém manda eu não usar o metro apra medir a distância antes. Gravei o programa, liguei o PS2 com ele e foi pura emoção no momento que consegui dar um ping ao endereço 192.168.1.10 e obeter respota! 😀
A seguir comecei a fuçar no código, recolocando todos os printfs que eu havia retirado já que não apareciam mesmo, e rodar. Em uma hora eu consegui consertar o meu embrião de jogo, adicionei suporte ao joystick direito (esse era um dos bugs, o outro era ter muitos acessos aos arquivos, no PS2 ele tem poucos file pointers simultâneos) e unifiquei o sistema de sprites em uma variável única, otimizando a execução um bocado.
O resultado está nesta screenshot abaixo:

Os gráficos estão com alguns bugs porque eu não tive tempo de arrumar o mapa após criar o novo sistema de tiles/sprites, mas dá para ter uma idéia vendo o protoman lá na parte superior esquerda da tela.
Resumindo, se você tem paciência para fazer as configurações iniciais do SDK, programar para o Playstation 2 usando a SDL é uma grande barbada, e altamente recomendável pela diversão Nerd que irá gerar 😉

[GBA] Megaman & Bass

Na época do declínio do Super Nintendo [SNES], uma das produtoras de jgoos que mais resistiu a abandoná-lo foi a Capcom, que fez vários jogos inclusive após lançar similares para Playstation [PSX]. Megaman & Bass (Rockman & Forte no Japão) é um destes jogos, lançado nos EUA somente em sua versão para Gameboy Advance, uma pérola produzida após o Megaman 8 de PSX.
O jogo é muito parecido com o 8, inclusive usando vários gráficos iguais, mas conseguiu melhorar algumas falhas do primeiro, como jogabilidade e dificuldade de algumas fases – quem é que já não amaldiçoou a fase do skate? Uma das principais mudanças é a inclusão de um segundo personagem, Bass com habilidades diferentes de Megaman, e que seria o equivalente a dificuldade easy, já que possui duplo pulo, apesar de seu tiro ser bem mais fraco.

[ reutilizaram até os chefes de Megaman 8]
[ quase igual ao 8, mas com o Forte jogável]

De diferente também, o jogo vai abrindo caminhos após derrotar um chefe, ou seja,após derrotar um chefe, um caminho se abre atrás para que você possa acessar outras fases. O que ajuda bastante a descobrir a ordem de uso das armas. De igual, o velho esquema de loja de upgrade, iniciado em Megaman 7, Rush e o cão Forte basicamente ausentes, sem toda a importância que já tiveram como em Megaman 3 e 4 e a boa resposta dos controles, que alavancou a Capcom ao sucesso na época do NES e Super NES.

[ caminhos vão se abrindo]

Este sem dúvida é um jogo que vale a pena ser terminado, mesmo que em um emulador no PC, pois é superior a Megaman 8 apesar de ter gráficos ligeiramente inferiores, ausência de vozes, é bem mais divertido e menos burocrático que o 8. Além disso tem uma database de personagens de TODOS os jogos, mostrando que este é o derradeiro encerramento da série clássica, e o fato de poder jogar com dois personagens, faz com que você queira revisitar as fases diversas vezes. Bem que a Capcom poderia ter colocado o Protoman como personagem secreto também…

[ jogar com protoman é o sonho de muitos]

Gráficos: 8 [conseguir gráficos de PSX no SNES foi uma proeza]
Som: 6 [na média, não ajuda nem atrapalha]
Diversão: 8 [jogar com o Bass e depois com o Megaman vale a pena]
Dificuldade: 5/7 [com o Bass é mais fácil]

Reboot!

Estou integrando o blog com meu site principal (http://www.upperland.net), e por isso vou voltar a utilizar ele para postar informações, novidades e reviews de jogos. Aguarde muitas coisas sobre Playstation 2 e Nintendo DS!

Moved

Movi os tópicos deste blog para o meu blog principal.
Quem quiser acompanhar os posts relativos a jogos, basta entrar na tag videogame:
http://techdeck3.blogspot.com/search/label/videogame

Tales of Legendia

Sei, sei, sei..
Tenho que atualizxar mais seguido, terminar o post de Dizzy, etc, etc, etc.

O problema é tempo, quando a noiva não está na cidade e o consome, eu resolvo correr e caminhar. Preciso de umas férias (oba, vou ter!) para colocar as coisas e idéias em ordem.

Mesmo assim consegui um tempinho para começar a jogar Tales of Legendia.
A minha primeira impressão do jogo não foi grande coisa, principalmente pelo visual dos personagens off-game, ou seja, nos filmes e desenhos de arte e também pela péssima dublagem. Felizmente conseguir uma versão UNDUB ajudou bastante a me decidiar a dar uma chance ao jogo. E o resultado final é bem interessante.
Os personagens são bem super-deformed com mãos e pés exagerados, mas o bom humor do jogo está bem presente e ele tem uma ótima idéia, para não tornar aquelas longas caminhadas de dungeons chatas e penosas, diálogos constantes entre cenas foram incluídos. Assim quando você já começa a enjoar da dungeon vem uma cena de um ou dois minutos (falada) com história e piadas para descontrair e recarregar suas forças para seguir adiante.

O sistema de combate é o tradicional de Tales, super divertido e smashing-buttons, com um detalhe, dessa vez o protagonista é um monk (luta com as mãos) então apertar os botões frenéticamente é o que há de bom, e dê-lhe combos, melhor se se fosse um Street Fighter RPG feito pela Square-Enix junto com a Capcom 🙂

The Fantastic Adventures of Dizzy

Este jogo é uma verdadeira pedra no meu sapato, junto com Addams Family values. Muitos anos atrás comprei o jogo na Microsul, era original, apesar de não licensiado pela Nintendo e vinha numa caixa legal com manual e um cartucho dourado.
O jogo é muito difícil, principalmente por não possuir password ou save e ser bastante longo. Basicamente o sistema consiste em fazer trocas de items para ir evoluindo no jogo, método similar à primeira fase de The Simpsons: Bart vs. The Space Mutants para quem conhece.
Hoje recomecei a jogar, na verdade a versão de mega Drive (Genesis), Fantastic Dizzy, que é um pouco mais fácil e tem gráficos bem melhores, com o emulador PGen de PS2. Aì vão algumas dicas que eu cataloguei enquanto jogava a velha versão NES:

Chaves:
Dizzy: Próximo à Dizzy House
Dylan: Na plataforma à esquerda inferior da Dylan House
Daisy: Perto do alevador da Denzil House
Dozy: Na cidade
Dora: À esquerda da Denzil House
Denzil: Antes da Daizy House
Grandpa: No Reunion Hall

Chaves de Elevadores:
Reunion Hall: Na ponte
Dylan: Daisy House
Denzyl: à esquerda da Dizzy House
Grandpa: No início da mina

Items:
Madeira: Colocar sobre abismo à direita do elevador inicial para cirar ponte. Localizada à esquerda da Dizzy House
Galinha: Espanta Armourog, o dinossauro. Encontrada à caminha da cidade.
Semente-Estrela: Usada na poção para saúde de Grandpa. À direita do elevador inicial.
Fósforo Seco: Utilizado com a palha para descongelar Dylan. Na mina.
Cogumelo: Usado na poção para saúde de Grandpa. Após a mina, perto do vulcão.
Saco de Ouro: Para subornar guarda. Encontrado na entrada da mina.
(continua em breve)