Trường hợp mã trò chơi phù hợp với công cụ?


7

Tôi đã tự hỏi nếu ai đó có thể cho tôi biết làm thế nào trò chơi và công cụ trò chơi phù hợp với phát triển trò chơi. Điều tôi đặc biệt muốn nói là, công cụ trò chơi không thực sự chứa một trò chơi. Các nhà phát triển trò chơi có xây dựng một công cụ, sau đó tạo một lớp mới kế thừa từ công cụ đó, trở thành trò chơi không?

Ví dụ,

class ShooterGame : public Engine
{
};

Tôi không chắc chắn nơi mã trò chơi phù hợp với công cụ.



1
Điều này: khoaninja.com/blog/write-games-not-engines mô tả, đại khái, suy nghĩ của tôi về cách một động cơ sẽ ra đời. Như những người khác đã ngụ ý, phần lớn là từ việc trích xuất các thành phần có thể tái sử dụng của trò chơi khi bạn hoàn thành chúng và chuyển sang dự án tiếp theo.

Cố gắng cứu vãn câu hỏi này; nhưng tôi không chắc nơi này phù hợp, ngoài "công cụ trò chơi rộng".
Gnemlock

@Gnemlock: Có thể là thuật ngữ , vì đó là về dòng mà chúng ta gọi một cái gì đó là "mã công cụ" so với "mã trò chơi"?
DMGregory

Câu trả lời:


24

Đừng để bị cuốn theo khái niệm "công cụ trò chơi". Mặc dù sự thật là các studio trò chơi thường có một số loại công cụ trò chơi mà họ tạo ra để tăng tốc quá trình sản xuất trò chơi, nhiều nhà phát triển độc lập đã cố gắng tạo ra một công cụ trò chơi mà họ không bao giờ thực sự tạo ra thứ gì đó hoạt động.

Một công cụ trò chơi có thể là bất cứ điều gì bạn muốn nó được. Nếu bạn thấy đủ điểm chung giữa các trò chơi của mình thì bạn có thể phân lớp một Enginelớp như ví dụ của bạn, điều đó tốt. Nếu một "công cụ" thực sự chỉ là một thư viện nhỏ các chức năng mà bạn thấy tiện dụng trong các trò chơi trước đây bạn đã phát triển, thì điều đó cũng thật tuyệt. Dù nó có ý nghĩa gì với bạn, khái niệm "công cụ" chỉ là mã có thể tái sử dụng để giúp bạn tạo ra nhiều trò chơi hơn.

Nếu bạn đang cố gắng tạo một trò chơi, đừng tập trung vào việc tạo ra một công cụ. Làm một trò chơi. Khi trò chơi đã hoàn tất và bạn đã sẵn sàng để tạo trò chơi thứ hai, hãy bắt đầu tạo trò chơi thứ hai và bạn sẽ tìm thấy các bit mà bạn đã thực hiện trong trò chơi đầu tiên của mình; sau đó bạn có thể trích xuất các bit đó vào thư viện hoặc công cụ để chia sẻ giữa hai trò chơi. Đó là cách một động cơ nên được thực hiện. Đây thường không phải là thứ mà bạn quyết định viết trước khi tạo trò chơi, bởi vì bạn sẽ kết thúc với hàng tấn mã chưa được kiểm tra và về cơ bản bạn đang viết những thứ trước khi bạn biết bạn cần chúng (do đó bạn thậm chí không cần chúng). Điều này giống như tối ưu hóa sớm, nhưng tồi tệ hơn.

Vì vậy, để trả lời trực tiếp câu hỏi của bạn, về cơ bản, công cụ trò chơi là một "thứ" có thể tái sử dụng (thư viện, công cụ, khung) mà một studio trò chơi sử dụng để hỗ trợ nhanh chóng sản xuất trò chơi và họ thường tạo ra nó với các trò chơi cụ thể hoặc sau khi đã tạo một số trò chơi, trích xuất các bit tương tự và đúc chúng thành một công cụ mà chúng biết có thể được sử dụng trong các trò chơi trong tương lai. Nó gần như không bao giờ được tạo mà không cần xem lại (hai hoặc nhiều trò chơi đã được tạo) hoặc lập kế hoạch TUYỆT VỜI.


3
+1: Nhận một cái gì đó cụ thể trước khi bạn bắt đầu nghĩ về mã có thể tái sử dụng. Thông thường mã hack cùng nhau sẽ giúp bạn thấy những gì có thể tốt hơn (và dẫn đến mã có thể tái sử dụng nhiều hơn).
Michael Coleman

7

về cơ bản tôi không rõ nơi mã trò chơi phù hợp với công cụ.

Đừng lo lắng: Tôi đã làm việc chuyên nghiệp trên các trò chơi mà tất cả chúng tôi đều có chút bối rối về việc mã trò chơi phù hợp với công cụ nào. ;)

Tôi thấy mình nói điều này rất nhiều trong phát triển trò chơi, nhưng không có hệ thống hoặc định nghĩa chuẩn cho việc này. Một số công cụ (thường dành cho các trò chơi khá đơn giản) cho phép bạn tạo các trò chơi mới mà không cần viết thêm bất kỳ mã nào cả. Các công cụ khác về cơ bản là bộ xương của một trò chơi hiện có và bạn phải thay đổi mã tại chỗ để thêm các tính năng của mình. Một số giống như ví dụ của bạn và là tập hợp các lớp mà bạn có thể phân lớp hoặc tổng hợp vào hệ thống của riêng bạn. Những người khác giống như các thư viện mã mà bạn thêm vào ứng dụng của riêng mình và sử dụng khi cần thiết. Điểm chung duy nhất họ có là động cơ là một phần của hệ thống phù hợp (hoặc tuyên bố là phù hợp!) Cho nhiều trò chơi.


3

Tôi chắc chắn có những trường hợp mọi người đã làm như bạn ở trên, nhưng cá nhân tôi luôn ưu tiên các công cụ như một bộ sưu tập các thư viện, với các bit bạn có thể lấy khi cần. Điều đó cuối cùng sẽ cho phép bạn linh hoạt hơn trong việc lựa chọn trao đổi các thành phần khác nhau dựa trên sự phù hợp của chúng với một loại trò chơi cụ thể (ví dụ: bạn có thể chọn thư viện vật lý 2D hoặc 3D hoặc trình kết xuất tùy thuộc vào loại trò chơi) mà không cần phải có tất cả các lựa chọn thay thế khác trong bộ nhớ hoặc bạn có thể chọn giữa một kết xuất dựa trên DX9 / DX11 / vv).


1
Đây không phải là mâu thuẫn với câu trả lời tốt nhất. Khi bạn tạo trò chơi số 2, bạn sẽ bắt đầu thấy mã trùng lặp để kéo vào thư viện. Tôi ủng hộ các thư viện của bên thứ ba bất cứ khi nào có thể (tiết kiệm thời gian làm việc)
tro999
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.