Quarto, quinto... décimo sexto.

Para saber o que é esse blog, leia o post Hello World.
Para ler o resumo do terceiro dia, clique aqui.

Para ler o próximo post (sobre pointers), clique aqui.

(Atualizado em 27 de fevereiro de 2009)------------------------------
Explicação da mudança de foco desse blog e entrevista com o Rodrigo Strauss.

Olá, pessoal. Estou postando aqui depois de meses deixando esse blog meio abandonado. Como escrevi nesse post do dia 04/08 do ano passado, arrumei um emprego que me desviou totalmente do foco que eu propus inicialmente nesse Blog. Como vocês podem perceber, já passei do prazo que eu mesmo propus (30 de janeiro). Acabei congelando meus estudos de C++ e estou postando novamente agora, pois voltei a estudar; dessa vez com mais calma, mas com a inspiração redobrada. =)

Voltei a postar da melhor forma possível: a tão aguardada entrevista com o Rodrigo Strauss, que pediram nos coments.
----------------------------------------------------------------------------------------------

Quarto, quinto... décimo sexto dia:

Eu tenho uma boa e uma má notícia. Qual vocês querem primeiro?

Ok, comecemos pela má:

Eu arrumei um emprego que vai me obrigar a focar mais em PHP e Java, não vou mais poder atualizar isso aqui todos os dias (embora eu ainda continue estudando C++).
Existe uma vantagem aí: PHP e Java também são OOP, embora menos complexas.

Agora a boa notícia:

Eu arrumei um emprego que vai me obrigar a me focar mais em PHP e Java, não vou mais poder atualizar isso aqui todos os dias (embora eu ainda continue estudando C++). Parece a mesma notícia, né? Pois é, e é mesmo, porque eu descobri uma coisa: atualizar isso aqui uma vez por semana é melhor, por diversas vantagens:

1- Os posts recebem mais visitas e comentários. E mais e-mails, também.
2- Eu foco mais na qualidade, e não na quantidade. Eu posso pesquisar durante a semana coisas interessantes para postar, como tutoriais específicos, e não fazer desse blog apenas um diário de produção (o que dá muito trabalho e eu acabava dedicando mais tempo a isso aqui do que aos estudos propriamente ditos).
3- Posso também fazer posts sob encomenda, basta vc comentar lá embaixo e dizer o que está procurando. Se eu achar interessante, posto.
4- Posso formar uma rede de pessoas interessadas no tal do jogo secreto.

E é sobre ele mesmo o post. No iniciozinho desse blog, um pouco antes de eu começar a ler os tutoriais que escolhi no site Cprogramming.com, li nesse mesmo site um artigo chamado: "So you want to be a game programmer?" que dizia, basicamente, que vc tinha que aprender antes toda a parte chata e que se vc não souber escrever uma calculadora você não faz um game.

É a mais pura verdade. E eu vou um pouco mais longe: sozinho, você não vai fazer um jogo realmente bom. É impossível. Fazer um game envolve trabalho de equipe, o programador é só mais um membro dela.

Recebi um comment no post anterior do José Roberto (eu ia linká-lo, mas ele colocou perfil não disponível), dizendo que queria construir algo do zero e ofereceu ajuda para esse jogo secreto. Isso me colocou pra pensar, porque tem mais pessoas interessadas nesse desafio.

O jogo já está concebido. Desenhado. Todinho no papel. Eu o escrevi pensando em programar no 3D Game Studio, que é uma ótima ferramenta para o que ela se propõe, porém limitada. Com o 3DGS eu até conseguiria fazer algo sozinho, mas não com a qualidade que estou almejando.
*Mas deixa eu deixar uma coisa bem clara aqui: mesmo com suas limitações, os caras fazem coisas de responsa usando o 3DGS, o que prova que a qualidade do seu game não está na ferramenta que vc usa, e sim na(s) pessoa(s) que a usa(m).

Então... quais passos eu preciso dar para que esse jogo saia do papel, com a qualidade almejada?

A resposta imediata a essa pergunta é: preciso juntar uma equipe até a data final desse blog (dia 30 de janeiro). Equipe de especialistas, que sejam apaixonados pelo que fazem e amem games. Segundo: esses caras não vão trabalhar de graça, precisam ganhar o que merecem e trabalhar com exclusividade. Pra isso, tenho que apresentar o projeto pra um investidor; ou então dividir com eles os resultados financeiros que eu tiver. Ou as duas coisas juntas.

Resultado financeiro com games no Brasil? É piada? E a pirataria?

Bom... é aqui que entra o primeiro cara da minha equipe: um empresário visionário que pense num bom modelo de negócios pro cenário brasileiro. Será que não seria melhor distribuir o jogo de graça e ganhar em cima de outra coisa? Ele vai saber a resposta, pois conhece o mercado, é criativo, sabe empreender e controlar uma equipe. Ah, uma boa rede de contatos também ajuda. Deixa que esse eu arrumo.

E as outras pessoas da equipe? Se vocês conhecem alguém, ou se conhecem alguém que conhece alguém, indiquem esse blog. Peçam pra pessoa postar aqui, ou me mandar um e-mail com portfolio e salário pretendido. Veja se ele está na lista abaixo:
Uma observação: uma grande vantagem do profissional brasileiro é a multidisciplinaridade. Conheço pessoas que fazem mais de uma dessas coisas muito bem, então podemos fazer uma equipe menor do que essa que tenha pessoas assumindo mais de um papel, se necessário.

Um game designer. Esse cara vai desenhar no papel todo o conceito e a lógica do jogo, vai fazer alguns rascunhos de arte também. Ele tem que entender bastante do mercado de games, um pouco da parte técnica, um pouco de arte, um pouco de lógica de programação, enfim... um pouco de tudo, mas não precisa ser especialista em nada. Deve saber apenas se expressar bem, escrever bem, saber mexer com projetos e conversar com toda a equipe.

Um gerente de projetos. Esse cara vai botar ordem na casa, vai integrar todos os talentos, vai garantir que o prazo será cumprido, vai comunicar as diversas falhas para a equipe, vai buscar soluções, vai contratar pessoas, demitir pessoas, motivar, organizar, acompanhar, etc, etc, etc. Esse cara tem que entender dos métodos da PMI, talvez ter um certificado (não é uma exigência, mas é um diferencial) ter conhecimento do mercado de games e experiência com projetos de software na bagagem.

Um roteirista. esse vai fazer o roteiro do jogo, falas, diálogos, menus, características dos personagens (físicas e psicológicas). Ele trabalha junto com o game designer. Apenas tem que ser criativo, ter uma cultura geral muito boa, entender um pouco de psicologia, história, geografia e cinema. Sim, cinema principalmente, e como escrever um roteiro e um storyboard. Não precisa falar que ele tem que ser criativo e escrever bem, né?

Um ilustrador conceitual, que seja muito foda. Pode ser de papel ou digital, tanto faz. O portfolio dele deve ser digno de trabalhar nas maiores agências de publicidade. Esse vai pegar o conceito do game designer e transformar em arte. Esse vai criar os personagens, suas formas, texturas, desenhar os cenários, imaginar prontas as principais cenas do jogo e colocá-las no papel.

Um ilustrador técnico. Ele não precisa ser criativo, mas tem que ser metódico e calculista. Ah, e desenhar bem, claro. Ele vai transformar os desenhos do ilustrador conceitual em desenhos técnicos, prontos pra passar pro 3D. Desenho técnico é quando ele desenha o personagem de frente, de lado, de cima e de costas, todos com a mesma medida, para o modelador usar como referência. Modelar os bonecos em argila e fotografar nesses ângulos também tá valendo. E se achar um amigo feio que parece o monstro do game, fotografa ele também.

Três Modeladores 3D. Um pra modelar personagens, outro pra modelar cenários, outro pra modelar objetos. Eles tem que ser bons, modelar rápido, dominar o software que eles escolheram, saber transformar em 3D tudo o que o ilustrador técnico colocou no papel. Simples assim. Ah, claro, saber fazer um texture bake bem feito ajuda.

Um ilustrador digital. Esse também tem que ser muito foda. Ele vai trabalhar junto com o modelador 3D e vai transformar a arte do ilustrador conceitual nas texturas que o modelador vai usar nos modelos 3D. Ele tem que saber pintar peles, terra, grama, pedras, etc; e entender do 3D também porque ele vai fazer texturas procedurais na mão, não apenas pintar no photoshop. Mesclar fotos até vale, mas que no final saia algo original.

(já trabalhei numa empresa que os próprios modeladores texturizavam, não existia essa coisa de separar profissional de modelagem dos de textura e às vezes até animação. Às vezes isso nem precisa mesmo, principalmente no Brasil, mas mesmo que você saiba os dois, sempre tem um deles em que vc é melhor)

Um riggador. Esse vai preparar o modelo 3D e deixá-lo pronto para animação. Vai criar todas as ferramentas e manipuladores para que o animador possa trabalhar sossegado, sem se preocupar com possíveis errinhos nos modelos.

Um animador. O personagem 3D já deve chegar na mão desse cara completamente riggado, pronto pra animar. Esse cara entende de teoria da animação, 2D mesmo. Com essas sólidas teorias na bagagem e um bom rigg, ele vai dar vida aos nossos personagens.

Pronto, e agora o nosso art pipeline já está pronto?

Claro que não... ainda temos que ter um bom arquiteto de informação trabalhando junto com um designer de interfaces. Eles vão criar juntos a arte dos menus e a forma de fazer o jogador interagir (e interagir um com o outro, caso seja um jogo online). Uma boa base conceitual em usabilidade, acessibilidade, jogabilidade e todos os ades são um pré-requisito.

Vocês devem estar loucos pra que eu entre logo na parte de programação, né? Ok, ok, eu vou chegar lá, mas antes tem duas pessoas muito importantes:

Um sound designer e um músico (ou uma banda). O primeiro cria os efeitos sonoros do jogo, o segundo vai criar as músicas. Única coisa que se exige aqui é criatividade e talento. Ah, e claro, o mais importante: saber trabalhar em equipe, cumprir prazos e cronogramas, saber transformar em músicas o conceito que está no papel, saber criar um clima para o jogador baseado nas idéias do game designer e do roteirista (não criar coisas avulsas). Em outras palavras, quero um profissional, não um alucinado que vai pedir 300 toalhas brancas faltando 1 dia pra cumprir o prazo.

E agora, finalmente, os programadores. Sem eles, o jogo não existe. Na verdade, se eles souberem modelar, texturizar, animar e mexer num programa de edição de áudio, eles já podem fazer um jogo sozinhos; sem precisar de investidor nem nada. Até existe gente que sabe um pouco de tudo isso, e cria coisas usando o 3DGS ou alguma ferramenta similar, mas JAMAIS vai sair desse cara solitário um Final Fantasy da vida. Impossível. O FF existe porque tem uma puta equipe por trás; o músico deles é um maestro, compositor, sabe latim, o caralho a4. Os artistas deles são os melhores do mundo, criativos, premiados, etc. Os programadores deles são de C++, não de 3DGS (sem querer menosprezar o 3DGS, claro). É cada um na sua especialidade, explorando a fundo seu talento, não sendo bonzinho em várias coisas, mas sendo FODA em uma coisa só.

Isso significa que vou precisar de programadores pra fazer a lógica, outros pra fazer AI, outros pra Pathfinding, outros pra controlar a animação dos personagens, outros pra gráficos e render, outros pra física e outros pra som. Ou um só que conheça boas ferramentas que facilitem tudo isso. Quero fazer a coisa do zero, mas também não há necessidade de re-inventar a roda... se tem ferramentas boas, vamos usá-las, mas sabendo como elas funcionam e personalizando-as de acordo com a nossa necessidade.

É esse tipo de equipe que eu estou procurando... e espero encontrar até o final do ano. Alguém topa?

Ah, sim... lembrem-se de que esse é um blog sobre C++, para programadores iniciantes; ou para os não iniciantes que se interessam por games. Outros posts sobre esse projeto eu vou fazer DEPOIS DO DIA 30 DE JANEIRO DE 2009. Até lá, só quero juntar pessoas interessadas e vou revelar o segredo do game para aquelas que eu selecionar.

FIM. Agora vou voltar a publicar meu conteúdo normal, uma vez por semana; ou de 15 em 15 dias. Uma coincidência: na mesma semana que arrumei esse emprego, recebi um e-mail do Rodrigo Strauss, do 1bit, que dizia:
"Achei boa tua iniciativa, espero que continue. Só saiba que escrever um post por dia dá bastante trabalho, talvez um resumo da semana seria mais fácil e factivel."

Eu respondi pra ele falando do emprego, que na verdade eu não tinha escolha, teria que ser uma vez por semana mesmo (e que eu iria fazer um post citando o e-mail dele, que só consegui encaixar aqui embaixo =p).

E agora? Qual o próximo passo? Uma entrevista com o Rodrigo Strauss? Um post só sobre Pointers e seus segredos? um artigo sobre Game Design, ou como fazer um Game Loop no C++? Algo técnico? Algo inspirador?

Comentem! O que vocês querem saber?

Comentários

Anônimo disse…
entrevista o Rodrigo Strauss.
ele é um Puta programador e tem muito a ensinar a nós iniciantes.
abs e sucesso
Anônimo disse…
Ei amigo, eu apostaria no 3DGS, pois não é uma ferramente limitada não, dá pra fazer praticamente tudo e eu posso lhe garantir.

Teve programador que disse que ouviu de publishers que nem vê o game quando é feito em 3DGS. Acho isso mentira e absurdo, uma vez que vc pode programar em c++ "puro" com ele. O que vale é o game e a originalidade, e nao a ferramenta, correto?

Postagens mais visitadas deste blog

Desvendando o SDL (Simple Directmedia Layer)

Renascendo - ou Os Desafios de aprender C e C++