ในทางปฏิบัติระบบวัตถุของเกมที่ใช้ชิ้นส่วน [ปิด]


43

เรามาดูประวัติความสำเร็จกันดีกว่า เกมยอดนิยมใดบ้าง(และเอ็นจิ้นเกม) ที่สร้างขึ้นโดยใช้ระบบเกมแบบอิงองค์ประกอบ แต่ละคำตอบควรมี:

  1. ชื่อเกม (หนึ่งคำตอบต่อ)
  2. ผู้แต่ง / บริษัท
  3. ปี
  4. เวลาในการพัฒนา (ไม่จำเป็น)
  5. ลิงก์ไปที่ไปรษณีย์หลังศพ (ตัวเลือก)
  6. ลิงก์ไปยังเอกสาร / ซอร์สโค้ด (ตัวเลือก)

7
-1 เกือบทุกเกมที่เขียนในทศวรรษที่ผ่านมาจะใช้ระบบส่วนประกอบบางแห่งและไม่ใช้ระบบประกอบที่อื่นที่เป็นไปได้

5
คุณผิด. เครื่องยนต์จำนวนมากยังคงใช้ลำดับชั้นคงที่ และเป็นที่น่าสนใจในการรวบรวมและอ่าน docs / postmortems / code snippet ของเกมและเอ็นจิ้นที่ใช้ระบบส่วนประกอบจริงๆ
topright

4
ฉันไม่ได้บอกว่าเครื่องมือไม่ได้ใช้ลำดับขั้นคงที่ ฉันบอกว่าคุณกดยากที่จะค้นหาเครื่องมือที่ใช้เฉพาะลำดับชั้นแบบคงที่เช่นเดียวกับที่คุณกดเพื่อค้นหาสิ่งเดียวโดยใช้ส่วนประกอบ

2
คุณผิด. เอนทิตีของเกม (หัวใจของเกมตรรกะ), วิชวลเอฟเฟกต์, เอ็นจิ้นเกมและโครงสร้างพื้นฐานของตัวแก้ไขนั้นเป็นไปตามส่วนประกอบหรือไม่
topright

2
@topright: ไม่ว่าโจจะถูกหรือผิดให้เริ่มต้นความคิดเห็นของคุณสองครั้งติดต่อกันด้วยความเรียบง่ายและเป็นส่วนตัวว่า 'คุณคิดผิด' ไม่ไหวพริบมากคุณไม่คิดอย่างนั้นเหรอ? ฉันพนันได้เลยว่าความคิดเห็นของคุณจะไม่พลาดข้อมูลที่เกี่ยวข้องหากไม่มีคำพูดเล็ก ๆ น้อย ๆ ทั้งสามคำ แต่การละเว้นความคิดเห็นเหล่านั้นจะช่วยให้มีการสนทนาที่ดีและสุภาพมากยิ่งขึ้น โปรดพิจารณาเรื่องนี้ :)
Michael Klement

คำตอบ:


19

Dungeon SiegeโดยGas Powered Games

Scott Bilasเปิดเผยข้อมูลมากมายเกี่ยวกับ Dungeon Siege ซึ่งเป็นจุดเด่นของระบบที่อิงองค์ประกอบ

Dungeon Siege เปิดตัวในปี 2545


ว้าวลิงค์ยอดเยี่ยม การพูดคุยเกี่ยวกับระบบส่วนประกอบของเขาช่วยให้ฉันเข้าใจการใช้งานระบบตามส่วนประกอบได้ดีขึ้น พูดคุยอย่างเรียบร้อยเกี่ยวกับวิธีการทำงานอย่างต่อเนื่องของโลกใน DS เช่นกัน ฉันสงสัยว่าเทคนิคที่คล้ายคลึงกันยังคงใช้งานอยู่ในเกมระดับโลกอื่น ๆ ฉันคิดว่าส่วนใหญ่มักจะใช้สิ่งที่คล้ายกับภูมิภาคหรือชิ้นส่วน (Minecraft ทุกอย่างโดย Bethesda)
CodexArcanum

19

การต่อต้าน 1-2 (อาจเป็น 3) (2006-2008) โดยInsomniac Games

Terrance Cohen แสดงรายการเกมเหล่านี้ในA Dynamic Component Architectureของเขาสำหรับการพูดเล่นเกมประสิทธิภาพสูงจาก GDC Canada 2010

ไม่แน่ใจว่าสิ่งนี้ถูกนำไปใช้กับเกม Ratchet & Clank ล่าสุดหรือไม่


คุณรู้หรือไม่ว่าเสียงสำหรับงานนำเสนอนั้นอยู่เบื้องหลัง GDC Vault paywall หรือไม่ สไลด์เพียงอย่างเดียวค่อนข้างเจ๋ง แต่มีคำถามสองสามข้อที่ฉันสงสัยว่าฉันได้รับคำตอบในงานนำเสนอ

ฉันไม่รู้เกี่ยวกับงานนำเสนอนี้ขอบคุณมาก!
topright

13

Unity3Dใช้ระบบที่ใช้องค์ประกอบเป็นค่าเริ่มต้น มันยอดเยี่ยมสำหรับการสร้างเอนทิตีเกมจากเท็กซ์ไฟล์และการเพิ่มการพึ่งพา

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); 


}

ส่วนประกอบเหล่านั้นอาจมีลักษณะเช่นนี้

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
    }
}



1

ตามความรู้ของฉันโครงการที่ดีที่สุดที่ฉันเคยเห็นคือ Burger Engine jst ดาวน์โหลดโค้ดและตรวจสอบว่าพวกเขาใช้งานได้ดีเพียงใดสิ่งทั้งหมดนั้นขับเคลื่อนด้วยข้อมูลจาก xml และพวกเขาใช้สถาปัตยกรรมที่อิงเอนทิตีเป็นอย่างดีมองไปที่มัน

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


2
-1 โค้ดนั้นดูไม่ชำนาญเลยจากการสะกดคำว่า "Abstract" ไปจนถึงการแจงนับประเภทส่วนประกอบแบบคงที่จำนวนมากของฟังก์ชั่นเสมือนจริงรวม 28 ไบต์ของข้อมูลตำแหน่งในแต่ละองค์ประกอบ ... หากเป็นสิ่งที่ดีที่สุดที่คุณมี เห็นแล้วมองไปที่อื่น

น่าเศร้าที่คุณไม่ชอบมันรหัสทั้งหมดเป็นข้อมูลขับเคลื่อนและฉันไม่พบการใช้งานโอเพนซอร์ซใด ๆ ซึ่งจะทำให้งานนี้สำเร็จได้อย่างง่ายดายหากคุณมีลิงค์ใด ๆ ไปยังโค้ดที่ดีกรุณาโพสต์ลิงก์ เพื่อการสะกดคำผิด, func เสมือน - เป็นทรัพยากรที่ดีสำหรับผู้ที่ยังใหม่กับ 'component based architecture' มันมีจุดประสงค์เพื่อให้คำแนะนำที่มีคุณค่าเกี่ยวกับวิธีการออกแบบที่ขับเคลื่อนด้วยข้อมูลในทางปฏิบัติ
Ayyappa

2
Dunno เกี่ยวกับรหัส แต่การชี้ให้เห็นข้อผิดพลาดในการสะกดเป็นอาร์กิวเมนต์ที่ไม่ถูกต้องเนื่องจากมีโปรแกรมเมอร์จำนวนมากจากประเทศที่ไม่ได้ใช้ภาษาอังกฤษเช่นกัน
Rajavanya Subramaniyan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.