Como ser um programador de jogos: Códigos opensource
Muita gente tem mais facilidade em aprender vendo como se faz do que através de livros, por exemplo. Ver um código ou um projeto inteiro de exemplo ajuda bastante em alguns casos, e neste post vou mostrar alguns jogos famosos que tem seu código aberto (opensource).
Eu comecei a série Programando PONG com o objetivo de mostrar, através de um exemplo, a programação de um mesmo jogo em plataformas e tecnologias diferentes. Isso ajuda bastante a começar a entender tanto o código do jogo quando a tecnologia usada.
Por isso, decidi postar aqui alguns jogos muito legais que são opensource, e você pode baixar e revirar seu código a vontade para aprender e até tentar fazer funcionar em outras plataformas se quiser, é um bom desafio e ajuda a aprender detalhes da arquitetura de cada plataforma.
A empresa mais legal de todas para compartilhar códigos de jogos é a Id Software, eles abriram o código de praticamente todos seus jogos antigos no seu GitHub! Confira abaixo alguns jogos, e aprenda com o mestre da computação gráfica John Carmack. Todos foram desenvolvidos em C/C++, com partes em Objective-C no caso das versões de iOS.
Quake – https://github.com/id-Software/Quake
Quake 2 – https://github.com/id-Software/Quake-2
Quake 3 Arena – https://github.com/id-Software/Quake-III-Arena
DOOM – https://github.com/id-Software/DOOM
DOOM (iOS) – https://github.com/id-Software/DOOM-iOS
DOOM 3 – https://github.com/id-Software/DOOM-3
Wolfenstein 3D – https://github.com/id-Software/wolf3d
Wolfenstein 3D (iOS) – https://github.com/id-Software/Wolf3D-iOS
A Mojang, empresa que do Notch, o criador de Minecraft, participou de um Jam através do HumbleBundle e compartilhou o código do jogo Catacomb Snatch, desenvolvido em Java. Provavelmente muito código daí veio do Minecraft. Um jogo que o Notch estava desenvolvendo, 0x10c, e que teve sua produção congelada, teve seu código liberado também.
Catacomb Snatch – https://github.com/Maescool/Catacomb-Snatch
0x10c – https://github.com/mappum/0x10code
Outro jogo que vale a pena conhecer seu código é o Browser Quest, um jogo multiplayer online desenvolvido com HTML5 e Javascript. Além da arte ser muito bonita, feita em pixel art, você pode aprender muitas coisas legais relacionada a desenvolvimento web.
BrowserQuest – https://github.com/mozilla/BrowserQuest
Eu também tenho alguns jogos que coloquei no GitHub. Não são nada comparados com estes outros, mas também podem ajudar a aprender mais de uma determinada tecnologia. Pretendo adicionar mais jogos meus lá em breve!
Espero que tenha gostado desta lista, agora não tem desculpa para não aprender com tantos exemplos feitos por profissionais da área! Se tiver sugestões de código aberto para colocar nesta lista, deixe um comentário. Lembrando que é sempre bom procurar no GitHub por código de exemplo entre os vários projetos públicos que existem lá.