Você acha que é possível passar do C ++ Straight para o 3D (pulando 2D)

8

Você acha que é possível ir direto da programação C ++ experiente (mais de 5 anos) direto para o aprendizado do DirectX 3d?

Quero dizer ... eu começaria com o básico, estou mais interessado em configurar o Demos (como obter uma boa demonstração de água e outras) do que realmente fazer um jogo completo.

Você acha que isso é possível?


fonte
3
Possível, sim. Fácil? De jeito nenhum.
The Duck Comunista

Respostas:

16

Absolutamente é possível. Um ótimo ponto de partida Introdução à programação de jogos em 3D com o DirectX 10 de Frank D. Luna . É muito fácil de ler, permite implementar rapidamente muitas funções comuns e serve como uma excelente base para aprender mais sobre DirectX e programação de jogos.

jeffythedragonslayer
fonte
11
Esse é o livro exato que eu ia começar com lol.
2
Mais um +1 para esse livro, muito boa leitura. A partir daí, eu recomendaria livros de Wolfgang F. Engel. seus livros Shader X foram especialmente úteis ao longo dos anos.
James
Este é um excelente livro que eu também recomendei.
reverbb
2

Obviamente, apesar de eu recomendar começar com um aplicativo 2D muito, muito simples, pois a curva de aprendizado inicial (apenas colocar um aplicativo DX em execução pode ser uma tarefa árdua) pode ser bastante acentuada e é útil saber se os problemas que você está vendo são Específico em 3D, ou se você está perdendo algo muito básico.

Implemente o Pong - você aprenderá o básico, como instalar e executar um aplicativo DX, processamento de entrada, detecção básica de colisão e, mais importante, como desenhar coisas na tela.

Se for o seu primeiro aplicativo, você deve levar menos de uma semana para executá-lo. Nesse ponto, você deve entender o básico da estrutura DX e estar pronto para iniciar outro projeto em que possa se concentrar nos aspectos 3D - matrizes de transformação, gerenciamento de objeto / estado, seleção, iluminação, etc. Talvez implemente 3D pong ou raquetebol.

3Dave
fonte
0

Claro que é possível. Também é possível aprender C ++ como sua primeira linguagem de programação. Mas provavelmente não é o caminho mais rápido para chegar lá.

Passar de "programação" para "programação de jogos" requer aprender algumas coisas, independentemente dos gráficos: loops de jogos, entrada em tempo real e assim por diante. Isso é MUITO mais fácil de aprender se você não precisar aprender a aprender uma nova biblioteca de gráficos ao mesmo tempo. Aprenda uma coisa de cada vez e você provavelmente terá uma experiência muito mais fácil. (E se você é um programador experiente, aprender o material 2D realmente não deve demorar tanto assim.)

Ian Schreiber
fonte
0

O que 2D tem em comum com 3D? Não muito. O 2D é um mundo plano ou um 3D falsificado que, embora tenha uma aparência visual parecida com o 3D, possui um código muito diferente do 3D verdadeiro.

Mesmo para as coisas que eles têm em comum, como a detecção de colisões, quão difícil é estender o código para 3D? Bem fácil.

Simplificando, aprender 2D não o ajudará tanto quanto você pensa em sua jornada para aprender jogos em 3D ou design de mecanismo. Eles têm pouco em comum e, pelo que eles têm em comum, o 2D não é realmente um "trampolim" fácil para você fazer o 3D.

Como David Lively sugeriu, você pode querer começar com um jogo 2D muito básico, como Pong, mas não pense que precisará recriar Final Fantasy, Super Mario Brothers, Zelda etc., antes de passar para combater 3D. Mesmo trabalhos introdutórios como esse não têm o objetivo de adquirir muita experiência em 2D, mas o objetivo de tornar tudo o mais simples possível, para que você possa ver conceitos e métodos básicos (detecção de colisão, inicialização da biblioteca de gráficos etc.) .,) que têm tanto a ver com 3D quanto com 2D, o mais rápido possível, para que você possa avançar para a próxima etapa. A próxima etapa pode ser a criação de um menu "Novo / Salvar / Carregar / Sair", que você mais uma vez simplificará o máximo possível e continuará adicionando itens (uma dimensão ao movimento, modelos,

Vamos colocar dessa maneira, no entanto. Depois de aprender alguma teoria em um curso universitário sobre design de jogos, fomos incumbidos de criar um mecanismo 3D. Eu fiz isso em cerca de uma semana. Ele desenhou objetos 3D, projetou sombras, desenhou texturas, fez mapeamento de mip, detectou colisões, permitiu saltar e abriu um menu se você clicou com o botão direito do mouse ou pressionou {ENTER} ou {ESC}.

A parte demorada é torná-la sofisticada ... seja ajustando o mecanismo ou criando modelos / texturas / animações, conteúdo do jogo etc.

Michael
fonte
0

Sim. Como você já conhece o C ++, agora só precisa aprender uma API e uma teoria. O principal obstáculo para aprender especificamente sobre 3D é provavelmente a matemática envolvida. Embora a matemática 2D seja bastante fácil de entender em um nível mínimo, a 3D exige uma compreensão mais complexa. Há também uma tonelada de coisas como shaders que são definitivamente mais relevantes para o 3D do que para o 2D. No entanto, se você planeja fazer um jogo, eu usaria uma rota 2D rápida apenas para ter a sensação de fazer um jogo do começo ao fim (e talvez tenha um sistema GUI funcional para o qual você possa portar!) Antes de entrar no 3D.

DMan
fonte
IME, o maior obstáculo para aprender uma API 3D é chegar ao ponto em que você realmente tem algo para olhar. Passei um pouco de tempo tentando descobrir por que não consegui ver nada no início do opengl; é difícil depurar uma tela em branco.
StarWeaver 30/07/2014