Eu tenho lido sobre como criar código para um jogo. Uma coisa que não consegui descobrir é: como você consegue escrever um editor de nível fora do jogo (não um 'editor de nível no jogo') sem 'copiar' o código do jogo? Por exemplo, pode ser necessário copiar todo o código sobre os diferentes tipos de entidades que você pode ter. Você precisará adicionar o código de renderização do jogo.
Meu palpite é que isso pode ser feito criando uma DLL da parte 'engine' do jogo. Em seguida, compartilhe-o entre o jogo real e o editor de níveis.
Ou existe uma maneira melhor / mais fácil de fazer isso?
fonte
Separe a lógica de renderização da melhor maneira possível da lógica de jogo real ao projetar seu mecanismo de jogo. Uma maneira de fazer isso é usar o padrão Component ao criar seu mecanismo de jogo. Por exemplo, o XNA usa esse padrão no nível da estrutura para flexibilidade. Use a mesma base de código para renderizar com seu editor de níveis; escreva wrappers, se necessário.
Da mesma forma, outro padrão um tanto popular é o MVC (Model-View-Controller), que também pode ajudar. Codifique seu mecanismo usando o MVC normalmente. Você pode usar o mesmo código para Exibir e modelar, mas injetar um controlador personalizado para editar o modelo para o seu editor de níveis, em vez do controlador do mecanismo de jogo que é atualizado de acordo com a entrada do jogo. Implemente serialização para modelos de jogos para carregá-los / salvá-los do editor ou jogo.
Manter os componentes em montagens separadas, é claro, incentivará a separação ...
fonte