
O
Prazer de Programar Mundos
Lápis
e papel na mão... Isso mesmo que você leu.
No começo dos anos 80 era assim
que a gente começava a criar um programa de computador
ou, melhor ainda, um jogo. Meu primeiro micro tinha meros
2 kilobytes (2Kb) de memória
ram. E dava pra criar muita coisa bacana, mas todo programador
quer mais, muito mais. Eram outros tempos e a pergunta que
aparece hoje, principalmente entre quem está chegando
agora ao desenvolvimento de jogos, é se ainda vale
a pena aprender programação.
A
pergunta faz sentido. Afinal, estamos cercados por engines
visuais, sistemas de arrastar e soltar, assistentes inteligentes
e ferramentas que prometem criar quase tudo automaticamente.
À primeira vista, parece que escrever código
está se tornando uma atividade do passado. Curiosamente,
a história mostra exatamente o contrário.
Nos
anos 80, programar era um exercício
de audácia tecnológica. Quem teve contato
com computadores como o TK-85, CP-200,
MSX, CP-500, Apple
II, TRS-80 ou ZX Spectrum
sabe do que estou falando. Os compiladores eram simples,
lentos e muitas vezes nem existiam da forma como entendemos
hoje (geralmente compilador e jogo compilado disputavam
o mesmo espaço na memória).
Naquela
época, os recursos eram extremamente limitados: processadores
lentos, armazenamento precário e ferramentas rudimentares.
Mas havia uma vantagem enorme, que era a relação
entre o programador e a máquina. Você escrevia
uma instrução e imediatamente entendia o resultado.
Com
o passar dos anos surgiram compiladores mais sofisticados.
Vieram Pascal, C, C++,
Delphi, Java e inúmeras
outras linguagens. Os ambientes de desenvolvimento evoluíram
junto. Aquela tela preta cheia de comandos foi sendo substituída
por interfaces gráficas, depuradores, sistemas de
ajuda, bibliotecas prontas e ferramentas cada vez mais poderosas.
Olhando para trás, por um breve momento, essa foi
uma jornada e tanto e a memória (a real, biológica)
ainda guarda esses fantásticos momentos de transição.
Com
a evolução das máquinas a produtividade
aumentou de forma impressionante. Uma tarefa que nos anos
80 exigia centenas de linhas de código
hoje pode ser resolvida com poucas instruções.
E aquilo que antes levava semanas para ser implementado
frequentemente é concluído em algumas horas.
E então chegou a inteligência artificial.
Como
aconteceu com praticamente toda novidade tecnológica,
primeiro veio o exagero. Alguns anunciaram o fim dos programadores.
Outros decretaram que ninguém precisaria mais aprender
lógica ou algoritmos. Bastaria descrever o que queria
e a máquina faria o resto. Não está
sendo exatamente assim.
A
IA se tornou uma ferramenta extremamente útil para
quem programa. Ela ajuda a localizar erros, sugerir soluções,
escrever trechos repetitivos, documentar sistemas e acelerar
tarefas mecânicas. Em muitos casos funciona como um
colega de trabalho que está disponível vinte
e quatro horas por dia (o que é, venhamos e convenhamos,
um adianto gigantesco na produção de linhas
de código).
Mas
ela continua dependente de alguém que saiba o que
está construindo. Porque programação
nunca foi apenas escrever código. Programação
é resolver problemas. É transformar uma ideia
abstrata em algo que possa existir.
Também
surgiram linguagens e ferramentas voltadas para quem não
deseja mergulhar profundamente na sintaxe tradicional. Scratch,
Construct, GameMaker,
RPG Maker, Godot Visual Script,
Blueprints do Unreal e
diversas outras soluções permitem que iniciantes
criem jogos praticamente sem escrever código.
Alguns
veteranos torcem o nariz para isso. Eu não. Toda
ferramenta que aproxima alguém da criação
merece respeito. Além disso, todo programador raiz
cria as suas próprias ferramentas ultra especializadas.
Mas
nem todo mundo quer se tornar engenheiro de software ou
programador old school. Algumas pessoas querem
apenas contar histórias, criar personagens, experimentar
mecânicas ou transformar uma ideia em algo jogável.
O curioso é que, mais cedo ou mais tarde, uma boa
parte deles acabam esbarrando na mesma descoberta: programar
não é decorar comandos, mas pensar com coerência.
Quando
você cria um personagem que se movimenta, um inimigo
que reage, uma porta que abre ou um diálogo que acontece
na hora certa, está construindo regras para um universo
que antes não existia. É justamente aí
que mora o fascínio dessa atividade.
Um
escritor cria mundos usando palavras. Um pintor cria mundos
usando cores. Um músico cria mundos usando sons.
O programador cria mundos usando lógica.
Cada
tecla pressionada representa uma pequena decisão.
Um número, uma variável, uma condição,
uma função. Isoladamente parecem insignificantes.
Juntas, podem formar uma cidade inteira, uma galáxia,
uma aventura épica ou uma simples partida de cinco
minutos. Poucas atividades oferecem uma sensação
tão curiosa de autoria.
Você
começa olhando para uma tela vazia. Dias depois existe
um personagem. Semanas depois existe um cenário,
quase um jogo. Meses depois existe um universo inteiro funcionando
porque milhares de pequenas instruções estão
trabalhando em harmonia.
É
claro que nem tudo são flores. Programar continua
exigindo paciência, estudo e persistência. Erros
aparecem onde você menos espera. Bugs surgem quando
tudo parecia resolvido. E existem dias em que o computador
parece querer provar que a inteligência artificial
ainda não substituiu a burrice natural das máquinas.
Mas,
apesar disso, continua existindo algo mágico no processo.
Talvez porque, no fundo, programar nunca tenha sido apenas
uma atividade técnica. É um ato de comunhão
entre conhecimento técnico e ousadia. E existe algo
profundamente satisfatório em saber que mundos inteiros
podem nascer do simples toque de algumas teclas em um teclado.
Nota:
escrevi esse texto após dois dias procurando um erro
num fonte de 5000 linhas em PHP.
Um sinal "}" inadvertidamente
mudou de lugar (provavelmente por ação de
um duende verde que mora dentro do meu computador), gerando
resultados catastróficos, mas não emitindo
sinais de alerta ou erros de sintaxe. Encontrei o "meliante"
depois de ser obrigado a reentender a lógica de trechos
de códigos com mais de 10 anos da sua criação.