2021-07-18 – A criação de uma Media Layer para tornar o código mais portável, no meu Game Engine, em C/C++…

DML – Direct Media Layer.

É o nome que dei à layer que tenho entre o código e o hardware da máquina, e já explico o que é.

E podem ver à direita o tamanho do executável com uns 11 megas (enorme) e já explicarei porquê também.

E chamei DML (Direct Media Layer ou Multimedia Library?) porque é um nome muito usado, tipo SDL (Simple DirectMedia Layer, SFML acho que é Simple and Fast Multimedia Layer, etc, o meu será do estilo “media layer” como alguns outros, mas não será toda ela feita do zero, tentarei usar coisas já criadas como a libPNG, etc.

E assim quis que fosse DML (Direct Media Layer) acho eu.

Vai ser a minha layer de abstracção do hardware.

Isto porquê? Para tornar o código portável.

O Game Engine funciona em Linux, e estou a migrá-lo agora para Windows também, e para isso tenho de ajustar várias coisas.

Se tiver de mudar para outra máquina e não sistema operativo apenas, tipo um MAC ou um Commodore Amiga antigo, terei de usar outro hardware, e teria de alterar centenas de ficheiros de código, certo?

Errado. Todo o código invoca funções da DML e quando mudar de máquina, não mexo no código, só tenho de criar uma layer na DML que seja do Commodore Amiga.

O que essa layer faz é executar as instruções no hardware.

Tipo, quero criar uma imagem, a layer irá usar código específico para máquinas PC, seja Windows ou Linux, e se usar o DML de Amiga, usará um código diferente para usar na máquina antiga.

Assim, poderei criar o código que quiser, e usar o mesmo código em 1001 máquinas, em cada máquina só terei de adaptar a DML e criar uma layer própria para essa máquina e já está.

O código é o mesmo, usa sempre a DML, os nomes das funções são os mesmos (não terei de alterar nada no código), as próprias funções é que saberão o que fazer consoante a máquina que uso.

Isto para ter portabilidade.

Podem ver ali já o nascer da DML, e estou a alterar o código todo para usar a DML e não o hardware directamente, para a poder usar noutras máquinas, e agora inicialmente em Windows também.

Estive os últimos dias nisto.

Isto e o ter as imagens e músicas embebidas no executável, o que faz com que tenha vários megas de tamanho (pois tenho lá muitas imagens de teste e ficheiros de música) e ficou enorme.

Essa parte também já está a funcionar, e permitir-me-á distribuir um jogo que seja um único ficheiro executável sem 1001 pastas e directorias atrás, como eu gosto, à “old school”.

Vou voltar durante uns dias à chuva, para melhorar os efeitos e dar uma pausa nisto da DML.

2021-07-18.

Leave a Reply

Your email address will not be published. Required fields are marked *

RSS
Follow by Email
LinkedIn
LinkedIn
Share