Aquelas tardes começavam com um gesto simples: ligar o computador e abrir 'Counter-Strike'. Às vezes acontecia em casa, outras vezes em uma lan house, ainda crucial em lugares onde as conexões de internet residencial estavam apenas começando a se popularizar. Depois vieram os servidores, as partidas online e mapas como de_dust2, repetidos até que cada corredor parecesse familiar. Para aqueles de nós que viveram aquela época, "jogar Counter-Strike" não era apenas um videogame, mas uma maneira específica de passar o tempo.
Em 2005, o PSP estava apenas começando a ganhar popularidade entre os jogadores, enquanto Counter-Strike já havia se consolidado no PC há anos, com a versão 1.6 se tornando um marco. O portátil da Sony pertencia à mesma cultura tecnológica, mas nunca recebeu um lançamento oficial do título da Valve. Eles compartilhavam a mesma era, público e incontáveis horas de jogo, embora seus caminhos nunca tenham se cruzado. Mais de duas décadas depois, um desenvolvedor decidiu uni-los com um projeto que certamente chamará a atenção.
Counter-Strike feito para falar a língua do PSP
O método escolhido para trazer Counter-Strike para o PSP se chama OpenStrike, um projeto que parece familiar na tela, mas por baixo dessa superfície, algo completamente diferente está em funcionamento. Este não é o jogo comercial da Valve rodando no portátil, nem é uma conversão direta de seu motor gráfico, mas sim uma nova implementação que traz de volta mapas, rounds, mecânicas de tiro e batalhas contra bots. Cada usuário deve contribuir com seus próprios mapas e texturas a partir de sua própria cópia, enquanto o movimento, as regras e a renderização dependem de uma base criada especificamente para o projeto.
Por trás dessa base está Yifeng Wang, conhecido como doodlewind no GitHub, um desenvolvedor envolvido em software de código aberto, interfaces e tecnologias web. Seu objetivo era testar o PocketJS e o Pocket3D e demonstrar que essa arquitetura poderia ir além das interfaces para suportar um jogo 3D em tempo real. Como ele explicou ao apresentar o OpenStrike, escolheu o PSP porque seu hardware não permite mascarar uma arquitetura ineficiente com mais memória ou poder de processamento. Se funcionasse no PSP, a demonstração seria muito mais convincente.
O primeiro obstáculo foi fundamental: o PSP não pode executar diretamente um programa criado para um PC. Seu processador usa uma arquitetura MIPS, diferente daquela para a qual o 'Counter-Strike' foi compilado, e o sistema, as bibliotecas e a forma de comunicação com o hardware gráfico também são diferentes. Copiar o executável para um cartão de memória seria como entregar instruções escritas para outra máquina. O código original teve que ser recompilado e adaptado, seu ambiente emulado ou, como fez Wang, uma nova implementação criada que falasse a linguagem do console desde o início.
Uma vez superada a barreira arquitetônica, uma batalha ainda mais difícil se apresentou: fazer tudo funcionar e responder a tempo. O PSP-1000 tinha 32 MB de memória, dos quais os programas podiam usar 24 MB, e seu processador atingia 333 MHz. Tudo o que era necessário para o jogo funcionar tinha que coexistir dentro desse limite de tempo. Manter 60 quadros por segundo significava resolver todo esse trabalho em cerca de 16,7 milissegundos por quadro, sem espaço para cálculos desnecessários.
A solução foi impedir que o PSP calculasse, durante o jogo, qualquer coisa que pudesse ser pré-programada. O OpenStrike incorpora a iluminação do mapa na própria geometria, adapta os recursos ao formato do console e utiliza informações de visibilidade pré-calculadas dos mapas BSP para limitar a renderização às áreas potencialmente visíveis. De acordo com as medições de Wang em um PSP físico, o teste executado no dust2 mantém 60 FPS, mesmo durante o combate. No entanto, permanece apenas uma prova de conceito, sem multiplayer, opção de compra ou todos os recursos do jogo original.
Como mostra a demo lançada pelo projeto, a colaboração entre 'Counter-Strike' e o PSP deixou de ser apenas um conceito. OpenStrike ainda está longe de reproduzir o jogo completo, mas cumpre sua promessa essencial: recapturar uma parte reconhecível dessa experiência. Esse é o verdadeiro objetivo do trabalho de Wang. Não demonstrar que o portátil possui um poder desconhecido, mas sim que suas limitações ainda podem ser o ponto de partida para a construção de algo novo.
Imagens | Yifeng Wang
Ver 0 Comentários