Federação sigma game engine architecture sigma sigmaco game engine, engine, execution engine, nextgl, opengl (gl), qwadro, renderware, software system cá estava eu, mais um dia revirando a internet, procurando recursos para fazer gambiarras quando me deparei com uma confusão num fórum sobre a natureza de alguns softwares. A confusão se dava pela denominação dos softwares em si, se eram sistema ou engenhos (aka motores). Aparentemente as pessoas não sabem distinguir o que faz dum software um sistema ou um engenho, principalmente na área dos middlewares, o tipo de software usado com e como game engines.

Software Systems vs Engines

Cá estava eu, mais um dia revirando a internet, procurando recursos para fazer gambiarras quando me deparei com uma confusão num fórum sobre a natureza de alguns softwares. A confusão se dava pela denominação dos softwares em si, se eram sistema ou engenhos (aka motores). Aparentemente as pessoas não sabem distinguir o que faz dum software um sistema ou um engenho, principalmente na área dos middlewares, o tipo de software usado com e como game engines.

Na engenharia de software, um sistema é um conjunto intervinculado de módulos e componentes autônomos ou não. É comum haver um ou mais módulos dentro de um sistema rodando num thread ou num processo separado, com suas próprias convenções de ação e no seu próprio ciclo temporal. Este tipo de característica implica que aquele módulo, componente ou subsistema é autônomo, conhecido popularmente como “engenho“, isto é, possui autonomia para decidir o que fazer e quando fazer.

No QWADRO, foi decidido trazer a vida uma implementação de um rascunho do OpenGL 5, aqui denominado NextGL. Em nossa implementação há um conceito de fila para entrada na esteira de processamento da GPU. Esta fila é dividida em duas partes, sendo-as:

  • uma interface para submissão de trabalho; e
  • outra parte rodando no fundo fazendo a distribuição real desse trabalho para dentro das esteiras de processamento da GPU.

O segunda parte é um engenho de arraste, que tem autonomia para trancar a interface de entrada e coletar todas as requisições de trabalho enfileiradas quando a GPU estiver ociosa.

No entanto, ainda faz parte do sistema de desenho, pois dispõe e usa recursos que estão interrelacionados inclusive com outras filas, fazendo outras funções, com os mesmos recursos. Este sistema que garante a disponibilidade e usabilidade dos recursos.

Contudo, engenhos e sistemas intrinsecamente coexistem, pois, para o funcionamento eficiente da capacidade de trabalho dos engenhos é necessário haver toda uma fundação com objetos e mecanismos de sincronização e disponibilização de recursos, que agem, na maior parte do tempo, por provocação, isto é, por acionamento da aplicação ou componentes autônomos.

Os produtos que são apresentados no mercado como “game engines” são todos sistemas completos mas somente alguns são engenhos autônomos. A maioria destes softwares datados das décadas passadas necessitavam de que a aplicação desse uma chance para eles realizaram seu processamento, logo não tinham autonomia real. RenderWare 3 é um exemplo, principalmente devida a sua arquitetura single-threaded por design. Glacier System, por exemplo, tecnologia usada na série Hitman, reforça a semântica em seu nome.

Faça login e contribua para a base de conhecimento da Federação SIGMA fornecendo novas informações e recursos a respeito do conteúdo tratado aqui.

Responses

Translate »