Brincando de programador (e me ferrando…)

Saudação aos esportistas e sedentários.

Exatamente como no título. Ao contrário do que se apregoa aqui no Brasil, design de games não tem nada de fácil. Para vocês terem uma idéia, a minha turma começou com 63 alunos. Três semestres depois são 37, contando comigo. Se terminar o curso com 20 alunos, considerarei muito. Como vim da área de design, estou apanhando bonito da maldita programação, haja vista que fui um dos piores alunos de matemática da história do homem na Terra. A cada problema que eu errava, Bhaskara, Pitágoras e Arquimedes se reviravam no túmulo. Sou ciente da minha mediocridade, mas dar murro em ponta de faca não é novidade para mim (úi nega!).

Depois de tomar um chute na bunda do pseudo código, agora me vejo obrigado a encarar o C#, ou se preferirem CSharp. Ao menos dessa vez posso ver na prática a linguagem funcionando de forma prática, pouco a pouco creio que me entendo com a criança. Falarei um pouco sobre essa experiência no post de hoje. Acompanhem.

Para começar a brincar de programador loser, tive de baixar a versão express do Microsoft Visual C# 2008, que já te obriga logo a de cara a buscar o programador que há no seu interior. Sim, porque a nossa querida MS, em uma verdadeira pegadinha do Mallandro, nos faz instalar o programa com um sensacional bug que o impede de abrir ou carregar novos projetos, ocasionando uma simpática tela de erro. Solução? Super simples, basta mexer em uma coisinha trivial como o REGISTRO DO WINDOWS. Se quiserem se aventurar a brincar com o C# 2008, a gambiarra é a seguinte:

No iniciar, cliquem em executar e digitem “msconfig”(sem as aspas).Lá, cliquem na aba ferramentas, procurem por editor de registro e cliquem em iniciar. Vocês verão uma mega lista, procurem pela Microsoft, na lista de programas dela cliquem em VCSExpress > 9.0 > Packages. Dentro da pastinha dos pacotes existem cinco pastinhas com um monte de números, em cada uma delas há um valor 0x00000001 dentro de um tal de DWORD. Troquem esse 1 por 0 no DWORD das cinco pastinhas e o programa milagrosamente funcionará. Depois de tudo isso, levantei da cadeira triunfante, estufei meu peito e a plenos pulmões gritei: VAI SE F%^&*#$ MICROSOFT!!!!11. Voltemos a programação normal.

Com a bagaça finalmente em ordem, vamos brincar de linha de código. O C# obedece a mesma lógica de programação que outras linguagens, como o C++, mas com as suas particularidades. Abrindo um projeto com “console application”(para poder gerar um teste prático do código), logo de cara, vocês verão isso:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
}
}
}

Esse aí é o cabeçalho inicial, com as variáveis do programa sendo declaradas. Variável, caso quem leia não seja familiarizado com programação, resumidamente se trata de uma região criada na memória de acesso randômico (RAM, meus queridos), em que informações podem ser inseridas e modificadas. Por exemplo, sabe quando vocês vão começar um RPG e o jogo pede para você escrever um nome para um personagem? Aquilo é uma variável. Existem centenas de outras nos jogos, com todo tipo de função possível. Esses colchetes aí definem o escopo, isto é, o espaço em que a linha de código é inserida e lida. O compilador lê tudo que está dentro dos colchetes {}, indo para os colchetes seguintes, tipo isso:
{
Console.WriteLine(“Olá Mundo”);
Console.WriteLine(10+10);
}

O compilador do programa lerá de cima para baixo todo o conteúdo dentro dos colchetes e executarrá o que está definido lá dentro. Mas o que significa o que está escrito ali? Para o computador significa escrever “Olá Mundo” na tela e exibir o resultado da soma 10+10. Se entendi certo, na linguagem C#, console significa sistema, writeline seria “escrever na tela”. E porquê está tudo escrito com maiúsculas? Exigências da linguagem, ou a criança não me entende e faz biquinho para executar o que for.

E dá para fazer coisas interessantes? Para quem manja, sim. Como eu sou tosco, somente consigo umas cosinhas textuais que qualquer tetudo virgem anti-social estranho fazia com um TK80. Como isso:

string num1, num2;
int n1, n2;

Console.WriteLine(“Digite o primeiro número: “);
num1 = Console.ReadLine();
n1 = Convert.ToInt32(num1);

Console.WriteLine(“Digite o segundo número: “);
num2 = Console.ReadLine();
n2 = Convert.ToInt32(num2);
Console.WriteLine(“{0} + {1} = {2}”, n1, n2, n1 + n2);

Aqui eu declarei duas variáveis para que o usuário pudesse digitar dois números, um em cada. O sistema armazena a entrada do usuário, para aí então executar a soma deles e mostrá-la na tela. Mais ou menos como aquela calculadora paraguaia de R$1,99 que vocês têm aí faz. Trocando em miúdos: n1 e n2 são os nomes das variáveis que criei para o sistema armazenar os números que viriam a ser digitados. A partir daí dei um comando para escrever as frases na tela, relacionando cada uma a uma variável e “explicando” para o sistema que os caractéres digitados pelo usuário devem ser convertido para números (Convert.ToInt32). Esse “Int” do parênteses significa número inteiro do tipo 32, já que o C# entende vários tipos que nem sei o que significam ainda. O código abaixo é um pouquinho mais interessante:

string entrada;
int n1,n2;
float resp;

Console.WriteLine(“Digite um número:”);
entrada = Console.ReadLine();
n1 = Convert.ToInt32(entrada);

Console.WriteLine(“Digite outro número:”);
entrada = Console.ReadLine();
n2 = Convert.ToInt32(entrada);

resp = n1 + n2;
Console.WriteLine(“{0} + {1} = {2}”, n1,n2,resp);

resp = n1 – n2;
Console.WriteLine(“{0} – {1} = {2}”, n1,n2,resp);

resp = n1 * n2;
Console.WriteLine(“{0} * {1} = {2}”, n1,n2,resp);

resp = (float)n1 / n2;
Console.WriteLine(“{0} / {1} = {2}”, n1,n2,resp);

Aqui além de entrarem dois números, o sistema exibe todas as quatro operações matemáticas básicas entre eles, além dos resultados respectivos. Agora, para verem como essa coisa de código é uma frecura sem fim, experimentem trocar o “n2” por “n1” aí das linhas de reposta e verão o sistema só executar as operações referentes ao primeiro número inserido, ignorando o segundo. O sistema que errou? Não, ele é burrinho mesmo, se você falar para ele que 2+2 são cinco, ele acredita. E ainda mostra todo orgulhoso para você.

É isso amiguinhos, não era intenção desse post ser um tutorial de programação, mas sim falar para vocês sobre a experiência que estou tendo com a maldita programação. Se houver algum programador ou entusiasta da área (não tem problema ser virgem) me corrijam a vontade e até acharia legal abrir um canal de discussão sobre programação aqui no blog. Aí é com vocês também.

Abraços e até o próximo post.

André V.C Franco/AvcF – Loading Time

10 thoughts on “Brincando de programador (e me ferrando…)

  1. @avcf

    Cara, esse seu texto mostrou toda a sua “paixão” pela programação, hwa hwa hwa. Se alguém que está pensando em iniciar nesta área ler ele vai desistir na hora.

    Bom, eu também fiz esta transição do design para a programação, embora eu nunca tenha abandonado o primeiro totalmente. Comecei programando páginas de internet em ASP e atualmente em PHP também, e claro, aplicando meus conhecimentos em design nos sites e afins. Também já brinquei com o Action Script do Flash, embora nunca tenha me aprofundado nele.

    Atualmente atuo na empresa onde trabalho desenvolvendo a intranet e como consultor na linguagem de programação SAP ABAP.

    Sobre a discussão aqui no blog seria legal mostrar mais sobre essa parte da programação nos jogos, já que todo mundo se interessa pelos gráficos bonitos, texturas, efeitos, som e etc, mas esquecem que pra colocar tudo pra funcionar dá muito mais trabalho do que se pensa. Mostrar as linguagens mais utilizadas também seria interessante.

    Pra quem já está decidido a trilhar este caminho, o indispensável antes de escolher qualquer linguagem estudar muito Lógica, ae o resto fica mais fácil.

  2. Fui tão negativo assim e não percebi? Tô brincando de action script 2.0 também, já falarei sobre isso no blog com um exercicinho bem bacana. Manjo nada de páginas de internet (nem quero, urgh) mas parabéns pra ti, tem de ter nervos de aço para encarar isso todo santo dia.

  3. Eu mesmo começei a fazer processamento de dados no auge dos meus 15 anos por esse amor incondicional a esta arte que é o Videogame…

    Alguns meses depois…larguei completamente mão disso….terminei a escola…mas nunca trabalhei no ramo….

    Se uma Ubisoft querer ideias para jogo e tal….pode me chamar…mas não conte comigo pra progamar, não!

  4. ahuahuahauhau, mto bom…tem gente q odeia msm programação, mas eu adoro XD sou formado em ciencias da computação, e gosto bastante de programar (to um poco enferrujado masss)…to fazendo o caminho contrario de vcs, pois comecei com a programação bruta (c, c++, java), e agora to indo pro php…
    acho q ninguem precisa ter medo de programar, a parte de algoritmo em si acho bastante facil, a unica parte chata eh misturar as tecnologias, por ex fazer seu C# se conectar com o banco de dados, ou fazer as coisas funcionarem, com as gambiarras, como a q o avcf fez…
    acho q o q existe de mais interessante hj eh o XNA, uma especie de abstração (facilitador) do directx, onde dah para facilmente criar jogos para PC e xbox360…para quem interessar: http://www.fergonez.net/files/guia_xna.pdf
    obs:necessario conhecimentos de c++

  5. Que coisa, esse post foi meio nostálgico pra mim … lembrou dos tempos queimando neurônios na Escola Técnica e depois na Facu com LP’s, BD’s e Algoritmos … Trabalho de Conclusão de Curso (teve vez de eu ir dormir as 2h acordar as 4h …)

  6. Cara
    Eu tambem sou programador e já me ferrei varias vezes
    Uma delas foram tão serias que eu cheguei a ter que formatar meu Computador.
    Adimiro seu trabalho!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *