Paradigma
No momento em que essa resposta foi escrita, as outras respostas postadas aqui estão todas erradas.
Em vez de perguntar se o Design Orientado a Domínio é bom para jogos. Você deve perguntar se a "Modelagem de Domínio" é boa para jogos.
A modelagem de domínio é boa para jogos?
A resposta é: às vezes é absolutamente fabuloso. No entanto, se você estiver criando um jogo em tempo real, como um jogo de plataformas ou FPS ou o que for (MUITOS MUITOS tipos de jogos), então não. Não é necessariamente adequado para esses sistemas. No entanto, pode haver sistemas dentro daqueles jogos nos quais a implementação do padrão de modelo de domínio é eficaz.
Como outros mencionaram aqui, as estruturas de entidades componentes tendem a ser muito populares e por boas razões. No entanto, na cultura de desenvolvimento de jogos, parece haver uma falta distinta de arquiteturas em camadas. Novamente, isso é por uma boa razão, pois a maioria dos jogos que as pessoas desenvolvem apenas modifica o estado das entidades e deixa as conseqüências emergentes serem o jogo.
TODO O SOFTWARE NÃO É O SOFTWARE QUE VOCÊ ESTÁ ESCREVENDO. Alguns são bem diferentes dos outros.
Alguns exemplos de domínios nos quais a modelagem de domínio funciona bem são jogos de cartas, jogos de tabuleiro e outros tipos de sistemas orientados a eventos.
Jogos que são executados na taxa de quadros X com movimento etc determinados por deltas de tempo como conceitos principais de domínio provavelmente não são uma boa opção. Nesse caso, nosso "domínio" geralmente é tão simples que não há necessidade de modelagem de domínio. Detecção de colisão, criação de novas entidades, influência de forças nas entidades existentes, etc. tendem a cobrir a maior parte do jogo.
No entanto, à medida que as coisas se tornam complexas, você começa a ver os desenvolvedores implementando modelos de domínio em suas entidades para lidar com certos tipos de comportamento e cálculo.
Padrão de modelo de domínio em arquiteturas de jogos
Seu mecanismo de jogo (por exemplo, Unity3D) geralmente é orientado a entidades e componentes. Em um jogo de plataforma, você pode ter uma entidade para seu personagem e seu estado é constantemente alterado para atualizar a posição etc.
No entanto, em um jogo mais orientado a eventos, é mais provável que o papel da estrutura componente-entidade exista mais como interface do usuário. Você acaba com uma arquitetura em camadas.
A interface do usuário renderiza o estado do jogo para o usuário. O usuário interage com a interface do usuário, acionando comandos na camada de serviço. A camada de serviço interage com objetos do domínio. Objetos de domínio geraram eventos de domínio. Ouvintes de eventos ouvem os eventos e acionam alterações na interface do usuário.
UI> Camada de Serviço> Modelo de Domínio
Em resumo, termine com o model-view-controller com uma implementação da camada de serviço.
Usando essa arquitetura, você tem um núcleo de jogo completamente testável por unidade (uma raridade na cultura de desenvolvimento de jogos, e mostra) com uma interface orientada a eventos.
Ok, agora, o que é DDD?
O Design Orientado a Domínio é especificamente uma cultura / movimento de ênfase nos padrões analíticos usados para aprender sobre o domínio, para que você realmente construa a coisa certa e, em seguida, padrões de implementação que o capacitem a implementar uma camada de modelo que represente o conceitos no modelo de domínio usando o idioma do seu idioma. O DDD sai de uma comunidade que trabalha com domínios complicados e está sempre procurando maneiras de gerenciar alta complexidade em seus aplicativos, concentrando-se na modelagem de domínios.
O DDD não funciona tão bem se seu objetivo é apenas começar a codificar, brincar com o sistema e descobrir o que você deseja criar mais tarde, etc. Isso pressupõe que exista mais ou menos um domínio. Então, se você não tem idéia de como será o seu jogo ... Então, não vai funcionar.