Atualmente pretendo aprender um pouco sobre o desenvolvimento de jogos, e gostaria de partilhar um pouco dessa jornada com a comunidade, de forma que a medida que vou aprendendo, pretendo ir escrevendo alguns tutoriais aqui sobre o assunto.
Antes de mais nada precisamos escolher uma linguagem de programação adequada, obviamente não iremos desenvolver nenhum jogo AAA e focaremos em jogos mais simples sendo assim uma linguagem como javascript ou mesmo python poderia dar conta do recado, porém pensei muito a respeito e optei por utilizar uma linguagem mais baixo nível que nos permitisse controlar coisas como o uso de memória de uma maneira satisfatória.
A primeira linguagem que me veio em mente foi o famigerado C++, a qual é largamente utilizada na indústria de games e por tanto battle tested, todavia o C++ não é uma fera fácil de ser domada e creio que o conhecimento sobre certos conceitos e práticas que seriam necessários para desenvolver um jogo usando C++ iriam ser difíceis de se transmitir para todos da nossa comunidade.
Sendo assim a solução que encontrei foi utilizar a linguagem RUST, a qual é uma linguagem de baixo nível bem mais moderna, mais simples e que carrega vários conceitos bem diferentes do que estamos acostumados e que são muito interessantes como o fato de a linguagem não possuir um tipo NULL.
Mas não é só isso, a linguagem possui todo um eco sistema moderno com varias ferramentas que irão ajudar no nosso dia a dia como por exemplo:
- Cargo o gerenciador de dependências e de build
- rustfmt um formatador de código que formata o layout do código de acordo com as diretrizes da comunidade (sim com certeza foi inspirado no gofmt)
- Rust Language Server, um pequeno servidor que roda em background e funciona como uma especie de fonte de informações sobre rust para outras aplicações como IDE's e editores de texto o que faz com que seu editor de texto possa checar a syntax do código ou auto completar o código para você.
- E claro o compilador do RUST que é fenomenal e creio que vocês irão entender o porque conforme formos avançando na nossa jornada.
O RUST também é muito bom no desenvolvimento de drivers, web servers, ferramentas para linha de comando, sistemas operacionais, blockchains e IOT.
Varias empresas utilizam RUST em seus produtos entre elas posso destacar:
Amazon, Dropbox, Yelp, Google, Facebook, EA games, Mozilla entre outras.
Como o nosso amigo @ThiagoDV ja nos passou muito de seu conhecimento a respeito de programação eu não ficarei me atendo muito a explicações mais básicas do tipo 'o que é uma variável', porém RUST é uma linguagem fortemente tipada, compilada e que possui conceitos que não encontramos em outras linguagens de programação uma introdução a linguagem se faz necessária antes de começarmos a desenvolver jogos ou a mexer com computação gráfica.
No próximo post ensinarei como instalar a linguagem e seu ferramental nos principais sistemas operacionais (Windows, MacOS e Linux) e como criar um hello world usando RUST.
O.B.S.: queria frisar que não sou desenvolvedor de jogos, nem profundo conhecedor de RUST, e como disse os posts são mais uma maneira de compartilhar o que vou aprendendo do que transmitir um conhecimento supremo acumulado por anos.