Hệ thống đối tượng trò chơi dựa trên thành phần trong thực tế [đóng]


43

Hãy xem lịch sử thành công. Những trò chơi phổ biến (và công cụ trò chơi) nào được xây dựng bằng hệ thống đối tượng trò chơi dựa trên thành phần ? Mỗi câu trả lời nên chứa:

  1. Tiêu đề trò chơi (mỗi câu trả lời)
  2. Tác giả / Công ty
  3. Năm
  4. Thời gian phát triển (không bắt buộc)
  5. Liên kết đến postmortem (tùy chọn)
  6. Liên kết đến tài liệu / mã nguồn (tùy chọn)

7
-1, gần như mọi trò chơi được viết trong thập kỷ qua sẽ sử dụng một hệ thống thành phần ở đâu đó và không sử dụng hệ thống thành phần ở nơi nào khác mà nó có thể có.

5
Bạn sai rồi. Nhiều động cơ vẫn sử dụng hệ thống phân cấp tĩnh. Và thật thú vị khi thu thập và đọc các tài liệu / postmortems / đoạn mã của các trò chơi và công cụ thực sự sử dụng các hệ thống thành phần.
topright

4
Tôi không nói rằng động cơ không sử dụng hệ thống phân cấp tĩnh. Tôi đã nói rằng bạn khó có thể tìm thấy một công cụ chỉ sử dụng hệ thống phân cấp tĩnh, giống như bạn bị ép để tìm một công cụ chỉ sử dụng các thành phần.

2
Bạn sai rồi. Các thực thể trò chơi (trái tim của logic trò chơi), hiệu ứng hình ảnh, công cụ trò chơi và cơ sở hạ tầng biên tập hoặc là dựa trên thành phần hoặc không.
topright

2
@topright: Bất kể Joe đúng hay sai, bắt đầu bình luận của bạn hai lần liên tiếp với một câu nói đơn giản và cá nhân 'Bạn sai' không phải là rất khéo léo, bạn cũng nghĩ vậy sao? Tôi cá rằng ý kiến ​​của bạn sẽ không bỏ lỡ bất kỳ thông tin liên quan nào nếu không có ba từ nhỏ đó, nhưng bỏ qua chúng sẽ đóng góp rất nhiều cho một cuộc trò chuyện hay và lịch sự. Vui lòng xem xét điều này :)
Michael Klement

Câu trả lời:


19

Dungeon Siege bởi Gas Powered Games

Scott Bilas đã công bố rất nhiều thông tin về Dungeon Siege, trong đó có các hệ thống dựa trên thành phần, trong số những thứ khác.

Dungeon Siege được phát hành vào năm 2002.


Wow, liên kết tuyệt vời. Bài nói chuyện của ông về các hệ thống thành phần thực sự giúp tôi hiểu rõ hơn về việc triển khai các hệ thống dựa trên thành phần. Nói gọn về cách thế giới liên tục được thực hiện trong DS là tốt. Tôi tự hỏi nếu các kỹ thuật tương tự vẫn còn được sử dụng trong các trò chơi thế giới lớn khác. Tôi nghĩ rằng hầu hết có xu hướng sử dụng một cái gì đó gần giống với các vùng hoặc khối (Minecraft, bất cứ thứ gì của Bethesda).
CodexArcanum

19

Kháng 1-2 (có thể 3) (2006-2008) bởi Insomniac Games

Terrance Cohen liệt kê các trò chơi này trong bài nói chuyện về Kiến trúc thành phần năng động cho trò chơi hiệu suất cao từ GDC Canada 2010.

Không chắc chắn nếu điều này được áp dụng cho các trò chơi Ratchet & Clank gần đây.


Bạn có biết âm thanh cho bản trình bày đó có nằm sau paywall GDC Vault không? Các slide một mình là khá mát mẻ nhưng có một vài câu hỏi mà tôi nghi ngờ được trả lời trong bài trình bày.

Tôi không biết về bài thuyết trình này, cảm ơn bạn rất nhiều!
topright

13

Unity3D sử dụng một hệ thống dựa trên thành phần theo mặc định. Nó là tuyệt vời để tạo các thực thể trò chơi từ một tệp văn bản và tiêm phụ thuộc.

function createEnemy() {

   // extract AI type for enemy
   // definition is a custom structure holding parameters to create the enemy
   var aitypename = definition.ai;

   // AIType can be an interface or abstract class
   // you can create a component from a string or from a type
   var ai : AIType = this.gameObject.AddComponent(aitypename);
   ai.setup(definition.ai_settings);

   // set rule for enemy when it is destroyed
   this.gameObject.AddComponent(definition.when_destoryed); 


}

Những thành phần đó có thể trông như thế này

class AI_Scout extends AIType
{
  // called per update-frame on the game-object with this script
  public function Update() {
    // run Scout AI here
   }
}


class Spawn_Ammo_On_Destroyed extends When_Destroyed
{
   // automatically called by the engine when the game object this script is attached to is
   // destroyed
   public function OnDestroyed() {
    // spawn ammo
    }
}


8

Tony Hawk Pro Skater 3
Nhà phát triển: Neversoft
Năm: 2001
Thời gian: Khoảng hai năm
Post Mortem: Evolve Your HVELy (có lẽ là bài viết dựa trên thành phần được liên kết nhiều nhất)


1

Theo hiểu biết của tôi, dự án tốt nhất tôi đã thấy là Burger Engine. jst tải xuống mã và kiểm tra xem họ đã triển khai tốt như thế nào. Toàn bộ mọi thứ được điều khiển dữ liệu từ xml và họ đã sử dụng kiến ​​trúc dựa trên thực thể rất tốt. đáng để xem xét.

http://code.google.com.vn/p/burger-engine/source/browse/


2
-1, mã đó trông rất nghiệp dư, từ lỗi chính tả của "Trừu tượng" đến kiểu liệt kê thành phần tĩnh, số lượng lớn các hàm ảo, bao gồm 28 byte dữ liệu vị trí trên mỗi thành phần ... Nếu đây là thứ tốt nhất bạn có nhìn thấy, nhìn đi chỗ khác

thật buồn khi bạn không thích nó. Toàn bộ mã được điều khiển dữ liệu và tôi không tìm thấy bất kỳ triển khai nguồn mở nào sẽ hoàn thành nhiệm vụ này dễ dàng như vậy. Nếu bạn có bất kỳ liên kết nào đến mã tốt, vui lòng đăng các liên kết. viết sai chính tả, func ảo - Đó là một tài nguyên tốt cho những người mới tham gia vào 'kiến trúc dựa trên thành phần'. Nó phục vụ mục đích đưa ra phần giới thiệu có giá trị về cách thiết kế dựa trên dữ liệu hoạt động trong thực tế.
Ayyappa

2
Dunno về mã, nhưng chỉ ra lỗi chính tả là một đối số không hợp lệ, vì có rất nhiều lập trình viên từ các quốc gia không nói tiếng Anh.
Rajavanya Subramaniyan
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.