Torion 2 (PC)

Por Euler Vicente

O amigo que acompanha o Cosmic Effect lembra que, no post sobre Zanac, citei um jogo que havia desenvolvido em homenagem ao meu game de nave favorito. Acredito que algumas pessoas ficaram curiosas em conhecê-lo, saber como se deu o processo de desenvolvimento, minhas dificuldades e inspirações. Como Torion 2 é 100% retrô, acredito que possa render uma curiosa leitura para os nossos amigos. Afinal de contas, quem joga videogame sempre teve vontade de fazer seu próprio jogo, não é mesmo?

Quer saber como funciona um shooter 2D? Então, continue conosco!

Como tudo começou: o campeonato da UniDev!

Sempre tive como um hobby pessoal a programação de computadores. Desde o MSX, já codificava algumas coisas simples. Obviamente, como nesta época programava para me divertir (sim, isso é possível!), não me interessava em aprender a fazer aplicações sérias; só queria saber de fazer jogos, gráficos legais. À medida em que o conhecimento técnico foi progredindo, o sonho de fazer um shooter como Zanac tornava-se cada vez mais factível.

Até que um dia, um site brasileiro muito legal de desenvolvimento de jogos, o UniDev – Programação de Jogos, lançou um concurso para os leitores, em 2003. A proposta era de apresentar um projeto de um jogo (ou demo) dentro de de 6 meses. Não lembro qual era o prêmio, ou mesmo se era relevante para mim: só sei que aquilo havia me deixado animado a seguir em frente. Tinha chegado o momento de produzir o meu Zanac!

Lembro que os projetos iam surgindo em profusão no site, diversos bem mirabolantes (risos). Um beat’em up à la Streets of Rage; tinha até uma turma que pretendia desenvolver um RPG cheio de detalhes. pensava com meus botões: esses caras vão conseguir realmente fazer isso tudo em 6 meses?

Pelo prazo proposto pelo site, não quis me arriscar a começar algo que não conseguiria terminar. Pela experiência que já obtive através do desenvolvimento de dois outros jogos autorais menores (Torion e Meteoros), acreditava que jogos de nave seriam mais fáceis de produzir: não precisamos nos preocupar com física, as colisões são mais simples… e era o gênero que eu mais gostava!

Então, inscrição no site realizada e mãos à obra, Euler!

Hello World!

Minha base de programação sempre foi a linguagem Visual Basic. Foi a ferramenta que me acompanhou durante boa parte da minha vida profissional e, com o tempo, fiquei bem experiente na dita-cuja (fiz 90% na prova de certificação da Microsoft). Meu contato inicial com o DirectX foi, inclusive, através do próprio VB.

Observem que, em tese, qualquer jogo pode ser produzido em Visual Basic pois, na realidade, quem renderiza os gráficos, efeitos sonoros e entrada de dados é a extensão DirectX, não a linguagem de programação. Ela somente representa a interface para acessarmos a API do DirectX – precisa apenas fornecer suporte para tal. Por exemplo, já vi ótimos projetos em Delphi – outra linguagem “atípica” no desenvolvimento de games – para dar uma idéia para vocês.

Porém, eu andava entediado com o VB. Não seria uma boa oportunidade para aprender outra linguagem de programação? Que tal C++ para arrebentar de vez? Não é ela a tal linguagem de programação usada nos projetos profissionais? Decidi encarar o desafio.

É importante ressaltar que, apesar de boa parte do jogo ser de responsabilidade do DirectX, a lógica de programação, cálculos matemáticos e iterações (os loops) são confeccionadas na linguagem de programação. E, neste aspecto, o C++ faz toda a diferença do mundo. É muito mais rápido do que o VB, Java ou o Delphi. Por isso a predileção do C++ em situações mais profissionais. Eles poderiam fazer um Half-Life 2 em Visual Basic, mas ficaria tão lento…

O que me trouxe bastante confiança em começar meu projeto numa linguagem de programação que nunca tinha visto na vida foi um engine que havia encontrado: o CDX. Gratuita, com o código fonte disponível, lotada de exemplos práticos e altamente didáticos. Com um pouco de estudo, pude assimilar sem maiores dificuldades.

E, então, iniciei meu primeiro programa em C++. Normalmente quando começamos a aprender uma nova linguagem de programação, fazemos um programinha bem simples que imprime na tela os dizeres: “Hello World!”. Isso é uma espécie de tradição no mundo da informática. No meu caso, meu “Hello World!” foi logo Torion 2! (risos)

Gráficos & trilha sonora: quem aí pode me ajudar com isso?

Uma coisa que aprendi: jogos são projetos multi-disciplinares. Não é possível somente um indivíduo cuidar de tudo. Até mesmo porque as pessoas são diferentes, têm aptidões diferentes e, no meu caso, definitivamente não levo jeito para a parte artística da coisa.

A tal questão artística representava um grande limitador ao projeto. Por vezes, tinha uma boa idéia, sabia como implementá-la tecnicamente falando, mas… do que adiante se não tinha os sprites corretos? A coisa foi tão séria para mim no começo que o projeto foi tomando outro rumo: normalmente se planeja o gameplay, são esboçados os cenários e personagens e, somente depois, a equipe artística realiza o que foi imaginado. Em Torion 2 foi ao contrário! (risos) Fuçava sprites na Internet, efeitos sonoros, músicas, até achar algo que pudesse aproveitar. Daí, desenvolvia o gameplay em cima dos recursos artísticos encontrados. Acham que queria colocar aquela arma do bumerangue do Knightmare no jogo? Eu tive de aproveitá-la, pois o sprite estava lá disponível, todo arrumadinho esperando que eu pensasse em algo… (mais risos)

Para terem uma idéia do meu desespero, a nave Torion foi produzida a partir de um mesh (modelo 3D) feito para o 3D Studio. Baixei o modelo de um daqueles sites especializados em 3D Studio, abri o software e renderizei em 2D a nave vista de cima. Depois, inclinei-a para a direita e tirei outra foto. Fiz o mesmo para a esquerda e pronto: meu sprite da Torion estava lindo! A nave da abertura é o mesmo modelo renderizado, só que de frente! (risos)

E o que falar dos efeitos sonoros e música? A música, como podem notar pelos créditos, é de autoria de um sujeito chamado Wagner Carvalho. Ele era integrante de uma empresa nacional de desenvolvimento de jogos na época, a GreenLand Studios. No site deles, havia o portifólio com as músicas e eu tinha gostado de uma delas, casava com o tipo de jogo que eu queria fazer. Fiz contato com o Wagner, pedindo autorização para usá-la em Torion 2. Comentei que era para um projeto sem fins lucrativos, que seria divulgado em vários sites especializados. Acabei convencendo-o de que seria uma boa oportunidade de divulgação do trabalho dele que, então, permitiu a utilização da sua música.

Catei uns efeitos sonoros na rede, nem sabia a quem dar crédito. Até a música do boss de Streets of Rage usei ao chegar nos chefes de fase! (risos)

Com o passar do tempo o projeto foi ganhando forma, tornando-se bem interessante. Tinha o hábito de sempre atualizá-lo no site para que as pessoas pudessem acompanhar o andamento. Nisso, dois rapazes se ofereceram para contribuir. Acredito terem notado que o projeto era algo sério, que eu não estava para brincadeira. As aptidões deles casaram com minhas necessidades e eu os aceitei de bom grado. O Márcio Rogério fez uns sprites bem legais para o jogo. Sabe os chefes de fase? São dele. O Roberto Radke era bom em fazer músicas, então encomendei algumas composições. Aquela música executada ao passar de fase é dele. Muito obrigado rapazes!

Mas, a parte artística mais complexa do jogo foi, de longe, o mapa. Lembram que eu falei sobre tilling no post sobre Zanac, sobre o trabalhão que dá fazer aquilo? Pois bem, um grande companheiro de faculdade, Andrey Santana (não é o do Cosmic Effect) deu uma ajuda e tanto. No CDX, havia uma amostra de como fazer tilling, inclusive com um mapa pronto que exibia até mesmo parallax vertical. Tudo que precisava estava lá, naquele exemplo.

Então, Andrey pediu que eu lhe explicasse o funcionamento do editor de mapas, como isso funcionaria dentro do jogo e voilà: em poucas semanas ele produziu um mapa com cenário urbano que ficou de cair o queixo. Abusei: pedi para colocar um estádio no cenário, como aquele estádio de beisebol do Tokyo (Scramble Formation). Sempre babava com aquilo quando ia ao fliperama! Sabe o que ele fez? Pegou uma foto de satélite do Estádio Olímpico de Sydney e colocou no mapa (em tempos pré-Google Earth). Putz, esse cara é bom ou não é?

As armas… as armas!!!

Foi muito interessante programar essa parte. Quem já jogou Zanac percebeu que Torion 2 tem armas parecidas. Os tiros simples (até 3 no máximo) e as armas extras estão aqui! Isso foi descaradamente baseado em Zanac (risos)! Vou falar um pouco sobre elas:

– A arma do bumerangue. A mais chata do jogo e só a deixei ficar por não ter encontrado sprites melhores na Internet. Fiz a programação para que fosse e voltasse ao ponto inicial, dando até um efeito legal. Ficou parecido com Knightmare?

– As esferas que giram ao redor da nave. Era minha arma extra favorita em Zanac, não podia faltar em Torion 2. Fiz um upgrade baseado no que eu tinha visto em Super Aleste do SNES. Desta vez, as esferas giram em sentidos diferentes, em órbitas elípticas. Gostaram? Posteriormente, percebi que a arma era poderosa demais, tornando o jogo fácil. Então, implementei um sistema que descresce a força das esferas à medida em que ela colidia com os inimigos ou seus tiros. Percebem que elas vão clareando até desaparecer por completo? O nome deste efeito é alpha blending e o CDX já trazia de bandeja para nós.

– O laser. Foi o Andrey quem me cobrou esta. Todo jogo de nave precisa de uma arma laser destruidora. Por sorte, achei um sprite perfeito para os meus propósitos, foi só implementar.

– Os robôs que seguem a nave. Baseado numa arma que adorava no Super Aleste. Achava incrível a maneira como se movimentava, seguindo os passos da nave principal. Esta aqui foi a mais trabalhosa de implementar, mas a que trouxe mais satisfação pessoal quando pronta. Lembro que escrevi a lógica num pedaço de papel, depois de muito quebrar a cabeça. Mas, a lógica ficou tão boa que quando fui programar o que havia pensado, funcionou logo de primeira. Dei um pulo de alegria naquele instante, como se tivesse vencido um boss bem difícil!

A matemática está em toda parte.

Eu detestava matemática na escola. Pode parecer estranho para alguém que citou tudo isso sobre lógica, mas não suportava a disciplina. Inclui até uma recuperação no meu histórico escolar.

Quando comecei a programar Torion 2, percebi que não havia escolha, a matemática estava em todo lugar. Através da trigonometria, pude posicionar as esferas e fazê-las girar ao redor da nave. Calculando ângulos, fiz os tiros dos inimigos inteligentes. Eles sempre miram na nossa direção, não atiram de qualquer maneira.

Comecei até a gostar da “coisa” depois que vi uma utilidade prática. Ah, se a matemática fosse ensinada desta maneira nas escolas…

Colisões: o pesadelo!

Sabe quando a tela de um jogo torna-se cheia de inimigos e notamos um frame drop e vira aquela lerdeza? Não é o fato da tela estar cheia de sprites que torna o jogo mais lento, são os cálculos das colisões! O código testa o tempo inteiro se nossos tiros atingiram os inimigos, se os tiros inimigos nos atingiram, se as naves inimigas nos atingiram… imaginem que, se um jogo roda a 60 FPS, testamos 60 vezes em um segundo por todo tipo de colisão que possa ocorrer. O C++ faz isso mais rápido que as outras linguagens, por isso jogos feitos nessa linguagem costumam ter melhor desempenho. Games que rodam numa taxa de quadros estável normalmente tem um bom sistema de colisão.

Um dos motivos de um shoot’em up ser mais simples que um jogo de plataforma é o fato de não precisarmos testar as colisões com os cenários. Num plataforma isso é realizado o tempo inteiro, além das colisões com os inimigos. Isso não ocorre num shmup 2D.

Existem algumas técnicas de detecção de colisões. Em Torion 2, foram utilizadas dois tipos: colisão por sobreposição de retângulos e colisão pixel por pixel. Uma breve explicação:

– Sobreposição de retângulos. Um sprite é sempre retangular. Quando a figura é não-retangular, definimos uma cor no sprite como cor de transparência. Assim, quando o sprite é renderizado, aquela cor que definimos com cor de transparência não é exibida na tela. A detecção de colisão por sobreposição de retângulos testa apenas se 2 retângulos se sobrepuseram. É uma técnica pouco precisa, mas muito rápida.

– Pixel por pixel. É a técnica mais precisa, porém custosa em termos de processamento. Aqui, quando dois retângulos de sprites se sobrepõem, pegamos a área de interseção dos retângulos e testamos pixel por pixel se um determinado pixel é não transparente nos dois sprites em colisão. Complicado, não é? Mas é para isso que serve o engine: para nos livrar destas dores de cabeça!

Percebi que não dava para detectar todas as colisões do jogo usando pixel por pixel, isso tornaria Torion 2 lento. Na época, os PCs não eram tão potentes quanto os atuais, ainda tínhamos de espremer recursos. Optei em usar pixel por pixel apenas nas colisões em cima da minha nave, já que se eu usasse a sobreposição de retângulos, corria o risco de um tiro nem passar perto da nossa nave e nos matar. As colisões dos inimigos foram feitas com retângulos mesmo, pois se torna altamente aceitável para quem joga (risos).

Gameplay: a parte mais complexa!

Esta foi, disparadamente, a pior parte do projeto. Vocês não imaginam o trabalho que é fazer 30 segundos de jogo! Precisa realmente de gente especializada, não tinha mais dúvidas acerca disso.

Fazer um jogo que seja interessante, que não frustre o jogador, que o estimule pensar estratégias de combate; com a dificuldade progressiva… é uma arte. Percebi não ter o perfil para isso, pois a minha paciência é quase zero (risos).

Para que outra pessoa possa fazer o gameplay do jogo (tarefa que sobrou para o colega de faculdade Andrey), desenvolvi um layout para um arquivo em texto simples. O jogo estava pré-programado para ler esses TXTs. Bastava seguir o layout à rigor que o jogo se comportaria conforme desejado, dispensando recompilações. Então, foi só jogar a bomba nas mãos do Andrey (risos).

Lembro de um acontecimento engraçado. Ainda durante a implementação, pedi para uns amigos o testarem. Um colega de trabalho comentou ter um sobrinho vidrado em jogos. Ele, então, levou Torion 2 para o guri testar. No outro dia, trouxe o veredito do garoto: “o jogo é bom, tio, mas é fácil demais!”

Como assim “fácil demais”? Putz… podia começar meu dia sem essa, não é? Ferido no meu orgulho, disse para ele que iria dar um jeito nisso. Comecei a editar os TXTs, aumentando todos os valores, enchendo a tela de inimigos: queria ver aquele guri falar alguma coisa agora… Bom, só sei que o jogo ficou tão difícil que nem eu mesmo consigo terminar (risos)!

Conclusão: atingi meus objetivos?

Apesar de nunca ter terminado o jogo (só tem 2 fases), acho que fiquei satisfeito com o resultado. Torion 2 não ficou tão dinâmico quanto eu pretendia, o gameplay precisa de sérias melhorias, mas fiquei com a sensação de que poderia fazer qualquer jogo deste estilo, caso desejasse. A parte técnica está lá, bastava mais dedicação, experiência e as pessoas certas nos momentos certos do projeto.

Nunca mais vi os jogos 2D da mesma forma depois que participei deste projeto. A gente passa a ver as coisas com outros olhos, sabe?

E vocês? O que acharam de Torion 2?

Ah! E o resultado do concurso? Sei lá… o que eu queria, já havia conseguido!

[Nota do Cosmonal: Capturei o gameplay completo do Torion 2 para quem desejar vê-lo em ação (vídeo abaixo). Quem quiser, o jogo completo está disponível para download – link logo após o vídeo!]

Download Torion 2!
(Windows XP/7)

Basta descomprimir o arquivo baixado em qualquer pasta e executar “Torion2.exe”.
Iniciará automaticamente, em 640 x 480. Não há necessidade de nenhuma configuração.

* * *

27 Respostas

  1. Parabéns pelo artigo, mostrando bem as fases de criação de um jogo “remake”.

    Valeu EulerVicente.

    Curtir

  2. “Purrrã! Sensacional.” Quando eu vi o bumerangue em ação foram essas as minhas palavras. Bacana mesmo, parabéns!

    Curtir

  3. Euler, queria te dar os parabéns pela qualidade do jogo e, principalmente, por você ter feito um jogo com começo, meio e fim, pois a maioria dos projetos morrem muito antes de ter uma fase jogável (experiência própria, hehe).
    Lendo seu texto relembrei de alguns jogos que já desenvolvi (inclusive na Unidev em 2010) e das dificuldades encontradas como:
    – Procurar um sprite na internet e adequar seu gameplay a ele…
    – Level Design: poxa, se o Miyamoto cria fases tão divertidas em seus jogos eu também posso! Errr,,, não é bem assim…
    – Passar duas horas tentando descobrir como fazer aquela “feature” simplezinha se encaixar na mecânica atual do jogo,
    E por aí vai!
    Valew por compartilhar esta experiência conosco!

    Curtir

  4. Eric, ficou otima a caixa do jogo hehe Recomendado para audiências maduras rsrs

    Ficou massa tb a montagem com HL2 rodando a 0,5 frames por segundo np VB hehe

    Curtir

  5. História linda, Euler. Muito show conhecer assim o Torion 2. Me identifiquei com várias partes do texto, pois adoro um smhup e também sou fã de Zanac (como todo bom MSXzeiro, você sabe disso. hehe). Sim, jogos são projetos muito multi-disciplinares. Mandou bem destacando isso.

    Sobre os gráficos, o mapa ficou lindo mesmo. A referência ao Tokyo é de chorar. Euler, também sempre babava com o Tokyo quando ia ao fliperama. Inclusive, está na minha lista de jogos old-schools com gráficos impressionantes. Qualquer dia a gente bate um papo sobre isso. hehe.

    O cenário e os bullets pequenos também me lembraram Xevious e Sky Jaguar. E mandou bem com os optios a la Gradius. *-* Ótimo “Hello World!”! Chegou logo metendo o pé na porta! :-) Abração!

    Curtir

  6. Me lembro da uma corrida na orla que eu e Eric fazíamos (sério, apesar de soar como piada) quando Eric reencontrou Euler depois de um bom tempo sem muito contato e este contou que estava desenvolvendo um jogo novo.
    Lembro que Eric quis logo saber sobre as musicas, mas àquela altura Euler já tinha contactado alguém, se não me engano de Curitiba. Talvez o tal Wagner citado no post. A partir desse encontro casual e desse papo começaram as ideias dos encontros Cosmic Ark.
    Relembrar… é viver…

    Curtir

    • Foi isso mesmo Tiago! Que memória, hein??

      Lembro que Eric ainda tinha aquele cabelão na época! rsrs

      Bom te rever! Forte abraço!

      Curtir

      • Hahahaha! Tiago e… *procurando um termo equivalente a “mais que fotográfica”* … sua memória bibliotecária. Quando preciso de alguma lembrança do passado, é só ligar pra Tiago que ele lembra, digo, “exibe o log” :D na hora! Tiago é o nosso Underground Gamer particular! :D

        Valeu Pareto ;-) foi isso mesmo! Daí nos juntamos todos pro Cosmic Ark Effect logo em seguida :D

        E precisamos voltar àquelas corridinhas, Tiago, ou seria mais para “papo sobre assuntos nerd trotando lentamente com a orla de Salvador ao fundo”? :P

        Curtir

  7. Parabens Euler!

    Realmente, aqueles programas de 10, 20 linhas… e gerava aquele quadrado na tela do tk… ou o nome. Era demais explorar aquele universo do Basic.
    Imagino como deve ser complicado fazer todo restante!

    Abraço!

    Curtir

  8. Pura nostalgia…

    Lembrei das madrugadas tentando entender a mecânica sobre a construção dos mapas e das fases com vulcões e gelo que nunca foram concluídas. Se no Brasil ouvessem mais incentivos para o desenvolvimento de jogos e tecnologias relacionadas, muito projeto bom seria implementado, pois criatividade não falta nas terra tupiniquins.

    Grande abraço ao Euler.

    Curtir

  9. Euler, vc pode me dar o endereço do garoto que reclamou que o jogo tava fácil? Quero ir matar o pestinha pessoalmente, pq baixei o jogo e não consigo passar da 1ª fase! Eita joguinho difícil!

    Bem, brincadeiras à parte, parabéns, pois o jogo ficou realmente muito bom. Se vc não ganhou o prêmio, merecia!

    Curtir

    • O guri me humilhou… vc sabe, eu tive que dar uma resposta pra ele! KKKKKK

      Que bom que vc gostou! O reconhecimento dos amigos vale mais que qualquer prêmio!

      forte abraço

      Curtir

  10. Cara, que bacana toda história do que você passou pra desenvolver o tanto que desenvolveu do jogo, eu tenho idéia de como foi passar por algumas coisas que você citou. Isso pq trabalho com desenvolvimento de sistemas, primeira linguagem que aprendi foi C++ e mais pra frente aprendi um pouco de VB. Então dá pra imaginar o “choque inicial”.
    Ainda não cheguei a tentar desenvolver um jogo, sempre falo que vou tentar e sempre fico no “um dia eu começo”, até pq é bem diferente de sistemas. Mas muito bacana ter uma idéia de como as coisas acontecem, as dificuldades e tudo mais.
    Ainda não experimentei o jogo, mas estou colocando pra baixar.

    Curtir

    • Fala colega! Td blz!

      Eu também sou desenvolvedor de sistemas e posso afirmar que jogos são o estado da arte da programação. Temos que nos preocupar com coisas que normalmente não nos preocupamos em sistemas comerciais: gerenciamento de memória, otimização e reaproveitamento de recursos, muita matemática, além de toda parte artística envolvida. É mais complexo, pode acreditar! E olhe que jogos de naves são os mais simples…

      Ah… e esqueci de citar uma coisa importante no texto. Como o jogo foi feito para PCs, uma coisa importante e também complexa era fazer o jogo rodar da mesma forma em qualquer configuração de PC. Dos mais simples aos mais poderosos, note que o jogo roda na mesma taxa de frames em qualquer micro. Tem que se preocupar até com isso!

      Forte abraço

      Curtir

  11. Voltei pra falar do jogo: ficou fantástico!
    Controle respondendo rápido, dificuldade no ponto, gráficos estão bonitos, sons bem escolhidos. Cara, gostei, gostei muito!
    Não sei como estavam os outros jogos para efeito comparativo, mas acho que vc mandou muito bem e, se isso não for atrapalhar sua vida pessoal, acho também que vc deveria levar o desenvolvimento adiante.
    Parabéns!

    Curtir

    • Que bom que vc gostou!
      Foi um processo de aprendizado em DirectX até conseguir esse resultado rs

      Eu não penso em continuar esse projeto não, mas quem sabe um dia eu tente algo em XNA…

      Valeu!

      Curtir

  12. Euler seu texto foi uma aula.
    Você descreveu brilhantemente toda aventura com as alegrias e problemas para se criar um shooter.
    Realmente um game sempre será um projeto multidisciplinar e esta é a beleza dos games.
    Só uma coisa aquela arma EXTRA que aparece no vídeo em 2:48 eu achei uma apelação contra os inimigos ha ha ha,só que depois usando ela eu tive difivuldades,caraca!Há momentos bem Bullet Hell neste game.
    O jogo ficou bem legal,eu curti mesmo.Em alguns momentos Torion 2 me lembrou o maravilhoso Axelay (SNES) outra pérola retrô.
    Eu baixei e estou jogando(preciso comprar um controle USB,ha ha ha)gostei muito de Torion 2,você é a primeira pessoa que conheço que já fez um jogo Ha ha ha é muito legal ver seu nome nos créditos e pensar que… hei!!! eu conheço esse cara! Ha ha ha ha!Muito legal mesmo.
    Euler,não sei se você vai ler este comment atrasado ha ha ha,mas fiquei muito surpreso com o resultado final de Torion 2.

    Abraço.

    Curtir

    • Graaande Dactar! Valeu mesmo meu velho!

      Wow! A comparação de Torion com o grande Axelay me fez ganhar o dia! rs

      Cara… pelo que eu me lembro, não programei o jogo para funcionar num joypad não rsrsrs É que eu não tinha o acessório na época e fiquei com preguiça de comprar um e implementar o Direct Input dele.

      Abraço

      Curtir

      • Euler,você merece,gostei mesmo do Torion 2!
        Ha ha ha,hoje eu divido minha jogatina gamer com o PSP e com o Notebook,eu tenho que comprar um Joypad de qualquer jeito!

        Curtir

  13. Cara, comecei meu PIXEL FIGHTERS justamente pelo mesmo motivo: inspirado nos grandes jogos do passado, heheheh! Tenho Torion 2 no meu HD e jogo pelo menos duas vezes por semana, já que tenho 1tb só de shoters, kkkk! Visitem um blog do qual faço parte, http://www.filosofiashmup.blogspot.com , vou postar algo sobre seu torion 2 por lá!

    Curtir

Deixar mensagem para Euler Cancelar resposta