Sự khác biệt giữa thư viện và động cơ là gì?


31

Tôi đang làm việc trên một thư viện để giúp phát triển trò chơi 2D với Scala. Cho đến nay, nó là một tập hợp các lớp hữu ích, tải tệp, phát hiện va chạm, hình ảnh, họa tiết, v.v.

Vì vậy, khi nào nó ngừng là một thư viện lớp và bắt đầu là một công cụ? Đâu là sự khác biệt chính xác giữa khung hữu ích và công cụ trò chơi?


Tôi muốn nói rằng sự phân tâm không thể được thực hiện, bởi vì chúng là khái niệm ở một mức độ trừu tượng khác nhau. Một động cơ "lớn" vẫn là một khung.
André Paramés

1
Có ít sự khác biệt giữa một công cụ trò chơi và một khung, nhưng từ tiêu đề, giữa một thư viện và công cụ, có một sự khác biệt rất lớn và được xác định rõ ràng. Liên kết này tổng hợp lại: gamefromscratch.com/post/2015/06/13/ từ
Serapth

Câu trả lời:


21

Tôi nghĩ rằng sự nhầm lẫn mà mọi người mắc phải ở đây là người này thường được tạo thành từ người kia, vì vậy điều mọi người thực sự muốn biết là khi bạn có đủ người này để được coi là người khác.

Vì vậy, khi nào nó ngừng là một thư viện lớp và bắt đầu là một công cụ?

Không bao giờ.

Đâu là sự khác biệt chính xác trong một khuôn khổ hữu ích và một công cụ trò chơi?

Chẳng có ai.

Bây giờ hãy để tôi giải thích các câu trả lời. Một công cụ trò chơi được tạo thành từ các thư viện lớp. Chúng không ngừng là thư viện lớp đơn giản vì chúng nằm trong một công cụ trò chơi. Thư viện là một khung hữu ích để giải quyết một nhu cầu cụ thể trong công cụ trò chơi. Một khung đòi hỏi nhu cầu cho một trò chơi hoàn chỉnh là một công cụ trò chơi.

Dưới đây là một số ví dụ về công cụ trò chơi:

  • Động cơ không thật
  • Động cơ thực tế
  • Công cụ nguồn
  • Động cơ Quake
  • Động cơ đoàn kết

Và một số ví dụ về thư viện

  • Novodex (Vật lý)
  • FMOD (Âm thanh)
  • Havok (Vật lý)
  • Ogre3D (Kết xuất)
  • BINK (Thư viện video)
  • Direct3D (Đồ họa)
  • OpenGL (Đồ họa)
  • DirectSound (Âm thanh)
  • XInput (Đầu vào)

Hi vọng điêu nay co ich


1
Còn sự khác biệt giữa công cụ kết xuất và thư viện đồ họa thì sao? : p
Zaky Đức

1
@Zaky German - Ogre3D là một 'công cụ' đồ họa như FMOD là một 'công cụ' âm thanh. Tuy nhiên, riêng biệt đây không phải là một công cụ Trò chơi, chúng không xử lý đầu vào của người dùng, kết nối mạng hoặc tương tự. Đây là nơi tôi nghĩ rằng một số nhầm lẫn có thể đi vào chơi. Trong ý nghĩa này, bạn có thể trao đổi Thư viện, Mô-đun, Thành phần hoặc Động cơ. Đây không phải là một 'Game Engine'. Một thư viện đồ họa sẽ giống với Direct3D hoặc API mỏng so với Direct3D để làm cho nó dễ dàng hơn, nhưng nó sẽ không trực tiếp thực hiện kết xuất. OpenGL và các trình bao bọc xung quanh nó cũng sẽ rơi vào khu vực thư viện đồ họa.
James

14

Thực sự không có định nghĩa cụ thể cho một trong hai thuật ngữ (hoặc cho cụm từ "khung", cho vấn đề đó). Có hàng trăm cách khác nhau để diễn giải sự khác biệt tinh tế khác nhau trong các gói phần mềm và gán chúng phân loại.

Cá nhân tôi xem "thư viện" là một thứ cung cấp một bộ chức năng tương đối nhỏ và có định hướng, trong khi một "khung" cung cấp nhiều chức năng hơn hoặc rộng hơn và một "công cụ" cung cấp cùng (hoặc hơn) và thường có một bộ công cụ liên quan đi kèm với nó.

Tôi đã thấy đủ các cách giải thích cá nhân của những người khác về cùng một thuật ngữ để cảm thấy an toàn khi đề xuất rằng một "công cụ" cung cấp nhiều chức năng, hoặc cấp độ cao hơn so với một "thư viện" thông thường ... nhưng nơi bạn vẽ dòng đó cho phần mềm của riêng bạn là tùy thuộc vào bạn.


Có một sự khác biệt cụ thể giữa một khung và các thư viện khác; những thứ này được liệt kê trong trang Wiki trước đây. Một cách ngắn gọn, khung điều khiển luồng ứng dụng và bạn cắm mã của mình vào đó; trong các thư viện khác, bạn điều khiển luồng và gọi mã của nó.
André Paramés

1
Tôi sẽ không xem xét điều đó dứt khoát; Wikipedia cũng có một trang dành cho "công cụ trò chơi" và giống như "thư viện" và "khung", những thuật ngữ đó được sử dụng thường xuyên theo cách phù hợp với mô tả trên trang wiki như trong những cách không, theo cách của tôi kinh nghiệm. Tất cả vẫn rất gợn sóng.
Josh

2

Đây là một câu hỏi khó, vì ranh giới giữa thư viện và động cơ đôi khi có thể là một câu hỏi rất mỏng, mờ. Tôi phải nói rằng điểm mà thư viện biến thành động cơ là khi nó hướng đến một trò chơi cụ thể hoặc một loại trò chơi cụ thể.

Ví dụ: công cụ Unreal (hoặc Nguồn hoặc Quake) được thiết kế để sử dụng cho các trò chơi FPS (nó có thể được sử dụng cho các trò chơi khác, nhưng bạn sẽ dành thời gian làm việc với công cụ này). Có thể sử dụng Ogre3d (hoặc thậm chí Directx, SDL hoặc các thư viện phổ biến khác) để tạo bất kỳ loại trò chơi nào mà không cần phải lấy ra các phần chính của mã hoặc làm việc xung quanh chúng.

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.