Aqui começo a falar sobre jogos, tanto em termos de conceitos quanto em termos de programação. Vamos usar uma nova plataforma que está para surgir no mercado em tablets e PCs no final desse mês, o Windows 8, e, pelas notícias dos últimos meses, o que discutirmos aqui valerá também para o Windows Phone 8, que ainda não tem o SDK disponível para todos os desenvolvedores.
Venha aprender também… ok, se não quiser programar para Win8, vamos falar também de forma abstrata para só depois mostrarmos ou disponibilizarmos o código, afinal, vamos utilizar o Cocos2d-x (https://code.google.com/p/cocos2d-x/), uma engine de jogos multiplataforma programada em C++, o que vale para Win8 muito provavelmente valerá para Android e iOS com mínimas modificações. Esse primeiro post é para dar os conceitos inicias.
Vamos ver se conseguimos fazer um passo-a-passo simples para os jogos que viermos a fazer, o que é preciso para se prototipar um jogo:
-
Tecnologia a utilizar (toque, acelerômetro, 2d, 3d, cartas, papel etc)
-
Sketch em papel da mecânica (qualquer um pode fazer)
-
Sons dos objetos
-
Decidir se é mais baseado em puzzles (níveis pequenos) ou histórias (níveis maiores)
-
Decidir como o score é feito (feedback ao jogador)
-
Criar uma história mínima para o jogo, isso dá mais sentido ao objetivo que você quer impor
Podemos dizer que há 4 bases sobre as quais um jogo se baseia, tecnologia, mecânica, estética e história, e isso não vale apenas para jogos digitas, mas também para jogos de cartas, RPGs contados por um mestre, jogos de tabuleiro etc.
Tecnologia
O conceito de tecnologia aqui falado é mais abrangente do aquele que pensamos no dia-a-dia que é majoritariamente atrelado ao digital, mas podemos utilizar virtualmente qualquer material como caneta, pedra, papel, tesoura, copo, travesseiro, lençol, madeira etc para fazermos um jogo.
Já temos um dispositivo em mente e o mesmo é digital, por isso que não vamos falar tanto sobre essa base tanto quanto as outras, vamos utilizar o termo tecnologia para nos referirmos a decisões de se o jogo é 2d, 3d, usa acelerômetro ou o toque ou os dois, usa a câmera etc.
Claro, podemos fazer um jogo onde você rabisca algumas linhas no papel, tira foto com a câmera do dispositivo, essa foto é processada, sendo transformada em um estágio onde você possa interagir, isso é uma interessante combinação do digital com o não-digital, mas também nos traz um assunto complexo, que é o processamento digital de imagem e isso vai além do que quero expor para vocês… por enquanto, mas não é uma má ideia tentar pensar mais nesse projeto, não é?
Mecânica
O segundo conceito que devemos entender é a mecânica.
Nada mais é do que decidir que elementos você vai usar para interagir com os personagens, com o ambiente, enfim, com o mundo virtual que você e seu time criaram, consistindo de regras e alguns objetivos… o seu sonhado jogo.
Por exemplo, as armas do seu herói podem ser armas de fogo, martelos, ou você pode se esforçar um pouco mais e tentar ver o que tem no balde do poço da sua criatividade, criando uma mecânica onde o terreno não seja apenas caminho, mas também uma arma ou que as nuvens não sejam apenas parte do background, mas interfira com o personagem? Como o personagem vai correr? Vai usar uma engine de física conhecida ou vai precisar criar a sua própria para atirar aqueles pássaros bonitinhos (nem tanto) nos porcos feiosos (Angry Birds usa Box2d, falaremos mais sobre ela em outros posts, já que um ou mais dos nossos jogos precisarão de uma engine de física)?
Faça jogos, você saberá criar cada vez mais perguntas úteis… e isso vale não apenas para a mecânica.
Estética
Há muitas aplicações por aí em que a estética é deixada para a última hora, por isso que você vê muitos jogos com uma mecânica boa, uma história razoável, mas tanto os elementos gráficos quanto os sonoros não combinam muito com a proposta do jogo, isso porque não há um feedback, não há um retorno do que esses elementos nos dizem para melhorar o jogo, mudar a história ou pensar em uma mecânica melhor, eles são pensados e criados apenas na iteração final do design, sobrando tempo para mais nada.
A estética, como as outras três bases, serve para expressar a proposta do jogo, atraindo o usuário cada vez mais para dentro do universinho que você criou, fazendo-o concentrar mais na experiência, isso permite que o jogador tenha mais chance de entrar em um estado de flow.
Flow é o estado em que nos encontramos quando fazemos algo pelo prazer de fazer, não apenas por uma obrigação, e isso é uma constante dos jogos, mas não são só os jogos que podem nos levar a uma experiência assim, experiências como alpinismo, ciclismo, conversas com os amigos, os sons e a beleza da natureza, trabalho etc, tudo depende de como você encara o que você faz, se é por obrigação com seu professor, com os pais, com a sociedade, com a cultura ou se é pela oportunidade de sentir tudo o que a experiência lhe oferece e onde você possa ter oportunidade de agir sobre a mesma.
História
História… bem, esse é o conceito mais fácil que temos aqui, sem mais, você sabe o que é.
Ou você faz/adapta uma história e depois cria o jogo em cima dela ou pensa no design do jogo e depois tenta encaixar a história nele. Uma coisa que posso dizer é que a história é a base mais fácil de ser movida, modificada, escalonada etc sem perder o sentido do todo, sem ficar fora de encaixe na experiência que você está tentando criar. Mas claro, tenham parcimônia, não quero o escritor (caso não seja você mesmo) chateado no final por suas ideias serem sempre modificadas.
O que mais?
Falaremos mais sobre esses e outros conceitos nos próximos posts.
Prepare seu ambiente de desenvolvimento no Win8 e espere até a próxima semana, onde iniciaremos as explanações necessárias sobre C++ com Cocos2d-x, Box2d, especificidades do Win8 etc.
Ainda estou em dúvida qual dia é melhor para postar, mas a sexta está ganhando já que tem o final de semana para que vocês possam estudar, se divertir, entender, sair por aí, mandar dúvidas e, o melhor, criar o que vocês tem para criar.
Apoio: MicEtepam
By: Paulo Feodrippe