Como mecanismos como o Unreal se relacionam com o OpenGL ou o DirectX?

8

Sou completamente novo em computação gráfica e, mais ainda, em desenvolvimento de jogos. Estou procurando informações para aprender o básico rapidamente. Eu tenho uma pergunta na minha cabeça; como motores como o Crytek Engine ou o Unreal Engine se relacionam com o OpenGL ou o DirectX?

Estou muito interessado em física dos jogos, mas não consigo descobrir como a física, os gráficos e o mecanismo se combinam; existem lacunas que não posso preencher.

BRabbit27
fonte
Aqui está parte da resposta, mas apenas traz outras perguntas. scientificninja.com/blog/write-games-not-engines
BRabbit27
Onde a física entra? É como se eu devesse escrever um algoritmo de física, por exemplo, um algoritmo de colisão e depois fazer com que alguns círculos criados no OpenGL se comportassem de acordo com o meu algoritmo de física?
precisa saber é o seguinte

Respostas:

10

TL; DR: Um mecanismo é apenas uma coleção de componentes reutilizáveis.

Parede de texto: os jogos armazenam uma representação do mundo, por exemplo, você teria uma entidade como uma casa, que possui uma malha que define a aparência de sua geometria e uma posição.

Agora, você provavelmente tem mais de uma entidade. Digamos que temos um personagem controlado por jogador e algumas caixas. Quando o jogador quer se mover, você move o personagem e verifica se ele colide com alguma caixa. É aí que a física entra em jogo. Dependendo de como a física é modelada, o personagem pode simplesmente atravessar as caixas, parar na frente das caixas ou empurrá-las.

Veja bem, isso só muda o estado interno do mundo do jogo.

Depois, depois de calcular o movimento e a física, você renderizaria um quadro, por exemplo, desenharia o estado atual do mundo na tela.

OpenGL e DirectX são APIs gráficas, eles são usados ​​apenas para renderizar coisas (por exemplo, o personagem) na tela.

Então, você está basicamente dizendo ao OpenGL / DirectX 'Eu quero desenhar o personagem na posição1 e uma caixa na posição2 e ...'.

Claro, isso é uma simplificação grosseira.

De qualquer forma, como não queremos seguir esse procedimento passo a passo o tempo todo, colocamos essas coisas em funções e classes. Portanto, podemos ter uma classe de física que detenha todas as funções necessárias para a simulação de física ou uma classe de gráficos que faça interface com a API gráfica e desenhe nossas entidades. Et voila, nós temos um motor.

Exilyth
fonte
Há um sotaque faltando "Et voilà" haha ​​apenas brincando. Muito obrigado, acho que estava pensando certo, mas não tinha certeza, então decidi perguntar. Muito obrigado!
precisa saber é o seguinte
2
O DirectX não é uma API gráfica, mas o Direct2D e o Direct3D são.
@JaakkoLipsanen Sim, agora vejo, o DirectX é uma estrutura completa para desenvolvimento de jogos (3d, áudio, vídeo, etc.) e o Direct3D é apenas o módulo gráfico.
precisa saber é o seguinte