Game atau mesin berbasis sumber terbuka?

15

Saya sudah membaca beberapa tentang desain game berbasis komponen tetapi saya masih mengalami kesulitan mencari tahu bagaimana tepatnya Anda akan mengimplementasikannya. Adakah contoh bagus game berbasis komponen atau mesin game yang bisa saya baca untuk merasakan lebih baik tentang ini?

oconnor0
sumber

Jawaban:

7

Secara pribadi saya tidak berpikir ada contoh yang baik , terutama karena definisi dari "sistem berbasis komponen" untuk permainan didefinisikan dengan sangat longgar sehingga bisa berarti apa-apa.

Anda mungkin menemukan beberapa diskusi dalam jawaban ini bermanfaat: Bagaimana menerapkan sistem berbasis komponen untuk item dalam gim web

Secara keseluruhan, pendekatan ini hanya untuk mengubah segala jenis GameObject atau Aktor dari kelas besar yang menangani semua perilaku menjadi kelas yang lebih sederhana yang menampung objek yang melakukan perilaku. Saya pikir mengerjakan sendiri ini dan membuat berbagai komponen yang sesuai dengan gim Anda akan sering menjadi cara terbaik untuk melanjutkan.

Kylotan
sumber
Saya dengar itu. Ketika mencoba menemukan sumber daya yang baik di atasnya, saya menemukan bahwa hampir setiap orang menggunakan terminologi yang berbeda untuk menggambarkan sesuatu. Membuatnya sulit untuk membandingkan implementasi yang berbeda ketika Anda menghabiskan separuh waktu menerjemahkan struktur dasar. Sistem Entitas, Sistem Komponen, Objek Game, Templat, Perakitan, Kumpulan Komponen, dll ...
Leniency
2

Berikut ini beberapa sumber yang mungkin Anda sukai:
Ada utas luar biasa ini . Ini bukan mesin gim itu sendiri, tetapi desain dan pembahasannya luar biasa.
Sebuah pertanyaan tentang StackOverflow pada topik yang sangat mirip.

Untuk menjawab pertanyaan asli, kerangka kerja Gajah di C # persis seperti yang Anda inginkan: kerangka itu sudah dihentikan, tetapi masih ada di sini untuk referensi implementasi.

Bebek Komunis
sumber
1

Situs ini mulai menjadi implementasi dasar.

Sebagian besar di atas terinspirasi oleh ini artikel di T = Machine

Saya mulai menerapkan dasar yang diilhami oleh dua tautan di atas. Saya cukup yakin saya telah banyak menyimpang dari teori murni sistem komponen, dan pasti ada bug, tetapi mungkin terbukti bermanfaat jika Anda mencari beberapa contoh sederhana.

Bricle (C # / XNA)

Sekarang ini hanya memuat beberapa entitas dasar, menangani beberapa peristiwa, dll. Lokasi utama yang Anda cari adalah folder Engine.EntitySystem dan mungkin PlayScreen tempat entitas sebenarnya dibuat.

Membuat toko komponen berbasis tipe sederhana dan menyembunyikannya di belakang EntityManager yang umum relatif lurus ke depan.

Tantangan pertama yang saya temui adalah ketika sistem individual mungkin memerlukan beberapa tipe komponen (yaitu, komponen Fisik dan InputMoveable). Untuk menggunakan bahasa basis data relasional, saya harus menemukan cara untuk melakukan query JOIN. Untuk itu, saya membuat tipe koleksi lain untuk entitas yang dibangun dari kueri tipe komponen yang cocok - setiap koleksi entitas menghubungkan ke acara OnEntityCreate dan memeriksa apakah cocok. Masih ada beberapa bug di sana.

Tantangan kedua sebenarnya adalah membuat 'objek permainan' - Saya menyebutnya templat. Di sini saya mungkin tidak terlalu murni menurut spesifikasi T = Machine, tetapi sepertinya berhasil. Templat kelompokkan bersama komponen komponen dan memungkinkan komposisi entitas yang lebih mudah (yaitu, Bola Dapat Digambar dan Fisik).

Semoga itu bermanfaat - sistem entitas / komponen dapat menjadi tantangan untuk melewati beberapa rintangan awal.

Kelonggaran
sumber
1

Satu lagi, saya belum pernah menggunakan, tetapi sedikit melihat kode, adalah Artemis . Komentarnya bagus dan cukup aktif. Awalnya kerangka Java tetapi telah porting ke C # / XNA.

Darren Reid
sumber