Парадигма
На момент написання цієї відповіді, інші відповіді, розміщені тут, - все неправильно.
Замість того, щоб запитувати, чи підходить дизайн, керований доменом, чи ні. Слід запитати, чи «Моделювання домену» добре для ігор чи ні.
Чи добре моделювання домену для ігор?
Відповідь: колись це абсолютно казково. Однак якщо ви створюєте гру в режимі реального часу, наприклад платформер або FPS або будь-яку іншу (багато ігор), то ні. Це не обов'язково добре підходить для цих систем. Однак можуть бути системи всередині тих ігор, в яких реалізація моделі доменної моделі є ефективною.
Як вже згадували інші, рамки компонентних структур, як правило, користуються великою популярністю і з поважних причин. Однак, в культурі розвитку ігор, очевидно, існує чітка відсутність шаруватої архітектури. Знову ж таки, це є незрозумілою причиною, оскільки більшість ігор, які люди збираються розвивати, просто мутують стан сутностей і дозволяють виникнути наслідки гри.
ВСЕ ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ НЕ ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ, ЩО ВИ ПИСЕТЕ. Деякі сильно відрізняються від інших.
Деякі приклади доменів, у яких добре працює моделювання доменів, - це карткові ігри, настільні ігри та інші типи систем, керовані подіями.
Ігри, які працюють із частотою кадрів X з рухом тощо, визначаються часовими дельтами як основними поняттями домену, ймовірно, не дуже підходять. У цьому випадку наш "домен" часто настільки простий, що немає необхідності в моделюванні домену. Виявлення зіткнень, нересту нових сутностей, вплив сил на існуючі сутності тощо охоплюють більшість ігрових процесів.
Однак, коли речі стають складними, ви починаєте бачити розробників, які впроваджують доменні моделі в межах своїх організацій для обробки певних типів поведінки та обчислень.
Шаблон моделі домену в архітектурах ігор
Ваш ігровий двигун (наприклад, Unity3D) часто орієнтований на компоненти та об'єкти. У платформері у вас може бути сутність для вашого персонажа, і його стан постійно змінюється для оновлення позиції тощо.
Однак у грі, що керується подіями, більш імовірно, що роль рамки компонент-сутність має більше існувати лише як інтерфейс користувача. Ви закінчуєте шарувату архітектуру.
Користувальницький інтерфейс надає користувачеві стан гри. Користувач взаємодіє з інтерфейсом користувача, запускаючи команди на рівні обслуговування. Службовий рівень взаємодіє з об’єктами домену. Об'єкти домену підняли події домену. Слухачі подій чують події та викликають зміни в інтерфейсі користувача.
Користувацький інтерфейс> Службовий шар> Модель домену
Коротше кажучи, закінчіть контролер-модель-перегляд із реалізацією службового рівня.
Використовуючи цю архітектуру, ви маєте цілком тестоване ядро ігрового ядра (рідкість в культурі розвитку ігор, і це показано) з інтерфейсом, керованим подією.
Гаразд, що таке DDD?
Дизайн, керований доменом, - це культура / рух акценту на аналітичні зразки, які використовуються для вивчення домену, щоб ви насправді будували правильну річ, а потім шаблони реалізації, які дозволяють вам реалізувати рівень моделі, що представляє поняття в доменній моделі з використанням ідіоми вашої мови. DDD виходить із спільноти, яка працює зі складними доменами і завжди шукає способів управління високою складністю у своїх програмах, орієнтуючись на моделювання домену.
DDD не так добре, якщо ваша мета - просто почати кодування, пограти з системою, а потім з'ясувати, що ви хочете створити пізніше тощо. Це передбачає, що існує більше або менше домену. Отже, якщо ви не знаєте, якою буде ваша гра. Тоді це не спрацює.