Introdução

Neste guia, estão apresentadas as perguntas e respostas mais frequentes da programação de jogos que permitirão qualquer pessoa iniciar-se, sem grandes dificuldades, na programação de jogos.

O que é preciso para tornar-me num programador de jogos?

Aqui está uma lista dos mínimos:

- um computador :)
- uma linguagem de programação (veja aqui)
- um compilador (veja aqui)
- gosto por jogos
- muita paciência

O que é uma linguagem de programação?

Uma linguagem de programação é a linguagem em que vamos "comunicar" com o computador.
Aqui estão as principais linguagens de programação de jogos:

- C/C++ - esta é a linguagem que predomina na indústria da programação de jogos. Rápida, completa e nem é fácil, nem difícil; porém muitas pessoas desistem ao ver como é difícil programar jogos em Windows/Linux. Mesmo assim esta linguagem é muito recomendada caso queira ser um programador de jogos. 
- Java - Java é uma evolução de C++. Usa só o paradigma POO (Programação Orientada a Objectos) e está a evoluir muito rapidamente. É multiplataforma, relativamente mais fácil que C++, mas também mais lenta. A predominante na indústria de telemóveis. 
- C# - (lê-se Cê - Sharp ou Ci - Sharp) Esta linguagem é a principal rival da linguagem Java. Embora seja nova vejo muita gente a mudar para ela, dizendo muito bem dela. Talvez não seja tão recomendada para o desenvolvimento de jogos 3D complexos, mas acho que vale a pena dar uma olhadela.
- Visual Basic - esta foi a linguagem em que programei primeiro e, apesar de ser bastante simples não gostei muito, pois é um bocado lenta e para jogos é um bocado esquisita. A interface é bastante simples e recomendada aos iniciantes que queiram fazer jogos simples.
- Dark Basic - esta linguagem é muito fácil de usar e com uma grande comunidade na internet. Para programação de jogos é melhor que o Visual Basic e para iniciantes com um projecto nas mangas, pode muito bem servir para o cumprir. 

Qual linguagem devo escolher?

Tendo em conta os parâmetros em cima acho que devia escolher a que melhor se adapta ao seu futuro. Se gostas de jogos e pretendes fazer apenas jogos simples escolhe qualquer uma das Basic. Se pretendes seguir seriamente a programação de jogos experimenta a linguagem C/C++, Java ou C#.
Eu actualmente programo em C++ e acho que é a melhor porque praticamente todos os jogos comerciais e conhecidos foram feitos com C/C++. Isto é a minha opinião, mas qualquer das 5 acima são boas para programação de jogos.

Como "falo" com o computador?

A verdadeira língua dos computadores são um conjunto de números '0' e '1'.
Imaginem se tivéssemos que programar um jogo bit por bit. Um jogo com 4 bytes ficaria assim:

00010010 00110001 01001101 11000011

Agora imaginem um jogo como Final Fantasy 8 que tem 4 Cds que equivale mais ou menos a 2,5 GB que são 2684354560 bytes ou seja muitos '1's e '0's em que os programadores tinham que ter cérebros melhores que os do Einstein.
Felizmente alguém inventou os compiladores em que os comandos são intuitivos e, geralmente, têm nexo.
Os compiladores são praticamente uns tradutores que traduzem a linguagem de programação naqueles '0's e '1's.

Agora vou-vos falar de IDEs (Integrated Development Environment ou Ambiente Integrado de Desenvolvimento) que tornam mais fácil o processo de criar programas. Por exemplo, fazemos Novo->Ficheiro de C++, escrevemos o código no ficheiro que nos aparece, e carregamos num botão e ele cria-nos o programa. Basicamente uma IDE é um conjunto de programas que estão juntos, facilitando muito a programação. Algumas IDEs, pelo menos as mais conhecidas:

C/C++:
Visual C++ - muito bom, mas não é grátis!
Dev C++ - usado por muitos, este compilador é grátis.

C#:

Visual C# - não é grátis
SharpDevelop - grátis

Java:

Net Beans - é grátis.
Eclipse - é grátis.

Visual Basic: O nome do compilador é mesmo este. É caro.

Dark Basic: Custa um pouco de dinheiro.

Quero aprender a linguagem X, onde posso arranjar tutorials ?


Aqui vai mais uma lista a recomendar tutoriais excelentes:

C++: 

http://psantos.zi-yu.com/wiki.aspx?topic=PRE.CppTutorial (Português)
http://agnor.gamedev-pt.net/gamedev/ (Português :P)

Java:

http://java.sun.com/docs/books/tutorial/ (Inglês)

Visual Basic:

http://www.vbtutor.net/vbtutor.html (Inglês)

Dark Basic:

http://www.unidev.com.br/artigos/introtodarkbasicduck001.asp (parte 1) (Português)
http://www.unidev.com.br/artigos/introtodarkbasicduck002.asp (parte 2) (Português)
http://www.unidev.com.br/artigos/introtodarkbasicduck003.asp (parte 3) (Português)

Em que sites posso obter ajuda / informações sobre programação de jogos?


Em muitos! Aqui vai uma lista de sites e forums:

http://www.pdj.com.br (Português)
http://www.gamedev-pt.net (Português) 
http://www.unidev.com.br (Português)
http://www.gamedev.net (Inglês)

Qual o próximo passo?

Depois de aprenderem a dominar bem uma linguagem de programação, o melhor é procurarem uma API 2D e depois avançar para 3D.

Algumas ajudas (todas em C/C++, infelizmente não conheço para outras linguagens):

OpenGL - É uma API multi-plataforma (funciona em windows, linux, etc.), feita só para gráficos .É muito utilizada pelos profissionais (muitos jogos conhecidos são feitos em OpenGL, por exemplo: Quake III, Half-Life, MDK2, Baldurs Gate, Decent 3, Madden NFL 2001, Nascar 4, Alice, Soldier of Fortune, entre muitos outros)

DirectX - Provavelmente a API mais conhecida. Dá para gráficos, som, Internet, teclado,etc. . Como foi desenvolvida pela Microsoft® (tem direito a um ® e tudo =P) A maior parte de jogos foi feita com DirectX. Se quiserem programar nesta API têm que fazer um grande download (mais de 100 MB) 

SDL - É uma API muito simples, ideal para começar (é em 2D). Também é multi-plataforma (funciona em Windows, Linux, MacOS, Playstation 2 (!!!!) etc.) Foi usada em alguns jogos ( Duke Nukem 3d ) e pode ser usada em conjunto com OpenGL. Dá para gráficos, som, teclado, internet e aquelas coisas todas ;)

Hyper64 - É uma API simples de usar em 2D. E foi feita por um português, Diogo Teixeira aka FoZi!!! A grande vantagem é que o autor fez um tutorial MUITO completo em http://fozi.codingcorner.net/tutorials/h64pt/ 

Tenho uma pergunta a fazer....

Mande-me um email ( rpgplus@iol.pt ) e tentarei responder a qualquer pergunta que os novatos façam.


Espero que isto vos ajude em alguma coisa

João Portela aka Agnor

 

O Webmaster recomenda

Curso grátis de programação de jogos

Anúncios