Gần đây tôi đã quyết định bắt đầu viết một công cụ cho một trò chơi bài. Tôi không phải là người chơi "thẻ" lớn, nhưng một người bạn đã giới thiệu cho tôi trò chơi (đó là trò chơi xoay quanh trò chơi tiếng Đan Mạch), và tôi đã yêu.
Tôi muốn phát triển trò chơi theo 3 phân đoạn:
- Các công cụ cơ bản, xử lý thẻ / sàn / gamestate, vv
- Giao diện người dùng (ở dạng ứng dụng web trên thiết bị di động / máy tính để bàn.)
- Một trí tuệ nhân tạo với các chiến lược / khó khăn khác nhau, v.v.
Đây là những dự án rất khác biệt, trong suy nghĩ của tôi ... và tôi đang vật lộn để xem làm thế nào tất cả chúng sẽ phù hợp với nhau trong thời gian dài. Lúc đầu, tôi thậm chí không muốn "chơi" trò chơi bằng cách sử dụng công cụ này. Động cơ chủ yếu sẽ được kiểm tra bằng các bài kiểm tra đơn vị của nó. Chơi thử sẽ không bắt đầu cho đến khi khách hàng tồn tại. Vì vậy, có một cái gì đó của mối quan hệ máy khách-máy chủ ở đây.
Động cơ là một mảnh rất lớn của câu đố. Điều tôi muốn biết là: bạn sẽ phát triển "API công khai" cho công cụ này như thế nào?
Tôi đã nghĩ rằng công cụ này có thể là một dịch vụ web rất cơ bản, trả lại trạng thái của nó thông qua các truy vấn cho API RESTful, nhưng tôi lo lắng rằng việc phát triển công cụ này như một ứng dụng web có thể dẫn đến các quyết định lập trình kém. (Ví dụ: nếu tôi chọn khung vi mô MVC, thì API này sẽ không thực sự có lượt xem ... nó chỉ trả về các đối tượng được tuần tự hóa thông qua JSON hoặc một cái gì đó cho hiệu ứng đó. Thật tệ khi sử dụng MVC cho một dịch vụ như điều này? )
Ý tưởng khác của tôi là công cụ này sẽ chỉ là một ứng dụng giao diện điều khiển và sau đó tôi sẽ viết một cây cầu nào đó để nối dữ liệu giữa nó và ứng dụng web. (Cây cầu thực sự có thể là bất cứ thứ gì. Ý tôi là, máy chủ web và công cụ trò chơi có thể nhàn rỗi trong máy chủ IRC và chia sẻ trạng thái của chúng trong các kênh.)
Cách tiếp cận nào bạn sẽ thực hiện (phát triển như một dịch vụ web hoặc phát triển như một ứng dụng độc lập và kết nối nó sau này), và tại sao?
Cảm ơn, Robbie.
EDIT: Vì vậy, tôi đoán điều này thuộc về Phát triển trò chơi. Để làm rõ, tôi sẽ viết một công cụ trò chơi bài. Tôi đang cố gắng tìm ra cách tốt nhất để đưa ra API của công cụ để nó có thể được tích hợp trong tương lai với ứng dụng web và ứng dụng khách AI.
Tôi thậm chí còn không có tài khoản ở đây, vậy hả :)