Criando um novo jogo a partir de um gênero antigo com Horizon Chase

0 Flares 0 Flares ×

(Este é um repost do Horizon Chase devblog, traduzido livremente)

Oi! Meu nome é Felipe Dal Molin, eu sou o game designer do Horizon Chase.

O Horizon Chase é um jogo de corrida retro, inspirado nos clássicos da era 8-bits e 16-bits, desenvolvido pela Aquiris Game Studio. O jogo foi lançado há dois meses exclusivamente para iOS e, até agora, tem recebido comentários e aceitação incríveis dos jogadores, sendo escolhido como Escolha do Editor da App Store, e ainda ganhando um lugar na capa da nova conta Twitter da Apple.

Gostaria de mostrar alguns dos desafios que tivemos que superar ao produzir o Horizon Chase, e algumas das soluções que encontramos para criar um jogo de corrida que traz nostalgia e modernidade ao mesmo tempo. Esse post foca em alguns pontos interessantes de jogabilidade e sensações do jogo. No próximo falarei um pouco sobre o meta-game.

As raízes do Horizon Chase estão nas convenções estabelecidas pelos jogos de corrida entre o final dos anos 80 e início dos anos 90. Especialmente o Top Gear da Kemco, desenvolvido especialmente para o SNES, que foi um enorme sucesso entre as crianças brasileiras da época.

Horizon Chase 1

O gameplay em jogos como esses era muito simples e direto. Você tinha que evitar os carros dos adversários e os obstáculos, indo para a esquerda e para a direita, tentando não estragar tudo nas curvas. Sair da estrada, atingir um poste ou bater em um oponente, fazia você perder velocidade, posições e um tempo precioso. Havia, também, o uso limitado de nitro para se recuperar de um erro ou ganhar vantagem sobre os outros carros.

Isto é, tudo muito arcade mas enxuto. Não há desafios de drift, destruição de inimigos, aquaplanagem, itens especiais ou armas customizadas.

Ao definir a abordagem para o nosso jogo, não optamos pela simulação do espectro como, por exemplo, fazer o jogador considerar cuidadosamente cada movimento baseado na configuração personalizada do seu carro.

Estas foram as nossas limitações auto-impostas quando começamos a fazer o Horizon Chase. Porém, eu acredito que o nosso primeiro erro de design foi presumir que o gameplay estava “pronto” por causa disso. Aprendemos com os vários problemas que experimentamos em primeira mão, que nasceram a partir desse modo antigo de fazer corridas, e alguns que vieram de tentar fazer esse modelo funcionar 25 anos depois.

Um desses problemas era compreender curvas.

Aprendendo as curvas

Veja bem, o Horizon Chase tem a mágica dos anos 90 sob o capô. A magia é o que faz o jogo funcionar sem problemas em hardwares mais antigos, e garante que o jogo traga o mesmo sentimento dos jogos antigos, com linhas paralelas correndo rápido e um carro um pouco preso na direção da pista. Não vou entrar em detalhes aqui, mas tivemos de descobrir um monte de soluções para problemas que seriam mais simples de resolver se nós nos propuséssemos a fazer um jogo de realidade 3D . Problemas como as curvas.

Em nossas principais referências do gênero, uma curva age como uma força de atração gravitacional que coloca o jogador em uma situação binária de tensão. Ou você está em uma curva ou você não está. Quando você está em uma curva, você está ganhando (over-steer), perdendo (sub-steer) ou você está apenas seguindo. Tudo depende da direção do seu carro e da força da curva. Se você jogou Horizon Chase ou Top Gear saberá do que estou falando.

No começo, tentamos usar Curvas de Bézier para desenhar os circuitos em 3D Studio MAX. Béziers são curvas feitas através da criação de pontos de ancoragem, ajustadas nas alças para suavizá-las. Elas são ótimas, mas logo aprendemos que as Béziers não funcionariam conforme o esperado no nosso sistema. O problema é que, para chegar nesse gameplay old-school, a força da curva deveria ser sempre constante. Em retrospectiva, é um conceito simples, mas nos levou um tempo para entender onde estávamos falhando. Ao desenharmos curvas usando Béziers, nós sempre acabávamos com curvas com uma jogabilidade estranha, puxando o carro para fora do caminho, só para deixá-lo ir um pouco mais para frente.

Abaixo está uma comparação entre uma pista com curvas ideais, feitos a partir de meios círculos, e a mesma pista com pequenos ajustes nas alças Bézier. As barras azuis e verdes/amarelas representam a força da curva em cada ponto. Como aconteceu, a menor diferença entre as alças de um ponto foi o suficiente para estragar completamente o design.

Curvas

Nós tentamos várias coisas na programação: a filtragem de saída da curva usando uma média dos ângulos, usar a distribuição gaussiana, cobrindo cada ponto pela média dos 10 anteriores e 10 seguintes pontos, e a lista continua…

Point to point

gaussiana

angulo de 10 pontos

Média entre pontos

average+easing

average+flattening+easing

No fim das contas, percebemos que todas as abordagens quebravam as curvas de um jeito ou de outro. A curva que seria a ideal não se encaixava na representação visual do jogo; Havia voltas invisíveis acontecendo ao longo das estradas retas; Algumas interações fizeram as curvas parecerem boas, mas longe de serem constantes … Então começamos a tentar resolver o problema pelo level design.

Tentativas

Reunimos um conjunto de módulos que poderiam ajudar a projetar circuitos geométricos, sem ter que depender das alças Bezier. O processo resultou em circuitos com curvas perfeitas, mas foi bem excessivo para um jogo cuja proposta era ser um jogo de corrida arcade simples. Além disso, transformar um esboço orgânico em uma pista de ângulo e ponto perfeitos foi muito doloroso.

Pista 1

O que nos salvou de meses de puro sofrimento em level design foi a ferramenta Arc de MAX. Usando os arcos, o novo fluxo de trabalho foi traçar uma pista usando somente linhas retas, e, em seguida, encaixar nas seções de arco. Quanto menor for o arco, mais nítida a curva.

Arc Tool 1

Ainda tivemos que soldar cada curva para a pista, e converter os cruzamentos em pontos Bezier, sem bagunçar alças da curva, antes de exportar os dados para serem traduzidos para um circuito. Mas funcionou, e finalmente tivemos as curvas binárias dos arcade que aprendemos a amar, como o Top Gear e similares!

Finally

No fim, todos os novos conhecimentos sobre a aplicação de gaussianas e médias, na parte de programação, também foram úteis para tornar as transições de estradas retas para curvas tão suave quanto possível, como você pode ver abaixo.

Curvas ideais

Ideal+Gaussiana

Ideal + Gaussiana + Easing

Auto-curva

Cada decisão de design é uma concessão. Uma coisa que herdamos de jogos de corrida clássicos e teve que melhorar é o que um usuário apelidou de “recurso de auto-curva”.

Observe que no exemplo abaixo do Top Gear, eu não virei totalmente e ainda assim eu só acertei o 3º ou 4º sinal após o que eu estava mirando.

Top Gear

Parece que a estrada está me ajudando um pouco, mesmo se eu tentar correr em linha reta, para fora da pista. Em jogos como este, existem algumas curvas que você nem tem que fazer, são muito sutis ou muito curtas:

Top Gear 2

Viu como corri para a frente e ainda assim eu acabei 90º de onde eu comecei no mapa? Nessa pista do primeiro Top Gear em particular, se não fosse pelos inimigos e obstáculos, eu só teria que virar algumas vezes. Este “privilégio” é ainda mais evidente nos clássicos como OutRun.

tumblr_inline_nufdylO8JX1tq3x2w_500

Este é um subproduto da forma como o mundo é simulado em jogos como o Top Gear, OutRun, Lamborghini American Challenge, Lotus Turbo Challenge, Jaguar XJ220 e o nosso. Feito para uma jogabilidade que era exclusiva para esses jogos de corrida pseudo-3D. O efeito remete-se ao Atari Night Driver de 1976 e ao  Enduro da Activision de 1983, e que deixou de ser o “hit do momento” quando Daytona EUA e a série Cruis’n chegaram com tudo.

Está longe de ser uma corrida realista. Mas proporciona uma experiência de jogo divertido, e não diminui desafio de modo algum.

 

No Horizon Chase, queriamos recriar este ponto do tempo, quando os pseudo-3D governavam o mundo. Depois do ambiente simulado estar instalado e funcionando, tivemos de cuidadosamente iterar a capacidade de direção do jogador à força da curva, para fazer com que a curva não fosse estranha e não tornasse a jogabilidade nem tão fácil e nem tão difícil. Lembre-se, ou você faz uma curva muito fechada, ou muito aberta ou segue a curva perfeitamente. Só não pode fingir que ela não existe.

Algumas vezes, durante as últimas semanas de desenvolvimento, tentamos melhorar a sensação fazendo o carro virar um pouco, automaticamente, para onde a estrada está levando. Compare estes dois gifs:

Gif 1

gif 2

O gameplay não mudou nada quando implementamos isso. O jogador vai bater nas placas e sair da pista da mesma forma que ele iria de qualquer maneira. No entanto, a sensação de controlar um carro real melhorou muito.

O Feedback é o Rei

Outra das reformas que tivemos de fazer foi criar um feedback de jogadores adequado, por meio da atualização do manuseio da câmera, animações e controles. Nos jogos clássicos, o carro era colado no meio da tela. Queríamos manter essa sensação e, ao mesmo tempo, aumentar a sensação de velocidade, controle e tensão do jogador.

O primeiro gif abaixo mostra a câmera padrão, com o carro sempre ocupando o centro da tela. O segundo gif é a mesma corrida com zoom-out ao usar nitro e zoom-in durante a frenagem.

Além disso, nós colocamos um pequeno deslocamento horizontal e ângulo de inclinação na câmera quando o jogador está indo para a esquerda e para a direita, para aumentar a sensação de presença e do risco ao se fazer uma curva. Esses ajustes sutis só terão efeito a uma certa velocidade, mas eles tornam o jogo mais dinâmico, quando você está em alta velocidade e atira seu carro de um lado para o outro da pista.

HC 1

Os controles e o peso percebido do carro também foram fundamentais para o Horizon Chase. Nosso objetivo era simples, controles responsivos onde o carro atuava mais como uma extensão do jogador do que como uma besta selvagem que teriam de conter antes de entrar em cada curva.

O primeiro passo nessa direção foi a remoção completa do controle do freio, que achei uma decisão arriscada naquele momento. Como o jogo seria um título mobile em primeiro lugar, nós sentimos que liberar nitro e o uso de freios eram duas ações que seriam redundantes e confusas para o feeling arcade que buscávamos, e não acrescentaria nada positivo ao desafio. Ao torná-lo mais simples, terminamos com o ajuste mais natural que estávamos buscando para o jogo .

Além do freio, tivemos que adicionar um grande montante em direção, colisão, giros, e deslizes, tudo isso usando animação, o peso e o tempo certos para cada uma dessas interações fundamentais.

A direção ficou mais legal depois que acrescentamos um pouco de inclinação de acordo com a leve rotação do carro em seu eixo longitudinal – quando ele se transforma, e o filtro de entrada – que armazena os inputs do jogador a cada quadro, durante um tempo definido.

Mesmo com a direção sendo uma entrada binária por design, obter o Filtro de Input direito foi crucial para adicionar uma sensação de peso e inércia para o carro, com a resposta certa para o movimento do jogador. É provavelmente a principal razão pela qual tivemos tantos elogios por fazer controles de toque agradável.

Esta técnica também nos deu, gratuitamente, a possibilidade de adicionar chuva e neve como modificadores de jogo!

Conclusão

Fazer um jogo novo a partir de um gênero antigo, algumas décadas mais tarde, não é fácil. Você precisa ir além dos esqueletos dos antigos jogos e tentar capturar a essência do que o tornou grande na época, tanto esteticamente quanto sistemicamente.

Apesar de alguns gêneros e convenções terem uma boa razão para desaparecer com o tempo, há experiências de jogo que são universais, como a tensão, a concorrência e a vontade de explorar novos horizontes. Eles vão se conectar com os jogadores hoje como faziam antigamente, e farão o mesmo daqui a mais 20 anos.

Claro que você também pode querer partes dos esqueletos dos jogos antigos, para fazer o seu mais autêntico, e em seguida, haverá obstáculos que você pensaria que a humanidade já havia superado até agora. Todo o tempo tentando apelar para as pessoas que nasceram após a conexão onipresente da internet, quando gráficos realistas eram a norma. Talvez em uma plataforma que seja mais conhecida por esmagamento de doces. Isto poderia significar quebrar alguns paradigmas que não são totalmente quebráveis.

Apenas não caia no pensamento de que um game design está “pronto”, porque isso já foi feito no passado, ou se você estará em uma longa e frustrante caminhada.

No próximo post, vou tentar divagar sobre a dificuldade, a progressão e o metagame social do Horizon Chase. Até logo! 🙂

Nota do Raphael: se você já desenvolve jogos ou pretende entrar nessa área, não deixe de ver o post do CEO da Aquiris com 7 lições para desenvolvedores de jogos!