Minecraft feito em C

Na maior parte do tempo em que eu não estou programando, busco ver algo relacionado à programação. No YouTube, por exemplo, sempre procuro coisas relacionadas a programação. Então normalmente minhas pesquisas são do tipo: "dev", "developer", "programming" - sim, falta de criatividade.

Atualmente eu venho estudando C, então eu pesquiso mais sobre C pra tentar ser mais especifico. Uma coisa que sempre gostei foi de jogos, mesmo que ultimamente não venho jogando tanto (temos que fazer sacrifícios).

Uma coisa que sempre tentei fazer era juntar os dois [programação e jogos], mas não objetive tanto sucesso. Na verdade, o máximo que consegui fazer foi um snake game em C (também em Java).

Programação e Jogos

Voltando às minhas pesquisas totalmente criativas, desta vez resolvi pesquisar sobre "game programming", algo assim. Navengando, encontrei o canal jdh e o seu vídeo:

"Making Minecraft from scrath in 48 hours (NO GAME ENGINE)".

Fui assistindo o vídeo, e ele vem falando que iria construir o bendito do Minecraft usando C (sim, eu não prestei atenção no C & OpenGL que tá na thumbnail, talvez nem você tenha visto).

Eu assistia esse vídeo e achava tudo incrível, ainda mais porque ele tava construindo com C e era a linguagem que eu tô estudando, e eu achava que não era possível (por algum motivo). No final do vídeo eu tava com uma vontade imensa de... construir o meu próprio

O querer de fazer o seu próprio

Bem, eu não sou um programador inato nem algo do tipo.

Sou apenas um muleque de 16 anos (quase 17) que quer aprender a programar. Mesmo assim, a vontade de fazer era muita grande. Isso é algo ruim? Vejamos, criar um jogo é algo difícil para quem já sabe, imagine para iniciantes. E, fazer um Minecraft (refazer neste caso), um jogo que é grande, não é uma tarefa nada fácil para um iniciante.

Como já era de se esperar, não consegui criar o jogo.

Não fiquei muito frustado, já que eu tinha caido na real de tudo isso que eu falei agora - ainda bem. Então, percebi que eu tinha que ir pro básico dos games, criar um jogo mais simples. Eu, novamente, não consegui. Queria o Minecraft porque queria. Daí lembrei de uma coisa.

Open Source

Lembrei que existe uma coisa linda chamada GitHub (GitLab, CodeBerg... isso tá parecendo framework de JS). Lembrei do mundo Open Source e que o cara do video (jdh) deixou o código do Minecraft totalmente aberto.

Então, fui todo feliz, dei um git clone no repositório, entrei na pasta do projeto usando cd (porque eu sou Linux-User 🍷🗿), usei o make e... foi erro de compilação pra tudo que é lado.

Aqui eu já tava pensando em desistir pela 43° vez. Eu não aguentava mais não. Eu só queria instalar o bendito do Minecraft!! O que uma boa força de vontade não faz? Persisti, fui abrir o código e ver o que tava dando erro.

Uma que eu quero ressaltar, sempre tive medo de projetos grandes (que possuem várias pastas e arquivos). Mas isso é total ignorância. Isso é um medo que tem que ser eliminado o quanto antes - essa foi uma das motivações pra eu ter continuado a mexer nesse projeto.

Dizer, eu pesquisei, vi as Issues do GitHub (outra coisa que eu tinha medo), entendi um pouco sobre git submodules, entendi até o porquê são poucos os que fazem jogos com C (eu precisava soltar essa).

E, depois de tudo, consegui... consegui colocar o bendito do Minecraft escrito em C pra funcionar.

Foi bastante coisa que aprendi nesse curto período de tempo, parando pra pensar. Perdi medos que atrapalhavam a minha evolução.

O que eu quero fazer agora, depois que consegui rodar o Minecraft na minha máquina, é adicionar features no projeto, deixar as minhas contribuições. Não consegui fazer o meu do zero, mas vou partir de onde eu consigo. Eu acho que cada um tem o seu ponto de partida.

link do repositório do minecraft

Bem, essa foi a minha contribuição para um "pedaço mais massa na internet".

Parabéns pela persistência! C é uma linguagem difícil e complexa, definitivamente tem caminhos menos tortuosos, mas não é impossível.

Só tem um jeito de aprender mesmo: errando um monte, se frustrando mais ainda e estudando até dar certo.

Boa sorte!

Sensacional seu relato, realmente é assim mesmo que caminhamos para frente, um passo de cada vez, sempre adiante. Já sou um "velhinho", estou com 55 anos, mas amo programar. Desde o final dos anos 80, tomei essa "cachaça" chamada programação e nunca mais parei. Trabalhei muito tempo na indústria de software e tive a oportunidade de usar algumas tecnologias. Fiz faculdade, terminei um mestrado, mas sempre mantive acesa a chama da curiosidade e passei horas pesquisando.

Hoje, estou meio cansado da indústria de software e tenho feito coisas que gosto. Tenho focado em linguagens de sistema como C, C++ e Rust. Tenho estudado as APIs do Windows, Linux e macOS para entender mais a fundo as coisas. E estou me divertindo muito.

Parabéns pelo teu entusiasmo e tua perseverança em estudar, e pela gentileza em compartilhar suas experiências também. Realmente serão úteis para todos.

Boa sorte e sucesso nos seus estudos.