Mô hình
Tính đến thời điểm mà câu trả lời này được viết, các câu trả lời được đăng khác ở đây đều sai.
Thay vì hỏi liệu Thiết kế hướng tên miền có tốt cho trò chơi hay không. Bạn nên hỏi liệu "Mô hình miền" có tốt cho trò chơi hay không.
Mô hình miền có tốt cho trò chơi không?
Câu trả lời là: đôi khi nó hoàn toàn tuyệt vời. Tuy nhiên, nếu bạn đang tạo một trò chơi thời gian thực như platformer hoặc FPS hoặc bất cứ điều gì (NHIỀU NHIỀU loại trò chơi) thì không. Nó không nhất thiết phải phù hợp cho các hệ thống đó. Tuy nhiên, có thể có các hệ thống trong đó các trò chơi triển khai mẫu mô hình miền có hiệu quả.
Như những người khác đã đề cập ở đây, các khung thành phần thực thể có xu hướng rất phổ biến và vì lý do chính đáng. Tuy nhiên, trong văn hóa phát triển trò chơi dường như thiếu kiến trúc phân lớp. Một lần nữa, đây là lý do chính đáng vì hầu hết các trò chơi mà mọi người sẽ phát triển chỉ biến đổi trạng thái trên các thực thể và để cho hậu quả nổi lên là trò chơi.
TẤT CẢ PHẦN MỀM KHÔNG PHẢI LÀ PHẦN MỀM MÀ BẠN ĐANG VIẾT. Một số khá khác với những người khác.
Một số ví dụ về các miền mà mô hình miền hoạt động tốt là trò chơi bài, trò chơi trên bàn và các loại hệ thống khác được điều khiển theo sự kiện.
Các trò chơi chạy ở tốc độ khung hình X với chuyển động, vv được xác định bởi các vùng đồng bằng thời gian vì các khái niệm miền cốt lõi có lẽ không phù hợp lắm. Trong trường hợp này, "miền" của chúng tôi thường đơn giản đến mức không cần mô hình hóa miền. Phát hiện va chạm, sinh sản của các thực thể mới, ảnh hưởng của các lực lượng đối với các thực thể hiện có, vv có xu hướng bao trùm hầu hết các trò chơi.
Tuy nhiên, khi mọi thứ trở nên phức tạp, bạn bắt đầu thấy các nhà phát triển triển khai các mô hình miền trong các thực thể của họ để xử lý các loại hành vi và tính toán nhất định.
Mô hình mô hình miền trong kiến trúc trò chơi
Công cụ trò chơi của bạn (ví dụ: Unity3D) thường được định hướng theo thành phần. Trong một platformer, bạn có thể có một thực thể cho nhân vật của mình và trạng thái của nó liên tục bị thay đổi để cập nhật vị trí, v.v.
Tuy nhiên, trong một trò chơi hướng sự kiện nhiều hơn, nhiều khả năng vai trò của khung thực thể thành phần không chỉ tồn tại dưới dạng Giao diện người dùng. Bạn kết thúc với một kiến trúc lớp.
UI hiển thị trạng thái trò chơi cho người dùng. Người dùng tương tác với UI, kích hoạt các lệnh trong lớp dịch vụ. Lớp dịch vụ tương tác với các đối tượng miền. Các đối tượng miền nâng sự kiện miền. Người nghe sự kiện nghe các sự kiện và kích hoạt thay đổi trong UI.
UI> Lớp dịch vụ> Mô hình miền
Nói tóm lại, kết thúc với trình điều khiển mô hình-khung nhìn với việc triển khai lớp dịch vụ.
Sử dụng kiến trúc này, bạn có một lõi trò chơi hoàn toàn có thể kiểm tra đơn vị (Rất hiếm trong văn hóa phát triển trò chơi và nó hiển thị) với giao diện hướng sự kiện.
Được rồi, DDD là gì?
Thiết kế hướng tên miền cụ thể là văn hóa / phong trào nhấn mạnh vào các mẫu phân tích được sử dụng để tìm hiểu về tên miền, để bạn thực sự xây dựng đúng, và sau đó triển khai các mẫu cho phép bạn triển khai lớp mô hình đại diện cho các khái niệm trong mô hình miền sử dụng thành ngữ ngôn ngữ của bạn. DDD ra khỏi một cộng đồng làm việc với các miền phức tạp và luôn tìm cách quản lý độ phức tạp cao trong các ứng dụng của họ bằng cách tập trung vào mô hình hóa miền.
DDD không làm tốt như vậy nếu mục tiêu của bạn là bắt đầu viết mã, chơi xung quanh với hệ thống và sau đó tìm ra những gì bạn muốn xây dựng sau này, v.v ... Nó giả định rằng có ít nhiều một miền tồn tại. Vì vậy, nếu bạn không biết trò chơi của bạn sẽ là gì .. Sau đó, nó sẽ không hoạt động.