J'ai lu comment concevoir du code pour un jeu. Une chose que je n'ai pas pu comprendre est - comment gérez-vous l'écriture d'un éditeur de niveau extérieur au jeu (pas un «éditeur de niveau en jeu») sans «copier» le code du jeu? Par exemple, vous devrez peut-être copier tout le code sur les différents types d'entités que vous pouvez avoir. Vous devrez ajouter le code de rendu du jeu.
Je suppose que cela peut être fait en créant une DLL à partir de la partie «moteur» du jeu. Ensuite, partagez-le entre le jeu réel et l'éditeur de niveau.
Ou existe-t-il un moyen meilleur / plus facile de le faire?
la source
Séparez au mieux la logique de rendu de la logique de jeu réelle lors de la conception de votre moteur de jeu. Une façon de procéder consiste à utiliser Component , vous pouvez modèle de lors de la création de votre moteur de jeu. Par exemple, XNA utilise ce modèle au niveau du framework pour plus de flexibilité. Utilisez la même base de code pour le rendu avec votre éditeur de niveau; écrire des wrappers si nécessaire.
De même, un autre modèle quelque peu populaire est MVC (Model-View-Controller) qui pourrait également aider. Codez votre moteur à l'aide de MVC normalement. Vous pouvez ensuite utiliser le même code pour la vue et le modèle, mais injectez un contrôleur personnalisé pour éditer le modèle de votre éditeur de niveau au lieu du contrôleur du moteur de jeu qui se met à jour en fonction de l'entrée du jeu. Implémentez la sérialisation pour les modèles de jeu pour les charger / les enregistrer depuis l'éditeur ou le jeu.
Garder les composants dans des assemblages séparés encouragera bien sûr la séparation ...
la source