Estudo C++

34 respostas
S

Então, gostaria de entrar na programação de jogos com C++ e gostaria que me recomendasse qual engine usar, opengl, directx, sdl, entre outras… eu era programador java, sei o basico do basico C++.
Podeira me falar por onde começo a programação de jogos?

PS: Me interessei no SDL… ele ter uma performance alta?

Obrigado…

34 Respostas

C

esse site é de um dos moderares aqui do GUJ, e pode te ajudar…

http://www.pontov.com.br/site/

ele deve te responder aqui, mas acho que o link ja te adianta algo :slight_smile:

R

C++ é uma linguagem que não encontra-se cursos, eu gostaria de aprendê-la também, o jeito é ler alguns livros!

O

Esse livro é praticamente a bíblia para programar em C, por favor, dá uma olhada;

P
V

Esse livro é praticamente a bíblia para programar em C, por favor, dá uma olhada;

Esse livro é de C, não de C++. São linguagens totalmente diferentes. Eu recomendo seguir o roadmap que tem no ponto v:
http://www.pontov.com.br/site/cpp/46-conceitos-basicos/88-roadmap-c

Sobre a engine, isso depende muito do jogo que você quer implementar.

O

Esse livro é praticamente a bíblia para programar em C, por favor, dá uma olhada;

Esse livro é de C, não de C++. São linguagens totalmente diferentes. Eu recomendo seguir o roadmap que tem no ponto v:
http://www.pontov.com.br/site/cpp/46-conceitos-basicos/88-roadmap-c

Sobre a engine, isso depende muito do jogo que você quer implementar.
Vinni.
Apesar do título esse livro também trata do C++

V

otaviojava:
Vini.
Apesar do título esse livro também trata do C++

Eu tenho o livro.
Ele é muito superficial, no caso do C++. Fala mais das diferenças, que servem para você implementar um programa estruturado com mais facilidade em C++.

O C++ de verdade não se trata só da linguagem, mas das práticas. Esse livro não aborda nada delas.

O

valeu pelo esclarecimento.

V

Mas realmente é uma ótima referência para o Czão.

S

Mais era melhor eu me aprofundar bem em C++ ou começar com C++ e SDL?

V

A SDL é uma lib, escrita em C para games. É boa se você quiser entender a fundo como games funcionam, pois ela tem pouca coisa pronta: não tem game loop, não tem classe para animações ou atores, nem física integrada. Você terá que fazer tudo no braço.

Ela é também a base de diversas outras engines, como a Chien2D, Seed, entre outras.

Se quiser usar uma engine mais poderosa, use a Cocos-X.

Agora, seria bom você pelo menos conhecer a sintaxe básica do C++. Saber como se faz classes, heranças, saber a diferença entre passagem de parâmetro por valor, ponteiros e referências, entender o básico de gerência de recursos. Caso contrário, programar em C++ vai ser uma experiência frustrante e penosa. Você não precisa chegar no nível das templates.

V

Alternativas a SDL seriam a IndieLib: http://www.indielib.com/
E a SFML: https://github.com/LaurentGomila/SFML

S

Vou estudar através deste tutorial http://www.youtube.com/playlist?list=PL7911E43401174FAE
e gostaria de saber o que preciso estudar mais afundo que esses tutoriais não explicam…

V

Com certeza. Pegue um bom livro, estudar por um material de um bacharelando bem intencionado não é a melhor saída.

J

O roadmap de livros de c++ do ponto v é maravilhoso, só livro bom mesmo.
Estou lendo o c++ eficaz e digo que o livro vale o investimento.
Em paralelo também estou lendo um livro que não tem no roadmap do ponto v e que
estou achando muito bom, que é o c++ primer plus 6th.

Explica nos detalhes cada ponto do c++…

Aprendi a programar em c++ na faculdade com ponteiros, igual anos 80, e por causa de ter preocupação
de gerenciar memória, aritmética de ponteiros, acabei preferindo ir para o java. Faz pouco tempo
que vi que é possível programar em c++ sem ponteiros, ou evitando eles ao maximo…

V

Mais de uma pessoa já me falou bem desse livro. Só não inclui no Roadmap pois ainda não tive a oportunidade de por as mãos em um exemplar.

S

Vou criar um jogo 2D, quais ferramentos devo usar? A linguagem de programação será C++…

S

Começei a estudar C++ com SDL segui todos os passos do site: http://www.pontov.com.br/site/index.php/opengl/137-criando-um-ambiente-para-jogos-com-sdlopengl
e deu o seguinte erro :

mingw32-g++.exe -L…\libs -L…\libs\SDL-1.2.15\lib -o bin\Debug\Treinando.exe obj\Debug\main.o -mwindows -mwindows -lmingw32 -lSDLmain -lSDL.dll -lopengl32 -lglu32 -lSDL_Mixer -lSDL_Image -lmingw32 -lSDLmain -lSDL.dll -lopengl32 -lglu32 -lSDL_Mixer.dll -lSDL_image.dll
…\libs/SDL_Mixer.dll: file not recognized: File format not recognized
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings (0 minutes, 0 seconds)

Como corrigir?

R

Esse livro é de C, não de C++. São linguagens totalmente diferentes. Eu recomendo seguir o roadmap que tem no ponto v:
http://www.pontov.com.br/site/cpp/46-conceitos-basicos/88-roadmap-c

Sobre a engine, isso depende muito do jogo que você quer implementar.

Valeu Vini!Se você recomendou deve ser ótimo mesmo!

V

Por que você escreveu “.dll” no SDL_Mixer e no SDL_Image?

S

eu ja tirei o .dll das duas e mesmo assis continua dando erro.

V

Você baixou a SDL_Mixer e a SDL_Image? Configurou os caminhos delas?

S

eu coloquei as duas dentro da pasta libs que eu criei

S

Eu fiz tudo que o site explica, coloquei o SDL_mixer e o SDL_image na pasta lib dentro da pasta SDL, e no path ficou D:\Programaçao de Jogos.
Dentro dessa pasta tem uma pasta chamada libs e outra Treinamento - que é o nome do meu projeto e dentro da pasta libs tem, SDL-1.2.15 e SDL.dll.

V

Vá na pasta do SDL_Mixer e veja lá qual é o nome do arquivo .a associado a lib.

Por exemplo, se é
SDL_Mixer.a ou SDL_Mixer.dll.a

Se não houver arquivos .a, é porque você baixou o pacote errado. Você tem que baixar a versão para MinGW.

S

Consegui, muito obrigado pela atenção Vini.

V

E qual era o problema?

S

Então, coloquei o SDL.dll, SDL.mixer.lib e SDL_image.lib tudo na pasta lib do SDL e funcionou : D

V

Então faltou configurar corretamente o caminho das libs para as bibliotecas do Mixer e da Image.

Copiando dá também, mas o ideal é deixar os caminhos separados.

S

Vini, então ja estou estudando SDL + opengl - então, teria como eu usar SDL + opengl + ogre 3D?

V

Se for usar a OGRE 3D, não precisa da SDL. E a Ogre é um motor gráfico, então, vai evitar que você use OpenGL diretamente.

Há uma sessão de ogre no ponto v.

S

se eu usar ogre eu perco algum desempenho? Eu quero criar jogos com alto desempenho e tals…

V

A Ogre já tem um SceneGraph e shaders implementados, com técnicas bastante modernas como o Deffered Shading. Dificilmente você vai ter tempo hábil para fazer isso, a menos que esteja desenvolvendo você mesmo uma engine.

Se quer focar no jogo, recomendo fortemente que use uma engine mais completa, como a Unity. A Ogre é somente o motor gráfico, não inclui outras integrações como física ou som.

J

A ogre é um motor que é feito em cima da opengl ou da sdl. A gora eu não sei o nível da abstração dela, mas é 1 ou 2 níveis em cima da opengl. Perde muito pouca coisa. As vezes é até melhor que programar diretamente na opengl porque o pessoal que desenvolve a ogre é mais competente que a gente não?

Criado 28 de janeiro de 2013
Ultima resposta 31 de jan. de 2013
Respostas 34
Participantes 8