O que é um jogo de computador?
Tive a oportunidade de ministrar mini-cursos e apresentar algumas palestras sobre desenvolvimento de jogos. Esse tema é facinante, no entanto gera muita confusão. O primeiro problema é o medo que os aspirantes a desenvolvedores de jogos têm, porque o jogo parece ser uma coisa mÃstica e inerentemente difÃcl. O segundo problema é entender a diferença entre um jogo comercial e um “joguinho”, mais ou menos a diferença entre um sistema de controle organizacional e um aplicativo de controle de CDs que construimos durante um curso de programação. O terceiro problema é entender que criar um jogo de computador é uma atividade multidisciplinar e portanto existem limites para a quantidade de tarefas que podemos realizar de forma individual e independente. Dificilmente uma pessoa terá fluência em todos os apectos, desde a escrita do roteiro do jogo até a programação, passando pela parte de sons e imagens.
Bom, em relação a esses problemas é preciso tratar cada um de forma independente e por isso eles foram organizados de forma crescente
- Jogos são entidades mÃsticas difÃceis – a grande dificuldade aqui está no fato de perceber que os jogos (eletrônicos sejam de computador ou de consoles), são programas de computador tradicionais a diferença está exclusivamente na forma de apresentar os dados para o usuário. Ora, consideremos um jogo simples como o “Jogo da Velha” (tic-taci-toe em inglês), este jogo consiste em uma grade com 9 campos onde dois jogadores se alternam em turnos marcando cada um seu sÃmbolo (tradiocionalmente um X ou um O) em cada uma das casas livres. Ganha o jogador que conseguir marcar 3 casas na vertical, horizontal ou diagonal. Até aà não falamos nada de computador, só das regras de negócio do sistema, até aà estamos fazendo a “análise” (e o ideal é que isso seja escrito de forma clara para sabermos o que faremos), mas vamos pular diretamente para as internas. Uma forma tradicional de representar o jogo da velha é uma matriz 3×3 de inteiros iniciada com valores 0, uma variável “turno” indica o valor do jogador atual, ou seja, de quem é a vez. Quando o jogador representado por “turno” (digamos 1) faz sua jogada, mudamos o valor dessa variável para o valor do outro jogador (digamos 2), e marcamos na matriz o valor do jogador que fez a jogada (o valor 1). Assim a matriz vai sendo preenchida com os valores dos jogadores, a cada jogada verificamos todas as linhas colunas e as duas diagonais para saber se alguém ganhou e se ainda existem jogadas possÃvies (se ainda existem casas com valor 0). Até aqui só falamos de procedimentos internos então o que sobre realmente é a questão de como mostrar o estado atual da matriz na tela e como ler da tela onde o usuário atual clicou para sabermos qual célula foi selecionada pelo usuário para podermos converter isso numa posição da matriz. Outra comparação interessante é a criação de personagens, se considerarmos jogos mais sofisticados tais como os da série Need for Speed e jogos tipo RPG como Rise of Nations: Rise of Legends, nesse tipo de jogo temos que cadastrar um personagem para (com diferentes graus de detalhe) isso equivale por exemplo a um cadastro de contatos que fazemos em um sistema de controle de agenda telefônica (exemplo comum em disciplinas de programação) mais uma vez a diferença reside na interface, que nos jogos costuma ser desenhada com gráficos diferente de janelas de cadastro convencionais.
- Um “joguinho†não é um Jogo comercial – um “joguinho” é como um “programinha”, ou seja, é uma parte semi-acabada que dá para usar, mas que não tem os componentes minimamente necessários para ser distribuÃdo (mesmo que gratuitamente.) Para distribuirmos um jogo é necessário que o jogo esteja completo, ou seja, que tenha uma tela de abertura, instruçõe dentro do jogo para o usuário saber o que fazer, componentes áudio-visuais, história, objetivo, controles bem definidos e em muitos casos um controle de pontuação. Em geral como “hobbystas” nos concentramos na parte central do jogo, ou seja, na parte de interação do usuário e protelamos os outros componentes, o resultado é um jogo que só nós mesmos conseguimos jogar (ou alguns amigos e familiares). Dificilmente um usuário desconhecido que baixa um jogo da internet sem toda a estrutura vai dar atenção ao jogo, pelo menos não a atenção que gostarÃamos que nosso jogo tivesse, mas nesse caso a culpa é do próprio desenvolvedor! Muitas vezes o que acontece é que os desenvolvedores independentes acabam por se concentrar em fazer pequenas partes de jogos que mostram como usar uma ou outra técnica exatamente para fugir desse problema. Uma outra face desse problema é o fato de que as plataformas para criação de jogos não proveem todos os recursos necessários para esse desenvolvimento, ou seja, para cada jogo que vamos construir tudo acaba tendo que ser desenvolvido novamente, embora os frameworks tenham a parte de infra-estrutura bem resolvida, faltam componentes básicos, tais como controle de estado de jogo, telas e por aà vai.
- Um jogo de computador é uma atividade multidisciplinar – tendo compreendido que um jogo completo para distribuição deve conter uma quantidade de itens gráficos, sonoros e programas de computador, fica claro que precisamos de pessoas com capacidades técnicas e artitÃsticas complementares para fazer um jogo grande. Isso não quer dizer que não é possÃvel fazer um jogo completo sozinho, mas necessariamente vai levar mais tempo para atingir a qualidade reconhecida e/ou esperada pelo público. O importante é entender que não dá para fazer tudo e achar que vai ter o mesmo resultado que uma equipe.
Tendo apresentado esses pontos seria bom agora falar que é possÃvel fazer jogos interessantes e divertidos que podem atingir sucesso com equipes reduzidas e/ou sozinho. É claro que sendo uma atividade multidisciplinar eu vou falar apenas da parte de programação, talvez em outra oportunidade eu volte a esse assunto e me aventure a falar sobre tópicos que não são da minha área.
Em minha experiência prática, e tendo consciência de que não sei desenhar nem compor, acabei por procurar na internet recursos gráficos e de áudio que pudesse usar. É importante prestar atenção aos tipos de licenças que encontramos pela internet, nem tudo que está na net é “grátis.” E isso pode não incomodar as pessoas, mas se você pretende distribuir um jogo (mesmo de graça) tem que escolher itens gráficos e de áudio que sejam também gratuitos, e podemos encontrar muito material.
Tendo uma ideia da história do jogo, os personagens, objetivos, controles, itens gráficos e de áudio podemos passar para a programação. É claro que sempre podemos começar a programação usando pequenos quadrados coloridos para representar os personagens, mas é bom ter uma ideia clara da história antes de começar a programação, porque sem definir o problema fica um tanto difÃcil.
Como falei, temos que definir as estruturas internas do jogo, ou seja, como vamos representar os valores que serão controlados ao longo do jogo, por exemplo, quantidade de energia, velocidade atual, itens carregados, poder de cada item, posição atual e por aà vai, se estivermos falando de programação orientada a objetos isso mapeia muito bem com um objeto para o jogador por exemplo. Podemos até mesmo usar a estrutura de dados que mantiver as informações do estado do jogador para guardar uma referência da figura que deve ser desenhada.
Geralmente as plataformas para desenvolvimento de jogos contam com uma função ou método para desenhar o estado atual do jogo na plataforma Love 0.5.0 está função chama draw. Em todos os casos o que você escrever dentro da função será desenhado para o usuário, é aqui que acontece a mágica, diferentemente da programação de sistemas de informação com suas telas “sérias,” os jogos apresentam os valores do sistema com uma tela agradável e/ou desenhada o que nos dá uma sensação de um mundo próprio do jogo.
Dessa forma desmistificamos o que é um jogo de computador (ou de vÃdeo-game.) Seria um tanto complicado se cada sistema de informação que construÃssemos fosse necessário trabalhar todos os elementos de tela da mesma forma que acontece em um jogo.


gostaria q vc pudesse me fornecer nomes de
programas para criar jogos online(mmorpg). tbm
gostaria q vc me enviasse dicas para criar jogos…
desde já muito obrigado pela atenção…
aguardo resposta…
É verdade Paulo Motta. Com um bom planejamento de como será o jogo, fica mais simples criar o jogo.
gostava de saber programas para criar jogos de questionários para computador. Também agradecia algumas dicas de como fazer.
Obrigado pela atenção
Espero resposta…
Tiago, eu não conheço nenhum programa gerador de jogos de questionários, mas isso não é muito complicado de fazer. Na verdade o que você precisa é de um cadastro de perguntas com respostas e uma marcação de qual resposta é a correta, além disso um mecanismo para controlar o estado atual do jogador, ou seja, quantas (e talvez quais) perguntas o jogador acertou, quantas (e talvez quais) errou e a pontuação atual. Vou incluir na lista de tutoriais ok ?