segunda-feira, 17 de maio de 2010

Projetar antes, programar depois

Por mais que eu seja programador, que eu tenha sempre partido pro código direto e que nos trabalhos nos quais participei a parte de planejamento era sempre negligenciada, com o tempo vim a perceber as vantagens de se projetar e organizar algo, o que quer que seja, antes de passar para o código.
Quando você sabe o que tem que fazer, e entende o conceito mais simples por trás de cada elemento do jogo, o resto fica mais fácil que andar pra frente.
Alguns projetos no que diz respeito a modelagem estão disponíveis a custos módicos, ou de graça, para quem quiser usar algo mais técnico e padronizado, mas pra quem não quer gastar tempo aprendendo litros sobre diagramação, pode estudar um pouco os fundamentos da de UML (Unified Modeling Language) ou criar sua própria notação, contanto que ela seja coerente, claro.

No próximo texto tentarei passar rapidamente por diagramação em UML e tentar focar nos elementos que precisam estar no seu projeto.

sexta-feira, 5 de dezembro de 2008

Como recuperar arquivos apagados ou depois de formatar

Já vi muita gente reclamando da sorte quando acidentalmente exclui aquele arquivo que não podia ser perdido, ou formata o Disco Rígido e depois se lembra de algo importante que foi pra vala sem Backup. Se você é uma dessas pessoas, deve saber a dor de cabeça que é. Empresas cobram olho da cara para recuperar seus arquivos, e programas que fazem o serviço, que não é 100% mas já dá pra alguma coisa, oferecem versões gratúitas que fazem quase tudo exceto deixar que você recupere seus arquivos e custam os olhos da cara para registrar e ter o programa completo com todas as funcionalidades esperada.

Para arquivos deletados, o processo é mais simples. O programa Free Undelete além de ser, como o nome diz, gratuito, ainda é um dos mais potentes da categoria. Aviso da empresa desenvolvedora é que a cópia gratuita é apenas para uso pessoal. O programa é em inglês. Se quiserem um tutorial de como usá-lo, peçam nos comentários.

Para HDs formatados, o processo é mais caro e complicado. o GetDataBack é a solução mais eficiente, mas custa míseros 79 dolares para a versão completa que permite recuperar os arquivos. a versão grátis apenas permitirá que você identifique quais arquivos são recuperáveis e quais estão perdidos para sempre. Existem downloads na internet de versões do programa com keygen, um gerador de registro que permitirá piratear o programa para que ele funcione como um pago, mas eu FORTEMENTE RECOMENDO NÃO USÁ-LOS. Primeiro porque pirataria é crime, segundo porque algumas destas versões podem vir com programas mal intencionados (adwares ou spywares) ou vírus. Mas se você acredita que vale a pena os riscos...

Agora algo realmente IMPORTANTE!
Independente do que você está tentando (des)fazer e do programa que você está usando, siga este conselho: Nunca instale o programa de recuperação no driver onde os arquivos perdidos estão, nem salve os arquivos restaurados no mesmo HD de onde foram tirados. Isso porque o arquivo pode ser recuperado enquanto não houver nada escrito por cima dele. Quanto mais coisa você colocar no HD a ser recuperado, mais difícil será recuperar uma informação específica. Como exemplo, se você for recuperar alguma coisa no seu drive C:, não instale o programa nele. tente instalar num Pen Drive ou num outro Drive. Do mesmo modo, para recuperar algo de um pen drive, não mande que os arquivos restaurados sejam escritos no mesmo pois enquanto o programa escreve, ele pode estar escrevendo por cima de alguma coisa que você ainda quer restaurar (como em alguns casos o próprio arquivo que você está restaurando).
Dito isto, desejo sinceramente boa sorte em restaurar suas informações importantes mandadas para o Void por acidente.

Qualquer dúvida, só mandar um comentário.

segunda-feira, 1 de dezembro de 2008

Salvando videos do Youtube

Uma dúvida comum: Como salvo um vídeo do youtube no meu computador?
Antes de responder isto, preciso dar uma passada em outro assunto: como os vídeos são salvos no youtube.

Quando alguém coloca um video novo no youtube, o site converte aquele vídeo em alta resolução para um outro formato, o .flv, o que é o mesmo que dizer, se você só baixar o video ele não vai funcionar do jeito que deveria, a não ser que você já tenha em seu computador um programa que leia videos no formato .flv.

Agora que já sabemos o que temos que baixar, vamos em como baixar! Existem programas que fazem o serviço, mas como existe maneira mais fácil, nem vou me dar ao trabalho de falar sobre eles. O caminho mais fácil para baixar um video do youtube é através de um site que faça isso por você. Segue duas sugestões:

Download de Videos

Existem muitos outros sites, mas vou falar deste que é o mais rápido e fácil de usar (principalmente quando você já sabe qual video quer baixar). Você terá que entrar no youtube, ir no video que você quer baixar e copiar o URL dele, aquele endereço começando com http:// que fica na parte superior do navegador. Depois você entra no site Download de Videos e cola endereço do vídeo na caixa te texto logo ao lado da caixinha com youtube escrito. Fazendo isso clique no botão Download. A página irá atualizar mostrando uma lista de resultados. Clique com o botão direito do mouse no botão vermelho na tela escrito "baixar video" e depois em "salvar destino como". Escolha onde salvar e salve! Pode demorar um pouco pra terminar de baixar, então tenha paciência. O video virá com um nome como "get video.flv", você poderá trocar para o nome que quiser.

Agora que você já tem o video no seu computador, você vai querer poder vê-lo, certo? Para isso você precisará ou de um programa que possa abrir arquivos .flv, como este ou pode usar um site que faça isso por você.

Outro site que também é bom, mas por ser em inglês pode causar certa estranheza e o Vixy.net. Ele já baixa o video no formato que você quiser (dentre as opções que ele dá, claro). O procedimento será parecido. Vai no youtube, pega o endereço do video e depois coloca na caixa de texto do site. Escalha um formato adequado para sua necessidade e clique em "download". Vai demorar um tempo para o download começar porque ele primeiro é convertido pra depois ser baixado. Com o video no formato .avi você poderá ver o video no window media player normalmente. Pode ser necessário baixar o pacote DIVX para poder exibir o video. Entre no site e clique em free trial. É o suficiente para ver os videos.

Espero que isto ajude a maioria. Qualquer dúvida, só entrar em contato.

quinta-feira, 25 de setembro de 2008

Trabalhando em equipe

Ao contrário do que possa parecer por outros textos relacionados a criação de jogos, minha função em grupos de trabalho ainda é a de programador.Este é um trabalho ingrato já que somente o programador sabe o que pode e o que não pode ser feito dentro de um jogo, mas tem muitas vezes que fazer o que não pode por causa de demanda do designer, sonoplastas, animadores e até da moça do café (não, esta bandeja retrátil no computador não é pra apoiar a xícara de café! É meu drive de DVD!). Programação é um trabalho mais braçal do que qualquer coisa. É um buscar de referências, adaptações de códigos pré-prontos e ocasionalmente a criação de uma função nova que aparentemente é banal e que daria mais trabalho procurar por algo já feito do que realmente fazer uma nova. Mas é apenas uma camada do trabalho todo, e uma parcela pequena até se pensar em todas as etapas do processo.
Quando a equipe é formada por apenas um membro, um campeão da justiça ou alguém com sonhos de grandeza que realmente acredita que pode fazer o novo FinalFantasy VII sozinho se esforçando o suficiente, a divisão de trabalho é simples já que qualquer número é divisível por 1 sem deixar resto, mera questão de matemática. Agora em equipes maiores o problema é mais complicado. Vamos pegar como exemplo a equipe gráfica de desenhistas, artistas digitais e/ou modeladores 3D. Não adianta nada cada um trabalhar no seu próprio ritmo pois todos estão trabalhando no mesmo projeto. Então a equipe de modeladores precisam de esquemas e rascunhos dos personagens para poder começar a desenvolvê-los, enquanto os artistas digitais desenvolvem novas texturas (ou juntam texturas prontas para serem reaproveitadas) enquanto os desenhistas relaxam já que terminaram todos os desenhos. Mas nem sempre as equipes são grandes o suficiente para possibilitar este tipo de divisão. O normal em produções de jogos amadores é uma mesma pessoa rabiscar os personagens, modelá-los e fazer as texturas ou fazer o spritesheet (imagem com todas as posições do personagem num fundo transparente ou de cor estranha que no programa será considerado transparente que será usado para animar o personagem no jogo) Em alguns casos piores, onde os membros de equipe são menos ainda, este mesmo cara será responsável pela programação envolvendo juntar a parte gráfica ao jogo, realmente um trabalho de cão.
Em muitos casos, vejo o grupo se reunir para definir funções como se estivessem na escola fazendo um projeto de ciências: "Fulana vai escrever na cartolina porque tem a letra mais bonita enquanto Ciclano e Beutrano fazem a pesquisa. E eu não faço nada porque comprei as cartolinas, o biscoito e o refrigerante." Não querendo estragar a graça mas este método não funciona. Ciclano e Beutrano vão ficar com o trabalho pesado de início, enquanto só Fulana vai cansar a mão de tanta cartolina que vai ter que escrever e desenhar (eu sei... já fui "Fulano" algumas vezes). O jeito mais certo de dividir tarefas não é em tipo de coisas. Numa equipe pequena, os membros tem que entender o trabalho como algo por demanda. Na hora em que se desocuparem com uma tarefa precisam ver o que está faltando no projeto e assumir este papel. O trabalho de programação de jogos é complexo porque muitas coisas no projeto só podem ser feitas se outras já forma feitas antes, então, não adianta um cara querer testar os movimentos do personagem que já foram programados se não existem ainda as imagens para serem animadas. Neste ponto, algum dos aptos a desenhar deveria assumir este trabalho como prioridade e concluí-lo.
Em equipes pequenas ainda, existe uma grande facilidade da maioria dos membros de jogarem responsabilidades de mais na mão do pai da idéia, e sempre que questionados quando não estão fazendo nada respondem com a cara lavada "Mas eu não sei o que tem pra fazer." Este tipo de resposta evasiva pode enganar os mais inocentes, mas é infame. Vamos supor um projeto minimamente bem feito, onde o jogo já está todo pensado (salvo certas correções no projeto). O membro da equipe tem obrigação de saber em que pé está o desenvolvimento e perceber os pedaços que faltam ser desenvolvidos. Claro que ter alguém para delegar tarefas seria algo muito conveniente, mas como líder de uma pequena equipe de desenvolvedores de jogos, sei que é difícil delegar tarefas aos outros e supervisioná-los e ainda conseguir fazer a própria parte.
Neste ponto, precisamos avaliar o coordenador do grupo, ou líder, ou Shamã, ou o que seja. Ele não pode ser autoritário de mais para não impedir que ninguém mije fora do pinico em nenhum momento, não deixar que cada membro inclua sua própria visão no jogo, mas também não pode deixar que o grupo se disperse de mais, senão acaba como um projeto que tive em mãos com parte dos desenhistas fazendo desenhos mangá e outros fazendo mais cartoon. O coordenador tem que coordenar, e não ficar por cima do ombro dos outros membros vendo se tudo está saindo do jeito dele. Claro que se o projeto estiver bem planejado, as chances de dispersão são menores.
Já me alonguei de mais neste assunto. Se for necessário volto a ele em outro momento.

quinta-feira, 3 de julho de 2008

Notepad ++

O pior para qualquer programador é encontrar um programa que atenda às suas necessidades quando se diz respeito a escrita de códigos. A maiora de interpretadores são lentos de mais para ou complexos de mais, levando o programador a cometer erros somente pela complexidade do programa. Uma ferramenta que simplifica muito este trabalho de escrever o código é o Notepad ++ (clique aqui para o site oficial). Ele é bem simples e visualmente amigável além de várias ferramentas para facilitar a escrita do código como "macros" (comandos que se usados digita boa parte do código por você).
No site oficial você poderá ver mais informações do que esta ferramenta pode fazer. Sugiro dar uma olhada.
Só um probleminha: ele serve para escrever códigos, não compilar. Para isto vai precisar ainda da linguagem instalada e compilar manualmente, mas na maioria dos casos (como programação web em php ou até em Lua) isto não será um impecílio tão grave.

segunda-feira, 16 de junho de 2008

Travou tudo, e agora?

Sabe quando o computador simplesmente não foi com a sua cara e resolve travar, ou algum programa não funciona mais do jeito que deveria? Em geral pode ser algum problema de buffer ou acesso indevido à memória que apagou algo que outro programa usava. Estes termos são complexos para o usuário médio mas a solução vem numa instrução simples que qualquer pessoa com um mínimo de coordenação motora consegue realizar.
REINICIE O COMPUTADOR
Ou, desligue e ligue de novo.
Mas deixa ligar mesmo, até tudo o que abre assim que o computador iniciar esteja funcionando e a setinha do mouse não se transforma mais em uma ampulheta.
Se o computador nem desligando estiver, meta o dedão no botão de reset, aquele pequenininho escondido.
Alguns computadores mais novos até tem um sistema de segurança que faz com que o botão de desligar só funcione se for segurado por alguns segundos (entre 7 e 10).

Pode parecer uma dica estúpida, porém um dia você ainda vai me agradecer!

Instalando e rodando Lua

Lua é uma linguagem de programação criada no brasil pela PUC-Rio. Ela é leve porém poderosa, possui vários recursos como arrays alocadas dinamicamente, listas encadeadas préimplementadas e outras cisas com nomes complicados que para leitores convencionais não quer dizer muita coisa mais impressiona quando conversando com completos leigos. Lua já vem sendo usada em vários tipos diferentes de implementações e jogos famosos como o famigerado Ragnarok Online, só procurar que você vai encontrar arquivos do tipo .lua dentro dele. Geralmente é usada para fazer complementos para os jogos, mas pode-se fazer um jogo completo com ele, já que ele se adapta a bibliotecas gráficas (outro termo para usar em conversas com amigos) como o SDL (que também será ensinada neste blog num futuro não muito distante).

Mas já falei de mais e não fizemos nada! Vamos começar com os devidos downloads e depois com a instalação e com o famigerado "Olá Mundo!". E se você é um daqueles que não gosta de fazer "Olá Mundo!"s, leia AQUI o porque de fazer um, ou apenas se contente com o fato de que serve para ver se tudo está funcionando do jeito que deveria.

Para instalar no LINUX, o link direto do site oficial http://www.lua.org fará o serviço. Para facilitar ainda mais, clique AQUI para baixar a versão 5.1.3. Após baixar, leio o readme e o install com informações de como instalar. Se você usa linux deve saber como fazer isto melhor do que eu.

Se você, como eu, vive entre computadores com Windows intalado, vai achar este link mais interessante. Clique AQUI e baixe a versão 5.0.1a5. Como eu só fiz a instalação no windows, vou colocá-la apenas ela aqui.
Baixe o arquivo do link. Quando terminar, clique duas vezes no arquivo executado.

A janela acima aparecerá. Ela pergunta se você quer instalar o Lua, então escolha 'Sim'.

Uma janela nova aparecerá informando que o programa será instalado. Clique em 'Next' para continuar.

Aparecerá as licenças de uso. Se você concordar (e se quiser usar, concordará), marque a opção 'I accept the agreement' e depois em 'Next'.

Agora você terá que escolher onde o programa será instalado. De preferência escolha instalar em C:\luacheia, já que aqui a maioria dos exemplos estarão dentro dele, mas se você se garante, coloque na pasta que você quiser. Eu, pessoalmente, deixei o Lua instalado num pen drive para poder "estudar" onde bem entender. Após escolher o local, clique em 'Next'.

Aqui apenas clique em 'Next' para criar um link no menu "Iniciar".
Deixe a caixinha marcada para criar um link para a área de trabalho. Se não quiser, desmarque. Depois clique em 'Next'.

Por último, clique em 'Install' para realmente instalar o Lua. Pode levar alguns instantes para terminar e até parecer que travou, mas é perfeitamente normal.

A instalação foi concluida. só clicar no botão e luacheia abrirá para você uma primeira vez!

Agora que você já tem o Lua instalado, está na hora de testá-lo! Se você deichou a caixa 'launch' antes de terminar a instalação, deve ter aparecido uma janela com coisas escritas. Isto é bom! diz que o programa funciona! Pode fechar a janela clicando no X superior.
Uma vantagem do Luacheia é que, depois de instalado, você pode mover ou copiar a pasta para onde quiser! É claro que os atalhos não funcionarão mais, porém logo eles não serão mais necessários.
Agora começa nosso "Olá Mundo!" para Lua! Abra um editor de textos qualquer como o Bloco de notas, ou algo mais legal como Notepad++ (baixe o .Installer.exe. Quando for usá-lo, escolha em 'Linguagens' Lua).
Agora vamos digitar alguns códigos!

print ("Ola Mundo!");

É. Só isto. nada mais do que isto! Salve este arquivo com o nome que você quiser, sem nenhum espaço nem acentos. De preferência, coloque-o na pasta onde você instalou Lua porque fica bem mais fácil para executá-lo.
Agora clique no botão iniciar e depois em executar. Digite 'cmd' e depois no botão 'Ok'.
O que aparece na tela é uma janela de console, não muito amistosa, porém funcional. Vou deixar para ensiná-los como configurá-la outra hora, agora apenas digite 'cd\' e clique 'Enter' para ir à raiz do drive C.

Agora digite 'cd luacheia' e clique 'Enter' se você instalou na pasta recomendada, ou digite 'cd/pasta1/pasta2/luacheia' e clique 'Enter' para abrir a pasta desejada.


Agora digite 'luacheia olamundo.lua' ou troque olamundo.lua pelo nome do seu arquivo, e ele será executado.

Se você fez tudo certo, seu programa rodou! O que ele fez? Escreveu a frase 'Ola Mundo!' na tela em uma linha. Grande porcaria, você deve estar pensando. Mas agora você sabe como fazer para rodar um programa em Lua! Existe outra maneira para rodar programa Lua, mas envolve criar um arquivo .bat para isto e eu não vou ensinar isto agora, ainda mais porque preciso explicar o que foi feito neste singelo programa.

Primeiro, no Lua não é preciso dizer onde o programa começa ou termina. Encarando algumas linguagens mais robustas, você verá que isto é uma vantagem e ao mesmo tempo uma desvantagem, mas a minha filosofia diz que quanto menos se escreve, menos se erra, então pra mim é bom não ter que se preocupar com isto e ir direto ao que interessa.
A função print( ) é a responsável por "imprimir" uma mensagem na tela. O que vem dentro dos parenteses é a informação a ser impressa que, neste caso, por se tratar de um texto literal, ou seja, que a gente quer que apareça do jeito que está escrito, vem entre aspas. Se você quiser tentar, pode colocar algum número no lugar de Ola Mundo! sem as aspas que ele também exibirá na tela.
Agora o mais importante! Perceba que tem um ';' no final da linha. Ele diz que o comando daquela linha acabou! normalmente, no final de cada linha de programação haverá um ';' com raras excessões. Até programadores mais experientes esquecem vez ou outra dele, então não se sinta tão idiota se você também esquecer.
Como experimento, tente colocar varios comandos print() no olamundo.lua, como no exemplo:

print("Este e um programa teste.");
print("Estou fazendo varias linhas!");
print("Ate o momento tenho...");
print(4);
print("linhas!");


Se tudo der certo, executando este programa você terá algo mais ou menos assim:


Ufa! Acho que já deu, né? Volto a falar mais de Lua em outro tópico.