quinta-feira, 14 de abril de 2011

Desenvolvimento de Jogos - Escolhendo a ferramenta de desenvolvimento


Jogos de sucesso


Existem pela internet diversas ferramentas disponíveis para o desenvolvimento de jogos, algumas muito simples e outras mais complexas. Não há como optar por uma utilizando um ou dois critérios somente. Essa escolha depende de diversos fatores presentes em seu planejamento.

Quem está começando geralmente desenvolve o primeiro jogo como experiência, para aprender os principios básicos na prática, mas é comum a preocupação de logo nesse início, trabalhar com uma ferramenta que vá comportar também os projetos seguintes, logicamente mais complexos e desafiadores que o primeiro.

Concluir seu primeiro jogo em uma ferramenta na qual você já se familiarizou e descobrir depois de todo trabalho que teve que as limitações deste ambiente o forçarão a migrar para um outro, o qual você terá que baixar (ou comprar no caso dos pagos), estudar, e aprender do zero, travam muitos desenvolvedores que devido a isso não dão o passo seguinte.

Não é fácil encontrar na internet um conteúdo centralizado comparando todas as atuais ferramentas desse segmento. Dependendo do texto informado na busca, podem ser retornadas páginas e páginas citando somente duas ou três ótimas ferramentas que suportam gráficos 3d, ignorando aquelas com suporte a 2d mas que atenderiam a quem estivesse interessado mais em simplicidade e agilidade. Então, qual ferramenta usar?


Qual ferramenta usar?
Inicialmente aquela que me despertou maior interesse foi o XNA da microsoft.

XNA da Microsoft
http://msdn.microsoft.com/pt-br/xna/default.aspx

Microsoft XNA (sigla em inglês que significa XNA's Not Acronymed) é uma framework que serve para odesenvolvimento de jogos para PCs com Windows, para o console Xbox 360 e para Windows Phone 7.
Fonte Wikipedia

Como programador ASP.NET, vislumbrei uma maior facilidade em desenvolver meus jogos utilizando uma tecnologia que eu já fosse familiarizado. Usei muitas de minhas horas em pesquisas e leitura de material sobre XNA. Entretanto, durante essa pesquisa, me deparei com muito material em sites de notícias comentando sobre o sucesso financeiro de pessoas que desenvolveram jogos para celulares.
Iphone mais especificamente.


Maçã
Comecei a ler sobre a linguagem objective-c.
O objective-c é a linguagem oficial para desenvolvimento de aplicativos no mundo Apple. É uma linguagem híbrida com características da linguagem c e da smalltalk: do C traz a velocidade e simplicidade de codificação; do Smalltalk, entre tantas características, traz a orientação a objetos como um diferencial
Fonte imasters.com.br

Resumindo grosseiramente as notícias que encontrei sobre essa linguagem, posso dizer que metade tratava de casos de jogos de sucesso que tornaram seus desenvolvedores mais ricos. E metade tratava de desenvolvedores que nem começaram a trabalhar com ela criticando pela dificuldade de aprendizado. Isso pesou bastante em meu julgamento quanto a partir nessa vertente, mas foi a necessidade de ter que comprar um mac que me levou a desistir do objective-c.

Encontrei então o Unity 3D.


Unity 3D
http://unity3d.com/

A Unity3D é uma ferramenta de desenvolvimento de jogos para o Mac, Windows, IPhone, Web e Nintendo Wii.
Uns dos fatores positivos é a sua interface visual que possiblita você usar botões e ferramentas para manipular os objetos na Cena.
Outra coisa legal da Unity3D é que ela trabalhar com C#.
Para quem usa Xna para seu projetos para Xbox360 e Windows, pode usar seus conhecimentos de C-Sharp na unity3D. A Unity3D tambem trabalha com JavaSprit e Boo (Python).
Fonte sharpgames.net

Essa ferramenta proporcionava uma portabilidade que não havia sido encontrada até então, tanto se tratando de liguagem de programação quanto de ambiente de publicação. Jogos para Windows, Mac, Web, Android e Iphone.
Pensando no fim comercial, Unity 3D é a melhor opção. E tem mais. A versão gratuita permite comercializar seus jogos, a limitação mais divulgada é a marca d'agua da Unity 3D em todos os jogos. Há muito material sobre a ferramenta, muito suporte da própria comunidade de usuários. Uma excelente ferramenta para jogos 3D.

O Unity 3D não gera gráficos, seu foco é a física dos jogos. Para gráficos, precisamos de um modelador 3D, como 3D Studio, Maya, ou o Blender, dos três, o que mais referências encontrei em comunidades de Unity 3D.


Blender 3D
http://www.blender.org/

Blender é um programa de computador de código aberto para modelagem, animação, texturização, composição, renderização, edição de vídeo e criação de aplicações interativas em 3D, tais como jogos, apresentações e outros, através de seu motor de jogo integrado, o Blender Game Engine. O programa é multiplataforma, estando portanto disponível para diversos sistemas operacionais. O Blender implementa ferramentas similares às de outros programas proprietários, que incluem avançadas ferramentas de simulação, tais como: dinâmica de corpo rígido, dinâmica de corpo macio e dinâmica de fluidos, ferramentas de modelagem baseadas em modificadores, ferramentas de animação de personagens, um sistema de composição baseado em “nós” de texturas, cenas e imagens, e um editor de imagem e vídeo.
Fonte Wikipedia

O Blender possui uma engine própria para jogos, mas encontrei muito mais suporte e elogios ao engine de jogos do Unity 3D. Curiosamente, grande parte dos tutoriais sobre Unity 3D apontavam o Blender como ferramenta
ideial para a produção de personagens e outros objetos gráficos.

Devido a essa necessidade, antes de me aprofundar no Unity 3D, precisei primeiro estudar Blender 3D, para aprender como criar meus elementos gráficos.

Existem tantos ou até mais tutoriais sobre Blender do que Unity 3D, o que facilitou localizar um cursinho simples, objetivo e prático para caminhar meus primeiros passos na ferramenta. E esses primeiros passos foram sucifientes para me desestimularem a continuar. Não que a ferramenta seja ruim. Ela é muito boa, os cursos que encontrei são ótimos, e muitos em português. Modelar em 3D que é muito trabalhoso mesmo.
Em um dos tutoriais, o instrutor que ministrava a aula comentava sobre os 77 ossos, do boneco que criara, que precisavam ter seus valores de posicionamento modificados a cada movimento do boneco. Um jogo é feito de muitos objetos. Protagonista, monstros, transportes, armadilhas.


Mario enfrenta inimigos e armadilhas

Entretanto, esse curso me levou a perceber que o que eu buscava era uma ferramenta simples, rápida, que priorizasse agilidade à detalhes.


Recordei-me do velho Game Maker.


Game Makerhttp://www.yoyogames.com/gamemaker/


Há uns 6 anos atrás eu havia desenvolvido dois joguinhos bobos para Windows nessa ferramenta, que nem pensei em levar em conta por considera-la antiga mesmo. Mas somente nesse instante lembre-me de pesquisar se ela havia acompanhado as evoluções dos programas desse nicho e se atualizado. O que encontrei foi uma comunidade fiel ao Game Maker, com muito material bom, mas infelizmente a ferramenta ainda deixava a desejar em se tratando da portabilidade. Não podendo criar jogos para Iphone Não me interessava.

Antes de anunciar a ferramenta que selecionei, abaixo uma lista com várias outras que passei a conhecer graças a esse meu trabalho de pesquisa:


Adventure Maker
http://www.adventuremaker.com/


Box2D
http://www.box2d.org/


Game Factory
http://www.gamefactorygames.com/

Gamequery
http://gamequery.onaluf.org/


Game Salad
http://gamesalad.com/


Irrlicht Engine
http://irrlicht.sourceforge.net/


RPG Maker
http://www.rpgmaker.net/


Shiva
http://www.stonetrip.com/


Torque
http://www.garagegames.com/products/torque-3d



Encontrei várias informações sobre muitas dessas ferramentas em
http://en.wikipedia.org/wiki/List_of_game_engines

Atualmente, minha atenção está voltada para uma chamada Game Editor.


Game Editor
http://game-editor.com/Main_Page

Soma todos os recursos e atributos que busco, multi-plataforma, fácil, com uma gama grande de material explicativo na internet, em inglês e português, ótimos exemplos. Acredito que meu próximo jogo enfim encontrou sua incubadora. Sua versão comercial mais barata custa 99 dólares, mas seus gráficos podem ser feitos no Paint incorporado no Windows, e nas comunidades há muitas indicações de software para produção de sons. Também tem que pagar pelo software que exportará para Iphone seu jogo feito sob o Windows, mas ainda sim acho que para mim vale a pena.

Meu intuito aqui não é vender a mensagem que o Game Editor é melhor que todas as outras ferramentas, mas para as minhas atuais necessidades, ele me parece a ideal. Meu próximo jogo é para ser comercial, e pretendo me dedicar ao projeto para produzir algo que conquiste o interesse das pessoas em tamanha grandeza que o lucro supere meus gastos iniciais. Seguir o caminho desprentencioso do Mega Sucesso
Angry Bird.


Angry Birds

Provavelmente, após esse meu próximo jogo, eu pense em me dedicar ao Blender para desenvolver em conjunto com Unity. Ou até mesmo antes disso, já que tem amigos meus que estão com projetos paralelos ao meu, que me chamam para ajudar em sua equipe contribuindo nessa parte gráfica.

6 comentários:

  1. Maneiro em cara! Gostei :-) Ass: Thiago (Japa)

    ResponderExcluir
  2. Pow bacana... E ninguém chama o gordinho aqui pra participar né?? só pq estou em sp.

    ResponderExcluir
  3. Bem legal Gu,

    faltou só falar do Flash. rs

    Bj

    ResponderExcluir
  4. Gustavo, seu post está muito bom. Boa sorte ai nos seus projetos!

    ResponderExcluir
  5. Valeu guga, rumo ao estrelato... muito bom o post.

    ResponderExcluir