Tôi sẽ mở đầu điều này bằng cách nói rằng tôi đã không tìm kiếm một nguồn trò chơi khổng lồ, cũng không được xây dựng nhiều theo cách của trò chơi.
Nhưng xuất phát từ việc cố gắng sử dụng các thực hành mã hóa của 'doanh nghiệp' trong các ứng dụng web, nhìn vào mã nguồn trò chơi làm tôi đau đầu nghiêm trọng: "Cái logic này làm gì với logic kinh doanh? Điều này cần tái cấu trúc ... vậy, điều này, tái cấu trúc, tái cấu trúc "
Điều này làm tôi lo lắng khi tôi sắp bắt đầu một dự án trò chơi, và tôi không chắc liệu việc cố gắng mvc / tdd quá trình phát triển sẽ cản trở chúng tôi hay giúp chúng tôi, vì tôi không thấy nhiều ví dụ trò chơi sử dụng điều này hoặc thúc đẩy nhiều cho thực hành kiến trúc tốt hơn nó trong cộng đồng.
Sau đây là trích đoạn từ một bài viết tuyệt vời về các trò chơi tạo mẫu , mặc dù với tôi nó có vẻ chính xác là thái độ mà nhiều nhà phát triển trò chơi dường như sử dụng khi viết mã trò chơi sản xuất:
Sai lầm 4: Xây dựng hệ thống chứ không phải trò chơi
... Nếu bạn thấy mình đang làm việc với thứ gì đó không trực tiếp tiến về phía trước, hãy dừng lại ngay tại đó. Là lập trình viên, chúng tôi có xu hướng cố gắng khái quát hóa mã của mình và làm cho nó thanh lịch và có thể xử lý mọi tình huống. Chúng tôi thấy rằng một cơn ngứa cực kỳ khó không gãi, nhưng chúng tôi cần phải học cách. Phải mất nhiều năm tôi mới nhận ra rằng đó không phải là về mã, mà là về trò chơi mà bạn phát hành cuối cùng.
Đừng viết một hệ thống thành phần trò chơi tao nhã, bỏ qua trình chỉnh sửa hoàn toàn và cứng cáp trạng thái trong mã, tránh điều khiển dữ liệu, tự phân tích cú pháp, điên rồ XML và chỉ mã hóa thứ đáng nguyền rủa.
... Chỉ cần lấy đồ trên màn hình càng nhanh càng tốt.
Và đừng bao giờ, hãy sử dụng đối số, nếu chúng ta dành thêm thời gian và làm điều này đúng cách, chúng ta có thể sử dụng lại nó trong trò chơi. KHÔNG BAO GIỜ.
Có phải vì các trò chơi (hầu hết) được định hướng trực quan nên có ý nghĩa rằng mã sẽ được xem trọng trong chế độ xem, do đó, bất kỳ lợi ích nào từ việc chuyển công cụ ra các mô hình / bộ điều khiển, là khá tối thiểu, vậy tại sao phải bận tâm?
Tôi đã nghe lập luận rằng MVC giới thiệu một chi phí hiệu năng, nhưng dường như đây là một sự tối ưu hóa sớm và rằng có nhiều vấn đề hiệu suất quan trọng hơn cần giải quyết trước khi bạn lo lắng về chi phí MVC (ví dụ: kết xuất đường ống, thuật toán AI, cơ sở hạ tầng truyền tải, vv).
Điều tương tự liên quan đến TDD. Tôi không thường thấy các trò chơi sử dụng các trường hợp thử nghiệm, nhưng có lẽ điều này là do các vấn đề thiết kế ở trên (quan điểm hỗn hợp / kinh doanh) và thực tế là rất khó để kiểm tra các thành phần trực quan hoặc các thành phần dựa trên kết quả xác suất (ví dụ: hoạt động trong các mô phỏng vật lý ).
Có lẽ tôi chỉ nhìn nhầm mã nguồn, nhưng tại sao chúng ta không thấy nhiều hơn các hoạt động 'doanh nghiệp' này được sử dụng trong thiết kế trò chơi? Là các trò chơi thực sự rất khác nhau trong yêu cầu của họ, hoặc là một vấn đề về con người / văn hóa (tức là các nhà phát triển trò chơi đến từ một nền tảng khác nhau và do đó có thói quen mã hóa khác nhau)?