Java ou C++?

A partir de agora, os posts desse blog serão técnicos e quinzenais (é realmente trabalhoso elaborar exemplos e tutoriais que funcionem).

Entretanto, uma dúvida cruel me surgiu sobre qual linguagem utilizar. Java ou C++? Abaixo os pontos positivos que considerei para cada uma:

Java

  • É mais fácil do que C++;
  • As faculdades e o mercado hoje tem mais oportunidades para Java do que para C++. Isso representa uma curva de aprendizado menor para quem lê o blog;
  • Muitos exemplos podem ser facilmente convertidos em applets ou JLNP;
  • É a linguagem mais usada para desenvolver jogos casuais, seja na para web ou mobile;
  • Boa parte dos usuários que chegam por aqui são do GUJ;
  • Tem uma API nativa gigantesca;

C++

  • A maior parte dos tutoriais na internet estão escritos em C++;
  • É a linguagem usada pelas grandes empresas de desenvolvimento de jogos no mundo;
  • Tem integração direta com DirectX, OpenGL e recursos nativos do SO;
  • Boa parte dos usuários que chegam por aqui a partir do google buscam especificamente por C++;
  • Tem as diversas frameworks no mercado, seja para jogos 3D, como Iirlich e Ogre, ou para jogos 2D, como a SDL, HGE ou a Popcap Framework;
  • É a única linguagem aceita pelos principais video-games hoje em dia.
  • A maior parte dos livros de jogos está escrito com exemplos em C++;

A dúvida era tão grande que pensei em manter muitos exemplos nas duas linguagens. Mas pensando um pouco melhor, isso se mostrou impraticável. Como vocês podem ver, é difícil escolher entre uma e outra.

Optei pelo C++. Por todas as razões enumeradas acima. Não creio que será muito difícil adaptar meus exemplos à realidade do Java.

Semana que vem posto um artigo descrevendo como configurar o ambiente inicial. Atualmente estou optando pelo compilador GNU para Windows (MINGW), com IDE Code::Blocks. É um ambiente gratuito, simples de configurar e pequeno o suficiente para ser portátil. O Code::Blocks também está disponível para Linux.

Anúncios

Sobre Vinícius Godoy

Leia a biografia completa aqui: http://pontov.com.br/site/index.php/colaboradores/54-vinigodoy
Esse post foi publicado em C++, Desenvolv. de Jogos, Jogos, Programação. Bookmark o link permanente.

23 respostas para Java ou C++?

  1. vegaroth disse:

    Será que é agora que eu aprendo a programar em C++?

    Abraço
    Mytho

  2. Isis disse:

    Opa opa opa….
    Vai falar sobre o quê? Vamos….Eu tenho que dar um tapa no meu C++ (ou talvez espancá-lo de vez…) 😉

  3. Vinícius disse:

    O negócio bom mesmo é aprender a programar, você passa de uma para outra em alguns meses se for programador de verdade. Acredito nisso.

  4. Será que é agora que eu aprendo a programar em C++?

    2. Também vou ver se consigo pegar pra estudar pra valer!

  5. vinigodoy disse:

    Depois de explicar como configurar o ambiente, vou falar um pouco de vetores matemáticos.

  6. Isis disse:

    E daqui a pouco vão começar os pedidos… Eu tenho algumas coisas na cabeça,mas deixa rolarem os posts…

  7. Paulo "Sorriso" disse:

    Realmente é bem dificil optar por uma linguagem para começar atualmente, com a quantidade de linguagens e novidades que cada uma delas traz essa parte é praticamente o bicho-papão para os novatos na area de programação. Eu comecei por C e logo depois mudei para Visual Basic, depois voltei para o C++ e não me arrependo, sempre atendeu a todas as minhas necessidades e é realmente o “bombril” das linguagens de programação, se você for bom aqui é extrema a facilidade que terá para migrar para uma outra linguagem. Sem contar que o acervo de ajuda sobre C++ na internet é enorme.

  8. Bruno disse:

    Eu concordo em aprender C++ sim, mas não descarto Java, pois Java é uma linguagem baseada no C++, orientada a objetos, possui IDES gráficas, frameworks, e etc para desenvolvimento, além de poder criar programas para rodarem na web (applets) ou programas auto executaveis .jnlp.

  9. Solano disse:

    cara isso eu achei interessante mas o que eu faço com jogos que não rodam por causa do opengl Ex: Doom3 eu tenhu esse jogo e nunca consegui joga-lo o que eu faço com esse opengl ?????
    Por favor se alguém puder me ajudar eu agradeço

  10. vinigodoy disse:

    Oi Solano. O ideal é atualizar os drivers da placa de vídeo. Para fazer isso, entre no site do fabricante de sua placa e procure pelas atualizações por lá.

    Também confira no CD se a sua placa atende as especificações do jogo!

  11. skhaz disse:

    Eu optei por C++, e se um dia eu precissar aprender Java creio que não terei dificuldades em aprende-lá.

  12. MarceloJava disse:

    Apesar de gostar do java, em se tratando de jogos, a melhor linguagem seria o C++, porque??
    Uma coisa bem simples, o C++ roda mais rápido que java, por ser mais leve, você pode direcionar mais recursos para o jogo em sí.
    O java tem evoluído muito, hoje vc tem a compilação pela jvm de códigos que são executados com frequência, melhorando sensívelmente o desempenho(jit), porém o C++ ainda tem um melhor desempenho em programas maiores e mais complexos.

  13. vinigodoy disse:

    Não só isso. O C++ tem integração mais facilitada com o sistema operacional. Isso inclui a hardwares como joysticks, volantes e manches. Há também a possibilidade de trabalhar com o DirectX e com as últimas versões do OpenGL, sem depender da boa vontade dos mantenedores de APIs externas. Além disso, o número de APIs para desenvolvimento de jogos e de sites com tutoriais e exemplos na internet é muitíssimo maior.

    Não citaria a velocidade da linguagem em si como um fator tão relevante. Exceto no caso dos jogos RTS, a maior parte de profilers indica que a maior parte do tempo gasto por um jogo não é na CPU e sim na GPU.

    Ou seja, a performance da linguagem em si – em se tratando de linguagens rápidas como C++, Java e C#, onde a diferença de performance está na casa dos 6% – tem pouco ou nenhum impacto sobre o jogo. Otimizar demais esse ponto vai somente criar uma aplicação que espera por mais tempo a placa de vídeo.

  14. Fabio Issamu Oshiro disse:

    Vc já testou o CDT (acho que é isso) para Eclipse?

  15. vinigodoy disse:

    Sim, o Batalha Estelar foi desenvolvido usando o CDT. Mas não o atual, que vem com o Eclipse Europa.

    Eu gostei, mas achei o Code::Blocks mais leve, mais poderoso e mais prático. Até por isso inclui explicações sobre ele aqui no blog.

  16. MarceloJava disse:

    Estou estudando o openGL e também a linguagem C++, porém estou um pouco “assustado” com o openGL, e não estou ainda conseguindo ver praticidade em moldar jogos, talvês porque estou começando agora a estudá-los e o primeiro impacto assusta…
    O que tenho notado é que o openGL realmente é poderoso, e alguns exemplos que andei fazendo nos estudos me deixaram entusiasmado.
    Mais minha pergunta é a seguinte:
    Toda a interface gráfica (por exemplo, uma xícara em uma mesa) tem que ser digitada na mão?, não há um editor desse ambiente?
    O que está me deixando cabreiro é a produtividade, ou então possívelmente ainda me falta conhecer mais sobre ela.
    Ou então qual o meio mais produtivo para se trabalhar nessa área? (a única IDE que consegui configurar foi o Dev C++, o visual studio, puts.. tomei uma surra pra colocar o openGL e ela venceu, coisa de iniciante).

  17. vinigodoy disse:

    Fique tranquilo.

    Existem editores de modelos, que geram um arquivo com as coordenadas de pontos e luz a serem aplicadas. Alguns outros formatos de modelos também são bem populares como os do Quake (md2, md3, md4). Um dos editores gratuitos, que está ficando até bem famoso é o Blender.

    Eu não recomendo o DevCpp, não. Instale o Code::Blocks, que você terá bem menos dores de cabeça. Há um tutorial sobre ele aqui no blog, sugiro que você siga. O Dev não tem atualização desde 2005, tem problemas sérios na identação e nele o depurador não funciona direito.

    O CodeBlocks usa o mesmo compilador do Dev (o MinGW), mas numa versão muito mais moderna e atualizada.

  18. MarceloJava disse:

    Cara com certeza sequirei seus conselhos, o Dev C++ realmente eu não gostei muito, esse codeblocks eu baixei e gostei.
    Amigo qual vc me indica para trabalhar com essa parte grafica do openGl? na sua opnião qual é mais completo?
    (para eu não me prender a um tipo e depois ter que mudar porque o outro tem mais recursos)

  19. vinigodoy disse:

    Você pode usar o Blender mesmo. É bem completo. Uma outra alternativa é o 3D Studio, mas o preço é absurdo.

    Existe uma ferramenta muito bacana chamada DeepExploration também. Ela é util porque consegue converter praticamente qualquer coisa para o “formato OpenGL”, que nada mais é que uma lista de comandos para você inserir no seu programa. Não é um software caro, até porque você não consegue editar nada nele, mas é muito útil para você poder aproveitar o que achar de graça na Internet.

    O que é outra idéia interessante: procure modelos e texturas gratuitos na Internet. Você achará tanto de 3D Studio, quanto do Quake.
    Por exemplo, o site: http://polycount.com/ tem vários deles.

  20. MarceloJava disse:

    Cara testei os dois, o blender e o 3d studio, achei 3d studio mais estável, amigável e produtivo.
    Comprei dois livros que ensinam a modelar e já estou acabando de ler o primeiro(hehe, ja até fis uma roda de liga leve, sofá e outras bugigangas).
    Porém, não estou ainda visualizando como montar um jogo no 3dstudio (já no blender, já tive uma prévia da game engine, e ví que é possível).
    Aí bate aquele frio na espinha(será que gastei grana a toa nos livros)…. trabalhando com o 3dstudio estou no caminho certo? ou devo usar algo a mais?
    Obrigado pelas dicas.. tem ajudado muito.

  21. vinigodoy disse:

    Cada ferramenta tem seu papel:
    3D Studio: Usado para fazer o modelo;
    Corel, Photoshop (ou GIMP): Usados para criar as texturas;
    Linguagem de programação: Usadas para criar a lógica do jogo em si;
    SoundForge: Para produzir audio;

    Existem também ferramentas para geração de terreno.

    Portanto, você não vai fazer o jogo todo no 3D Studio. Existem plugins para o 3D Studio gerar modelos MD2. Procure-os. Também existem sites que explicam como ler o formato 3ds. Você também pode salvar gráficos no formato svg, caso queira fazer em 2D.

    Mas terá que contar com uma engine (própria ou não) que leia esses formatos para você na linguagem que você escolher.

  22. Italo oliveira disse:

    Galera depois de muita pesquisa eu optei por c++ mas agr surgiu uma duvida qual o nome do program do c++? Ou ele n tem?

    • vinigodoy disse:

      Para transformar o código C++ em um executável, você usa um compilador. Pode ser o Visual C++ compiler ou o GNU (MinGW). Para editar o código, você pode usar alguma IDE como Visual Studio, QT Creator, Code::Blocks ou mesmo Eclipse e Netbeans.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s