Nguồn mở trò chơi dựa trên thành phần hoặc động cơ?


15

Tôi đã đọc một số về thiết kế trò chơi dựa trên thành phần nhưng vẫn gặp một số khó khăn để tìm hiểu chính xác bạn sẽ thực hiện nó như thế nào. Có ví dụ nào hay về các trò chơi dựa trên thành phần hoặc công cụ trò chơi mà tôi có thể đọc qua để cảm nhận rõ hơn về điều này không?

Câu trả lời:


7

Cá nhân tôi không nghĩ có bất kỳ ví dụ hay nào , phần lớn là do định nghĩa về "hệ thống dựa trên thành phần" cho các trò chơi được định nghĩa lỏng lẻo đến mức nó có thể có nghĩa là không có gì.

Bạn có thể thấy một số cuộc thảo luận trong câu trả lời này hữu ích: Cách triển khai hệ thống dựa trên thành phần cho các mục trong trò chơi web

Nhìn chung, cách tiếp cận chỉ đơn giản là thay đổi bất kỳ loại GameObject hoặc Actor nào từ một lớp lớn xử lý tất cả các hành vi thành một lớp đơn giản hơn chứa các đối tượng thực hiện hành vi. Tôi nghĩ rằng tự mình làm việc này và tạo ra các thành phần khác nhau phù hợp với trò chơi của bạn thường sẽ là cách tốt nhất để tiến hành.


Tôi nghe thấy điều đó. Khi cố gắng tìm các tài nguyên tốt trên đó, tôi thấy rằng hầu hết mọi người sử dụng thuật ngữ khác nhau để mô tả mọi thứ. Thật khó để so sánh các triển khai khác nhau khi bạn dành một nửa thời gian để dịch các cấu trúc cơ bản. Hệ thống thực thể, Hệ thống thành phần, Đối tượng trò chơi, Mẫu, Lắp ráp, Tập hợp thành phần, v.v ...
khoan hồng

2

Đây là một số tài nguyên bạn có thể thích:
Có chủ đề tuyệt vời này . Bản thân nó không phải là một công cụ trò chơi, nhưng thiết kế và thảo luận là tuyệt vời.
Một câu hỏi về StackOverflow về một chủ đề rất giống nhau.

Để trả lời câu hỏi ban đầu, khung Voi trong C # chính xác là những gì bạn muốn: nó đã bị ngừng, nhưng vẫn tồn tại ở đây để tham khảo thực hiện.


1

Trang web này bắt đầu vào một thực hiện cơ bản.

Hầu hết những điều trên được lấy cảm hứng từ bài viết này tại T = Machine

Tôi bắt đầu thực hiện cơ bản lấy cảm hứng từ hai liên kết trên. Tôi khá chắc chắn rằng tôi đã sai lệch rất nhiều so với lý thuyết thuần túy về các hệ thống thành phần, và chắc chắn có lỗi, nhưng nó có thể hữu ích nếu bạn đang tìm kiếm một số ví dụ đơn giản.

Bricle (C # / XNA)

Ngay bây giờ, nó chỉ tải lên một số thực thể cơ bản, xử lý một số sự kiện, v.v. Các vị trí chính bạn đang tìm kiếm là thư mục Engine.EntitySystem và có lẽ là PlayScreen nơi thực thể được tạo.

Tạo một cửa hàng thành phần dựa trên loại đơn giản và ẩn rằng đằng sau một EntityManager thông thường là tương đối đơn giản.

Thử thách đầu tiên tôi gặp phải là khi các hệ thống riêng lẻ có thể yêu cầu nhiều loại thành phần (nghĩa là thành phần vật lý và InputMovizable). Để sử dụng ngôn ngữ cơ sở dữ liệu quan hệ, tôi phải tìm cách thực hiện truy vấn THAM GIA. Vì thế, tôi đã tạo một loại bộ sưu tập khác cho các thực thể được xây dựng từ các truy vấn loại thành phần phù hợp - mỗi bộ sưu tập thực thể móc vào một sự kiện OnEntityCreate và kiểm tra xem nó có khớp không. Vẫn còn một số lỗi ở đó.

Thử thách thứ hai thực sự là tạo ra một 'đối tượng trò chơi' - tôi gọi chúng là các mẫu. Ở đây tôi có lẽ không thuần túy theo thông số kỹ thuật của T = Machine, nhưng có vẻ như nó hoạt động. Các mẫu nhóm cùng nhau khởi tạo thành phần và cho phép thành phần thực thể dễ dàng hơn (nghĩa là Bóng có thể vẽ và Vật lý).

Hy vọng điều đó hữu ích - hệ thống thực thể / thành phần có thể là một thách thức để vượt qua một số trở ngại ban đầu.


1

Một cái khác, tôi chưa sử dụng, nhưng nhìn qua mã một chút, là Artemis . Nhận xét tốt và khá tích cực. Ban đầu là một khung công tác Java nhưng đã được chuyển sang C # / XNA.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.