Qual é a diferença entre uma biblioteca e um mecanismo?

31

Estou trabalhando em uma biblioteca para ajudar no desenvolvimento de jogos 2D com o Scala. Até agora, é uma coleção de classes úteis, carregamento de arquivos, detecção de colisões, imagens, sprites etc.

Então, quando ele deixa de ser uma biblioteca de classes e começa a ser um mecanismo? Onde exatamente reside a diferença entre estrutura útil e um mecanismo de jogo?

Lanbo
fonte
Eu diria que a distinção não pode ser feita, porque são conceitos em um nível diferente de abstração. Um mecanismo "grande" ainda é uma estrutura.
André Paramés
1
Há menos distinção entre um mecanismo de jogo e uma estrutura, mas, a partir do título, entre uma biblioteca e um mecanismo, existe uma distinção enorme e claramente definida. Este link resume o seguinte: gamefromscratch.com/post/2015/06/13/…
Serapth

Respostas:

21

Eu acho que a confusão que as pessoas têm aqui é que uma é geralmente composta pela outra, então o que as pessoas realmente querem saber é quando você tem o suficiente para ser considerado o outro.

Então, quando ele deixa de ser uma biblioteca de classes e começa a ser um mecanismo?

Nunca.

Onde exatamente reside a diferença em uma estrutura útil e um mecanismo de jogo?

Não há nenhum.

Agora, deixe-me explicar as respostas. Um mecanismo de jogo é composto de bibliotecas de classes. Eles não deixam de ser bibliotecas de classes simplesmente porque estão dentro de um mecanismo de jogo. Uma biblioteca é uma estrutura útil para lidar com uma necessidade específica dentro de um mecanismo de jogo. Uma estrutura que implica as necessidades de um jogo completo é um mecanismo de jogo.

Aqui estão alguns exemplos de mecanismos de jogos:

  • Unreal Engine
  • Reality Engine
  • Mecanismo de origem
  • Quake Engine
  • Unity Engine

E alguns exemplos de bibliotecas

  • Novodex (Física)
  • FMOD (áudio)
  • Havok (Física)
  • Ogre3D (Renderização)
  • BINK (videoteca)
  • Direct3D (Gráficos)
  • OpenGL (Gráficos)
  • DirectSound (áudio)
  • XInput (entrada)

Espero que isto ajude

James
fonte
1
E a diferença entre um mecanismo de renderização e uma biblioteca de gráficos? : p
Zaky German
1
@Zaky German - Ogre3D é um 'mecanismo' de gráficos, como FMOD é um 'mecanismo' de áudio. Separados, no entanto, estes não são um mecanismo de jogo, eles não tratam da entrada do usuário, conectividade de rede ou similares, por exemplo. É aqui que acho que parte da confusão pode entrar em jogo. Nesta conotação, você pode trocar Biblioteca, Módulo, Componente ou Mecanismo. Porém, estes não são um 'Game Engine'. Uma biblioteca de gráficos seria algo parecido com o Direct3D ou uma API fina sobre o Direct3D para facilitar, mas não renderiza diretamente. O OpenGL e os invólucros ao seu redor também cairiam na área da biblioteca de gráficos.
James
14

Realmente não existe uma definição concreta para nenhum dos termos (ou para o termo relacionado "estrutura", nesse caso). Existem centenas de maneiras diferentes de interpretar as diversas distinções sutis nos pacotes de software e atribuir-lhes classificações.

Pessoalmente, vejo uma "biblioteca" como algo que fornece um conjunto de funcionalidades relativamente pequeno e direcionado, enquanto uma "estrutura" fornece funcionalidade mais ou mais ampla, e um "mecanismo" fornece a mesma (ou mais) e normalmente possui um conjunto de ferramentas associadas que acompanham.

Eu já vi muitas interpretações pessoais dos mesmos termos de outras pessoas para me sentir seguro, sugerindo que um "mecanismo" fornece mais ou mais funcionalidade do que uma "biblioteca" normalmente ... mas onde você desenha essa linha para o seu próprio software Cabe a você.

Josh
fonte
Há uma diferença concreta entre uma estrutura e outras bibliotecas; estes estão listados na página Wiki do primeiro. Sucintamente, a estrutura controla o fluxo do aplicativo e você conecta seu código a ele; em outras bibliotecas, você controla o fluxo e chama seu código.
André Paramés
1
Eu não consideraria isso definitivo; A Wikipedia também possui uma página para "mecanismo de jogo" e, assim como "biblioteca" e "estrutura", esses termos são usados ​​com tanta freqüência de maneiras que se ajustam à descrição na página da wiki quanto de maneiras que não são, na minha opinião. experiência. Ainda é tudo muito ondulado.
Josh
2

Essa é uma pergunta complicada, já que a linha entre biblioteca e mecanismo pode às vezes ser muito fina e embaçada. Eu diria que o ponto em que uma biblioteca se transforma em um mecanismo é quando se torna voltada para um jogo específico ou para um tipo específico de jogo.

Por exemplo: o mecanismo Unreal (ou Source ou Quake) foi projetado para ser usado em jogos de FPS (poderia ser usado de maneira viável em outros jogos, mas você gastaria algum tempo trabalhando contra o mecanismo). Ogre3d (ou mesmo Directx, SDL ou outras bibliotecas comuns) pode ser usado para criar qualquer tipo de jogo, sem precisar extrair partes principais do código ou contorná-las.

thedaian
fonte