Tôi đến từ một nền MVC (Flex và Rails) và yêu thích các ý tưởng tách mã, reusability, đóng gói, vv Nó làm cho nó dễ dàng để xây dựng mọi thứ một cách nhanh chóng và tái sử dụng các thành phần trong các dự án khác. Tuy nhiên, nó đã rất khó khăn để gắn bó với các nguyên tắc MVC khi cố gắng xây dựng các ứng dụng phức tạp, trạng thái điều khiển, không đồng bộ, hoạt hình.Model-View-Controller có độc đáo với cây thông minh và hành vi nhân tạo không?
Tôi cố gắng để create animated transitions between many nested views in an application, và nó đã cho tôi suy nghĩ về việc có hay không tôi đã lừa dối bản thân mình ... Bạn có thể áp dụng nguyên tắc từ MVC với các nguyên tắc từ Artificial Intelligence (Behavior-Trees, Nhà nước Máy phân cấp, lồng Kỳ), như trò chơi? Hai môn đó có chơi độc đáo với nhau không?
Rất dễ để giữ cho chế độ xem/đồ họa không biết gì về bất kỳ thứ gì bên ngoài khi mọi thứ tĩnh, như với hệ thống HTML CMS hoặc bất kỳ thứ gì. Nhưng khi bạn bắt đầu thêm quá trình chuyển đổi trạng thái phức tạp, có vẻ như mọi thứ cần biết về mọi thứ khác, và MVC gần như cản trở. Bạn nghĩ sao?
Cập nhật:
Ví dụ. Vâng ngay bây giờ tôi đang làm việc trên một trang web trong Flex. Tôi đã đi đến kết luận rằng để animate đúng mọi yếu tố lồng nhau trong ứng dụng, tôi phải nghĩ về chúng như là AI Agents. Mỗi "View", sau đó, có cây hành vi riêng của nó. Tức là, nó thực hiện hành động (hiển thị và ẩn chính nó) dựa trên ngữ cảnh (dữ liệu được chọn, v.v.). Để làm điều đó, tôi cần một loại điều khiển ViewController, tôi gọi nó là một Presenter. Vì vậy, tôi có một View (đồ họa được trình bày trong MXML), một Presenter (xác định các hoạt ảnh và hành động mà View có thể dựa trên trạng thái và trạng thái lồng nhau của ứng dụng), và một mô hình trình bày để trình bày dữ liệu cho View (thông qua người trình bày). Tôi cũng có các Mô hình cho các đối tượng giá trị và Bộ điều khiển để xử lý các URL và các cuộc gọi cơ sở dữ liệu, v.v ... tất cả các công cụ MVC tĩnh/html bình thường.
Trong một thời gian ở đó tôi đã cố gắng tìm ra cách cấu trúc các "đại lý" sao cho chúng có thể phản ứng với bối cảnh xung quanh của chúng (những gì được chọn, v.v.). Nó có vẻ như tất cả mọi thứ cần thiết để được nhận thức của tất cả mọi thứ khác. Và sau đó tôi đọc về Bảng/Danh sách Đường dẫn/Danh mục dành cho trò chơi và ngay lập tức nghĩ rằng chúng có một bảng được lưu trữ tập trung của tất cả các hành động được tính toán trước mà mọi tác nhân có thể thực hiện. Vì vậy, tôi đã tự hỏi làm thế nào họ thực sự cấu trúc mã của họ.
Tất cả nội dung trò chơi video 3D là một bí mật lớn và rất nhiều thứ từ những gì tôi thấy được thực hiện bằng giao diện người dùng/trình chỉnh sửa đồ họa, như xác định cây hành vi. Vì vậy, tôi tự hỏi nếu họ sử dụng một số loại MVC để cấu trúc cách các tác nhân của họ phản ứng với môi trường và cách họ giữ mã của họ được mô đun hóa và đóng gói.
Bạn có thể đưa ra một ví dụ rất đơn giản không? Câu hỏi được liên kết cũng quá dài. –
Câu hỏi của bạn có vẻ liên quan đến kiến trúc bảng đen. –
ooh, kiến trúc bảng đen trông thú vị! cảm ơn! –