Sistem objek game berbasis komponen dalam praktiknya [ditutup]

43

Mari kita lihat sejarah kesuksesan. Game populer apa (dan mesin game) yang dibuat menggunakan sistem objek game berbasis komponen ? Setiap jawaban harus mengandung:

  1. Judul Game (satu per jawaban)
  2. Penulis / Perusahaan
  3. Tahun
  4. Waktu pengembangan (opsional)
  5. Tautan ke postmortem (opsional)
  6. Tautan ke dokumen / kode sumber (opsional)
topright
sumber
7
-1, hampir setiap permainan yang ditulis dalam dekade terakhir akan menggunakan sistem komponen di suatu tempat, dan tidak menggunakan sistem komponen di tempat lain yang bisa dimilikinya.
5
Anda salah. Banyak mesin masih menggunakan hierarki statis. Dan sangat menarik untuk mengumpulkan dan membaca dokumen / cuplikan kode / cuplikan game dan mesin yang benar-benar menggunakan sistem komponen.
topright
4
Saya tidak mengatakan mesin tidak menggunakan hierarki statis. Saya bilang Anda akan kesulitan menemukan mesin yang hanya menggunakan hierarki statis, sama seperti Anda akan ditekan untuk menemukan mesin yang hanya menggunakan komponen.
2
Anda salah. Entitas game (jantung logika game), efek visual, mesin game, dan infrastruktur editor baik berbasis komponen atau tidak.
topright
2
@ topright: Terlepas dari apakah Joe itu benar atau salah, memulai komentar Anda dua kali berturut-turut dengan kata-kata 'Kamu salah' yang polos dan pribadi tidak terlalu bijaksana, bukankah menurut Anda juga demikian? Saya yakin komentar Anda tidak akan ketinggalan informasi yang relevan tanpa ketiga kata kecil itu, tetapi mengabaikannya akan memberikan kontribusi yang jauh lebih besar untuk percakapan yang baik dan sopan. Silakan pertimbangkan ini :)
Michael Klement

Jawaban:

19

Pengepungan Penjara Bawah Tanah oleh Game Bertenaga Gas

Scott Bilas merilis banyak informasi tentang Dungeon Siege yang menampilkan sistem berbasis komponen, antara lain.

Dungeon Siege dirilis pada tahun 2002.

DrDeth
sumber
Wow, tautan yang bagus. Pembicaraannya tentang sistem komponen benar-benar membantu saya untuk lebih memahami implementasi sistem berbasis komponen. Pembicaraan yang rapi tentang bagaimana dunia berkesinambungan dilakukan di DS juga. Saya bertanya-tanya apakah teknik serupa masih digunakan di game dunia besar lainnya. Saya pikir sebagian besar cenderung menggunakan sesuatu yang lebih mirip dengan daerah atau bongkahan (Minecraft, apa pun oleh Bethesda).
CodexArcanum
19

Perlawanan 1-2 (mungkin 3) (2006-2008) oleh Insomniac Games

Terrance Cohen mendaftarkan game ini dalam bukunya A Dynamic Component Architecture untuk pembicaraan Gameplay Kinerja Tinggi dari GDC Canada 2010.

Tidak yakin apakah ini diterapkan pada game Ratchet & Clank terbaru.

Chris Waters
sumber
Apakah Anda tahu jika audio untuk presentasi itu ada di belakang paywall GDC Vault? Slide-slide itu sendiri cukup keren tetapi ada beberapa pertanyaan yang saya curigai terjawab dalam presentasi.
Saya tidak tahu tentang presentasi ini, terima kasih banyak!
topright
13

Unity3D menggunakan sistem berbasis komponen secara default. Ini luar biasa untuk membuat entitas game dari file teks dan injeksi ketergantungan.

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


}

Komponen-komponen itu bisa terlihat seperti ini

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
    }
}
Extrakun
sumber
8
  1. Pencuri: Proyek Gelap
  2. Cermin
  3. 1996 - 1998
  4. 2-tahun
  5. Postmortem
pentaphobe
sumber
8

Tony Hawk Pro Skater 3
Pengembang: Neversoft
Tahun: 2001
Waktu: Sekitar dua tahun
Post Mortem: Evolve Your Hierarchy (mungkin artikel berbasis komponen yang paling terhubung)

pek
sumber
1

Setahu saya proyek terbaik yang saya lihat adalah Burger Engine. jst mengunduh kode dan memeriksa seberapa baik mereka telah diimplementasikan. Semuanya adalah data-driven dari xml dan mereka menggunakan arsitektur berbasis entitas yang sangat baik. layak melihatnya.

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

Ayyappa
sumber
2
-1, kode itu terlihat sangat amatir, dari kesalahan ejaan "Abstrak" hingga penghitungan tipe komponen statis, sejumlah besar fungsi virtual, dimasukkannya 28 byte data posisi pada setiap komponen ... Jika ini yang terbaik yang Anda miliki terlihat, lihat di tempat lain.
sedih bahwa Anda tidak menyukainya. Seluruh kode adalah data didorong dan saya tidak menemukan implementasi open source yang akan menyelesaikan tugas ini dengan mudah ini. Jika Anda memiliki tautan ke kode yang baik, silakan kirim tautan. Dan datang untuk salah mengeja, fungsi virtual - Ini adalah sumber yang bagus untuk orang-orang yang baru ke 'arsitektur berbasis komponen'. Ini melayani tujuan memberikan intro yang berharga tentang bagaimana desain berbasis data bekerja dalam prakteknya.
Ayyappa
2
Entah tentang kode, tetapi menunjukkan kesalahan ejaan adalah argumen yang tidak valid, mengingat ada banyak programmer dari negara-negara yang tidak berbahasa Inggris juga.
Rajavanya Subramaniyan