sexta-feira, 7 de novembro de 2008

"Lehanius, como você aprendeu a fazer isso?"

Olá, pessoal! Ultimamente tenho ouvido essa pergunta com alguma freqüência, então vou falar um pouco da minha tragetória (até então) como programador de eventos e contar uns "segredinhos" de como aprender a programar desde eventos simples até sistemas mais complexos.

Eu conheci o Maker quando a versão 2000 ainda era novidade. Eu mapeei coisa ou outra, mexi um pouco no database e logo parei de usá-lo. Alguns anos depois (há uns 2 anos), eu conheci o RM XP, em que comecei a mapear bastante e a fazer uns poucos eventos bem simples, apenas com uso de switches locais e switches globais, mas logo parei de usá-lo, também. Em agosto deste ano, baixei o RM VX e conheci o fórum da RPG Maker Brasil, que chamou muito minha atenção. Empolgado em ver que a comunidade Maker tinha um tamanho respeitável, comecei meu primeiro projeto no VX, determinado.

Montei a base da história, fiz uns montes de mapas, editei o database, mas aí vi que estava faltando algo no meu jogo. Eu queria passar uma sensação de mistério em um dos meus mapas, com algum recurso visual. Foi então que me envolvi em meu primeiro sistema: fazer com que as tochas de um corredor se acendessem conforme o personagem fosse avançando por ele e que elas se apagassem à medida que ele voltasse. Adivinhem pra quem eu pedi que fizesse esse sistema pra mim? Pra ninguém, é claro. Afinal, se eu mesmo podia fazer aquilo, por que pediria a alguém?

Comecei fazendo a tocha se acender quando eu passasse, algo bem simples, só precisaria de uma switch. Certo, já estava começando a funcionar, mas eu ainda tinha que fazer mais tochas e elas deveriam se apagar quando eu voltasse, e somente quando eu voltasse. Isso, sim, me deu um grande trabalho, fiquei por muito tempo pensando, programando, testando, errando, corrigindo. No final, acabei usando uma variável e algumas linhas de programa e, mesmo que o sistema parecesse simples pra tanto esforço e tempo, me sentia recompensado: afinal, eu tive o sistema que queria e, melhor ainda, EU o havia feito! A satisfação foi um prêmio muito grande, mas prêmio maior que aquele foi o conhecimento que eu adquiri, o meu aprendizado!

Ah, eu deveria ter dito algo antes de começar, uma advertência: programar vicia! Assim que eu terminei meu primeiro pequeno desafio, abastecido pela satisfação e motivado pela consciência de que eu estava aprendendo, parti para um desafio um tanto mais ousado: o puzzle da Torre de Hanói (disponível pra download). Como um dos meus puzzles favoritos, resolvi encaixá-lo, de uma forma discreta, em meu jogo. Desde o começo da programação, eu sabia que não seria fácil mas, poxa... não achei que seria tão complicado! Passei algumas horas tentando entender algumas funções do Maker e pensando em formas de programá-lo. Comecei a fazê-lo de uma forma mas, depois de várias tentativas e vários erros, resolvi montar o programa de forma diferente, comecei tudo denovo. Passei mais algumas horas queimando a cabeça e errando muito, mas consegui o meu puzzle! E sozinho! A recompensa? Satisfação e conhecimento.

Já me sentindo com um conhecimento razoável na programação de eventos, resolvi, então, ver o que os outros Makers faziam e tinham pra mostrar. Visitei vários tópicos sobre sistemas por eventos. Alguns eu só lia e já pensava: "esse eu sei fazer" ou, então "caramba, como ele fez isso?". Mas, em qualquer dos casos, eu analisava como o sistema havia sido feito. Mesmo os sistemas simples, às vezes, eram feitos de maneira muito interessante e inteligente. Um, entre os sistemas que me marcaram, foi o sistema de teleporte do Leandro_Frodox. Eu, até então, não havia mexido com variáveis que armazenavam posições no mapa. Haviam, também, alguns outros na RMB, como o Mobyduck, que me motivavam a continuar crescendo como programador de eventos e com cujos sistemas eu aprendia vários novos conceitos.

Com algumas idéias novas, resolvi criar um jogo bem inovador pro jogo de um amigo, o Vida de Slime, do Leandro306. Daí que nasceu o Digletball! Dessa vez, além da satisfação própria e do conhecimento adquirido, tive, também, algum reconhecimento pelo meu trabalho, o que me motivou a fazer coisas ainda mais ousadas. E não pense que, dessa vez, foi fácil fazer! Apesar de que eu já tinha a idéia pronta, na cabeça, me deparei com vários problemas e erros, que, evidentemente, tive que entender e corrigir.

Mas não é só de grandes desafios que absorvemos conhecimento e, até, reconhecimento. Sempre havia alguém no fórum pedindo algum sistema que eu poderia fazer, facilmente, por eventos. Eu contribuía com idéias para os mais simples e até me propunha a fazer os mais complicados. De vez em quando, eu até me surpreendia, quando percebia que aquele sistema, aparentemente simples, era, na verdade, muito complicado! Um exemplo são os binóculos que fiz para o txmaster, pro RM XP. Aliás, sem a idéia inicial do Neto RPG, eu provavelmente não teria conseguido nem começar o sistema. Depois que comecei, mais 6 horas pra terminá-lo... 6 horas corrigindo problemas imprevistos, até eu sentir que eu já havia feito o melhor possível.

É importante trocar idéias com outros programadores, principalmente pelo fato de que o RM tem muitos recursos. Eu, que já fiz muitos sistemas e minigames, ainda não devo ter usado nem 40% dos recursos que a programação de eventos oferece, e muitos desses recursos eu descobri vendo sistemas de outras pessoas. Além disso, mostre seus trabalhos pra outros, mas sem medo de críticas. Afinal, é por meio delas que percebemos alguns defeitos que podem ser melhorados. Permita que te ajudem e ajude os outros.

Espero ter sido claro em mostrar pra vocês o meu posicionamento quanto à programação de eventos, pois acho que é devido a essa postura que eu estou aprendendo tanto. Mas vamos recapitular: não tenha medo de desafios, encare os problemas; erros e problemas vão aparecer, e cabe a você corrigí-los, mesmo que você tenha que dar algumas pausas pra arejar a cabeça; ajude sempre que puder, pois ensinar é uma das melhores formas de consolidar o conhecimento; peça opiniões e aceite críticas a seus programas; estude os sistemas de outras pessoas. E vai uma dica a mais, se você quiser fazer coisas realmente boas: estude matemática! Além disso, obviamente, você não pode se esquecer do seu lema: "desistir? Jamais!".

É isso aí, pessoal... dessa vez o texto ficou um tanto grande, mas acho que vale à pena ler, se você tem interesse em programação. Além do mais, a RMB (e toda a comunidade brasileira de RM) está carente de gente que entenda razoavelmente de eventos. Que tal a gente começar a mostrar mais serviço? Eu adoraria ver ótimos sistemas por eventos na RMB toda semana, em vez de uma vez a cada 2 meses. Se você realmente se interessa nisso, terá o meu apoio, mas eu quero ver esforço, pois sem esforço não há evolução.

Finalmente, eu gostaria de agradecer a todos que me apoiaram na minha então tragetória no RM e àqueles que continuam me apoiando. O Leandro306 e o TAXD me incentivaram bastante, no início, e continuam incentivando. Todo o pessoal do chat da RMB tem sido bastante receptivo aos meus trabalhos e isso também me motiva bastante. Muito obrigado. Cabe um agradecimento especial pro maniacofp... quer dizer, maniaconfloor, por me aturar mandando sistemas todos os dias (várias vezes por dia) pra ele e ainda por comentar cada um deles, sempre dando boas sugestões de como eu poderia melhorá-los... exceto quando estão perfeitos! (Huahuahua)

Brincadeiras à parte, espero que tenham gostado das dicas e que a leitura não tenha sido muito chata. Vou colocar um link no blog pros downloads de alguns sistemas que criei. Aos que permanecem na luta, vamos mostrar praqueles japoneses que os brasileiros não somos pamonhas no RPG Maker!

Abraço!

3 comentários:

Anônimo disse...

Taí, galerinha, aprendam com o grande Lehanius Mochileiro Procastinador das Variáveis Não Perdoa Ninguém.

Vulgo Lelê.

Já vem programando sisteminhas bem hardcore e inovadores, vamos ver na hora em que passar a usar os outros "60% dos recursos que a programação de eventos oferece" e explorar todas as possibilidades do maker ;D

Boa sorte cara, um abraço!

Rafael Sol MAKER disse...

Legal! Eu atualmente só estou vendo scripts, mas eu sei o que é programar em eventos muito bem...
Manda ver, garoto! Eu quero ver o quão bom são esses seus sistemas! Quem sabe você me ensina algo totalmente novo nessa área?

Grande abraço, amigo maker!

Tunico disse...

É animador pra gente leigo em eventos, ver que em tão pouco tempo, vc já consegue fazer umas coisas dessas!

Serve de inspiração pra todos nós encararmos os eventos. XD