C++

Oi pessoal, td bem? Sou estudante de java e queria aprender criar jogos nessa linguagem, porém depois de algumas pesquisas descobri q esta lp não é muito boa para criar games, e sim a famosa c++. Então queria saber se alguem pode me informar uma apostila p/ iniciantes de C++OO (PF tem q ser OO) com tudo bem esplicado. Agradeço desde já. :roll:

PF = por favor? (No meu tempo era “prato feito” :slight_smile: )

De qualquer maneira, siga o que o mestre Vinicius lhe recomenda (ele ensina a escrever games na faculdade, então sabe o que está falando: )

http://pontov.com.br/site/cpp/46-conceitos-basicos/88-roadmap-c

Em particular, ele recomenda você baixar esta apostila aqui:

http://www.pontov.com.br/files/cpp/roadmapcpp/ApostilaProgramacaoCppv045.pdf

kkkk. Muito obrigado amigo (se é q posso te chamar de amigo , desculpe a intimidade :slight_smile: ), pode deixar que vou ter menos preguiça da próxima vez de escrever “por favor” :wink: kkkk
Te devo 1, se precisar de algo em java pode contar comigo.

Vai muito do seu foco:
a) Se você quer virar desenvolvedor de jogos no Brasil, então, estude C#. A linguagem é parecida com o Java e é a linguagem usada na Unity, de longe a engine mais popular entre os desenvolvedores de jogos Brasileiros (MonsterJuice, DynamicLightStudios, Aduge, …) Para jogos 2D, o C# conta com o XNA, que será descontinuado no Windows. Entretanto, as APIs do Direct2D e Direct3D do Windows 8 também rodam nativamente em C#, e são bem parecidas com o XNA.

b) Se você quer tentar um dia ir para o exterior e trabalhar na EA, NaughtyDog, Ubisoft, Blizzard ou similar, aí não tem como fugir do C++. É uma linguagem árida, tensa, mas ensina você a como o computador realmente funciona. Mas prepare-se para uma boa dose de programação orientada a “cabelos no peito”. A grande vantagem do C++ é que é, disparado, a linguagem com mais suporte a jogos. Tem APIs de todos os tipos, desde motores gráficos como a Ogre, de física como a BulletPhysics e a Box2D até APIs para as coisas aparentemente mais banais, como desenhar árvores (SpeedTree). Além disso, é a única linguagem que suporta absolutamente todos os tipos de controles e interfaces que você puder sonhar (os fabricantes de dispositivos geralmente preocupam-se em faze-los funcionar primeiro em C, depois no resto das linguagens).

c) Se você quer ir para o IOS, aí você terá que aprender a bizarrice do Objective-C. Seria bom baixar a Cocos2D, que é a engine mais popular dessa plataforma. A Unity também tem sido usada como alternativa multiplataforma para desenvolvimento móvel.

O Java é uma boa apenas se você for se focar em Android. Existe no Java a AndEngine. É uma péssima plataforma para jogos hardcore, pois não é suportada em nenhum console, não tem boas classes para som, nem aceleração 3D. Jogos nunca foram o foco da Sun, e continuam não sendo o foco da Oracle. Mesmo a comunidade de jogos em torno do Java é muito pequena. Talvez a coisa mude um pouco com o JavaFX 2.0, mas tudo ainda está no campo da promessa.

Por fim, vale a pena consultar o Ponto V:
http://www.pontov.com.br

Além do roadmap de livros que entanglement indicou, temos diversos artigos sobre C++, OpenGL, Ogre, Java e XNA.
Sem falar em outras áreas, como o Game Design.

Tópico movido para o fórum de outras linguagens.

Caro ViniGodoy, obrigado pelo post. Estou muito ansioso para aprender c++ bem, estou estudando todos os dias, mas c++ é uma linguagem de sintaxes que deixam a desejar. No entanto, por mais difícil que eu acha esta linguagem, quero aprender, e aprender muito bem, porque é meu sonho desenvolver jogos 3d. E no caso do c#, andei dando uma estudada nas características dessa linguagem para desenvolver jogos, e nos estudos descobri que não possui tanto desempenho quanto c++, por isso insisto nessa linguagem. Obrigado!
Ahh, e se alguém conhece um livro que ensina c++ no estilo do use a cabeça java por favor me passe o nome e o autor:-)

Até hoje me surpreendo com a capacidade do C++ permitir escrever programas que são só um pouco mais compreensíveis que aqueles manuscritos medievais (onde você precisa aprender um monte de abreviações, porque os antigos copistas tinham de escrever em letras grandes textos quilométricos).
De qualquer forma, faz parte do skill necessário para escrever programas em C++ conseguir entender programas que outras péssoas escreveram em C++

Acho que o problema maior não é nem a linguagem, mas sim o fato de que programador C++ se acha gênio apenas por usá-lo.

Objective C é apenas algumas macros para OO em cima de C. A linguagem é dinâmica e permite a alteração de classes mesmo que você não possua o código fonte. Em alguns pontos, é melhor do que Java.

[quote=Longino][quote=ViniGodoy]
c) Se você quer ir para o IOS, aí você terá que aprender a bizarrice do Objective-C. Seria bom baixar a Cocos2D, que é a engine mais popular dessa plataforma. A Unity também tem sido usada como alternativa multiplataforma para desenvolvimento móvel.
[/quote]

Objective C é apenas algumas macros para OO em cima de C. A linguagem é dinâmica e permite a alteração de classes mesmo que você não possua o código fonte. Em alguns pontos, é melhor do que Java.[/quote]

É a mesma coisa da linguagem vala, que hoje é usada para se escrever aplicações para o gnome. Gera executáveis muito bons. O grande problema é que você não encontra grande conteúdo para várias plataformas, em contrapartida c++ possui diversas ferramentas crossplataform. Unity3D agora suporta linux, windows e mac(ela não é escrita em c#, mas usa essa linguagem apenas como script da lógica do game).