J'ai lu de nombreux articles sur la conception de jeux basée sur les données. Cela semble se résumer à:
- Pas de codage en dur
- Aucun code spécifique au jeu dans le moteur
- Scripting pour AI, cinématiques, et cetera.
- Généraliser le code pour la réutilisabilité
- Conception des composants
- Modularité
- Couplage bas
- Éditeurs (pour les données, les cartes, les scripts)
- Récupération de données externes
- Constantes conservées dans des fichiers texte (
.ini
ou autre) - Exposer les données via des éditeurs pour les scripts et la manipulation par les concepteurs
Maintenant, ma question est, cette compréhension est-elle correcte?
terminology
OmniOwl
la source
la source
Réponses:
Je dirais que ce n'est pas correct. Je crois que l'idée la plus importante dans la conception basée sur les données est de séparer vos données de ce qui modifie (ou met à jour) les données .
Donc, en partant d'une hiérarchie profonde OO standard comme celle-ci:
vers un état et un système séparés
L'un des paradigmes DDD les plus influents en ce moment est Entity Systems. Quelques bonnes ressources à rechercher sont:
http://gamedevrubberduck.wordpress.com/2012/12/26/a-hybrid-entity-system-component-architecture/
http://entity-systems.wikidot.com/
Bien sûr, comme avec tous les paradigmes / idées, il n'y a pas de définition exacte et tout le monde ne comprend pas la même idée en parlant DDD, mais c'est ce que je crois le plus important.
la source
Je pense que vous compliquez trop la définition. Certes, bon nombre des principes contenus dans votre liste à puces de points sont bons du point de vue de l'ingénierie logicielle, mais ils ne font pas tous nécessairement partie de la définition de «axé sur les données». Beaucoup d'entre eux ont un certain chevauchement, ou sont mieux mis en œuvre en utilisant une approche basée sur les données, mais ne constituent pas l'acte de conduire des données.
La définition réelle du développement de logiciels piloté par les données est généralement assez simple: un programme effectue des actions principalement basées sur des informations externes (un élément de données de niveau, des données de script, etc.) au lieu d'avoir une série d'étapes prédéfinies et fixes dans le code lui-même qui déterminent le flux de contrôle.
la source