Guia de programação de jogos para Linux

Esse artigo visa explicar os conceitos básicos para quem quer começar a desenvolver jogos que rodem no linux. Aqui falaremos sobre componentes como GCC, SDL ou OpenGL. Para quem desenvolve para o ambiente Windows, o componente básico para efeito de comparação seria basicamente o DirectX.

Se você não ainda tiver instalado alguma distro linux, faça-o agora. As principais distribuições são Ubuntu, Fedora e OpenSuse. Após a instalação, verifique se a placa de video está instalada corretamente. Se você possui placa de video com chipset Nvidia ou Ati, provavelmente precisará instalar o driver manualmente. Abra o “Hardware Manage”  ou aplicação similar de sua distribuição.
Para começar, vamos criar e compilar um programa “hello world” minimo. Mas qual compilador usar? Pode não existir um Microsoft Visual Studio no LInux, mas todas as distribuições vem com o GCC instalado. Aqui nesse artigo, usaremos basicamente a linguagem C.
Hello World
Certo, vamos agora mostrar o básico sobre o GCC. Crie uma pasta, e dentro dela um novo arquivo chamado hello.c. Abra o arquivo com seu editor de texto preferido e insira o seguinte código dentro dele:

/*
	hello.c
	A Hello World Example for Linux
	written by WolfCoder (2008)
*/
/* Includes */
#include <stdio.h>
/* Main */
int main()
{
	/* Welcome the user */
	printf("Hello, world!\n");
	/* Exit */
	return 0;
}
Certo. Agora precisamos que o GCC compile e execute esse código.
O linux suporta alguns arquivos de lotes chamados Makefiles, que
funcionam da mesma forma que os arquivos .bat usados no Windows.
Existem muitas coisas que você pode fazer com um Makefile, mas a
sintaxe básica é a seguinte:
<target>: <list of files to depend on>
   <command>
   <command>
   ...

“target”  é um nome, por exemplo “compile”. Depois dos dois pontos, você tecla TAB e entra com nomes de arquivo, separados por um espaço.  Os comandos no Makefile são simples instruções de linha de comando. Simples? Bem, crie um novo arquivo de texto chamado “Makefile” e não adicione nenhuma extensão a ele. Coloque o seguinte código nele:

compile:	hello.c
	gcc -c hello.c
	gcc hello.o -o hello
	./hello

Não esqueça de pressionar enter no final do arquivo. Basicamente,  esse arquivo faz com que a se digitar “make compile” na linha de comando, se o arquivo hello.c foi modificado, os comandos do arquivo serão executados e os arquivos serão compilados e o arquivo binário será executado.
Hello SDL
Agora que você sabe o básico sobre como funciona o processo de compilação no Linux, vamos partir para um exemplo básico com SDL. No próximo exemplo, iremos abrir uma janela em branco em SDL. SDL é um sistema simples para jogos 2D, é funciona perfeitamente para programar jogos no Linux.
Assim, criar uma nova pasta chamada “sdltest” e crie um novo arquivo chamado sadltest.c com o seguinte código:

/*
	sdltest.c
	Tests SDL under Linux
	written by WolfCoder (2008)
*/
/* Includes */
#include </usr/include/SDL/SDL.h>
/* Globals */
SDL_Surface *screen;
SDL_Event event;
/* Main */
int main()
{
	/* Initialize SDL */
	SDL_Init(SDL_INIT_VIDEO);
	/* Set video mode */
	screen = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);
	/* Enter a loop */
	while(1)
	{
		/* Check for user quit */
		while(SDL_PollEvent(&event))
		{
			if(event.type == SDL_QUIT)
			{
				/* Stop the test */
				SDL_Quit();
				return 0;
			}
		}
		/* Fill with black */
		SDL_FillRect(screen,&screen->clip_rect,SDL_MapRGB(screen->format,0,0,0));
		/* Update */
		SDL_Flip(screen);
	}
}

Agora, crie um arquivo Makefile na mesma pasta com o seguinte código:

compile:	sdltest.c
	gcc -c sdltest.c
	gcc -lSDL sdltest.o -o sdltest
	./sdltest

Notou o lSDL? Essa opção precisa vir ANTES de qualquer outra opção do GCC, indicando que você esta usando a biblioteca SDL.
Conclusão
A partir daqui, tudo que você precisa é aprender SDL. Não há nada mais relacionado ao linux que você precise se preocupar no momento, mas também deixe a mão qualquer tutorial sobre o linux sobre coisas como ferramentas e bibliotecas para criar jogos, e como criar versões para Windows de seus jogos.
Antes de terminar, segue uma lista de ferramentas que podem lhe ajudar a criar jogos. Você pode achar essas aplicações no Gerenciador de Instalação de sua aplicação.
GIMP (provavelmente já instalado) para criar imagens.
Audacity para editar arquivos de som.
Blender para criar modelos 3D.
Traduzido e Adaptado de: http://www.dreamincode.net/forums/topic/63945-game-programming-in-linux-for-windows-programmers-part-1/