Membuat game sebagai tutorial? [Tutup]

19

Saya bertanggung jawab atas klub pengembangan game di sekolah saya dan saya ingin mengerjakan proyek musim panas ini yang dapat saya gunakan sebagai tutorial semester depan. Saya belum pernah melakukan hal seperti ini jadi saya bertanya-tanya apakah ada yang punya garis panduan atau ide.

Yang ingin saya lakukan pada dasarnya adalah membuat game yang sangat sederhana. Sesuatu seperti penembak top-down di mana musuh datang terburu-buru agar Anda membunuh mereka dan mengambil beberapa jarahan. Namun, saya ingin semuanya mudah dimodifikasi. Orang-orang di klub memiliki sedikit pengalaman pengembangan game, jadi jika saya dapat mengatur game saya sedemikian rupa sehingga orang dapat memodifikasi dan menambahkan fungsionalitas dengan mudah, itu akan bagus untuk mereka.

Hal-hal seperti memiliki kelas musuh di mana perilakunya mudah dimainkan, atau membuat senjata menembak secara berbeda / menambahkan senjata baru, dan menjarah baru. Bahkan menambahkan elemen baru ke dalam game. Apa yang akan menjadi cara terbaik untuk membangun game untuk memungkinkan kelenturan seperti ini?

Benixo
sumber
1
Lihatlah jawaban ini di atas pada Stack Overflow.
Andrew Russell

Jawaban:

16

Cara tradisional untuk mencapai tujuan ini dalam pengembangan game adalah menggunakan arsitektur berbasis data untuk sistem game.

Pada intinya, ini berarti bahwa kode tidak menerapkan jenis senjata tertentu (senjata) dengan nilai yang ditentukan secara eksplisit untuk jangkauan / kerusakan / penetrasi melainkan mengisi konsep generik dari senjata jarak jauh (jangkauan / kerusakan / penetrasi ...) dari sumber data eksternal (ke kode). Sumber eksternal ini dapat bervariasi dari file parse-mampu (mungkin XML) membaca dari disk, ke file biner atau elemen database yang dihasilkan melalui alat internal atau eksternal ke mesin permainan itu sendiri.

Mendefinisikan sesuatu seperti musuh, sistem AI mungkin dirancang untuk mendukung sejumlah perilaku generik (agresif, defensif, dukungan, pengecut) yang kemudian diubah oleh elemen berbasis data.

Musuh Baru saya, dimulai dengan perilaku AI pangkalan yang agresif dengan nilai-nilai yang digerakkan oleh data untuk: -memutuskan pemain> level saya + X -mengejar pemain hingga unit X di luar titik spawn -mengungsi saat kesehatan <X-prioritas kemampuan terentang-prioritas kemampuan jarak jauh (untuk saat pemain terlalu dekat)

Skema penggerak data yang lebih rumit mungkin memungkinkan definisi titik data tertentu (peristiwa) di mana keadaan AI transisi (mesin keadaan terbatas) ke keadaan lain (atau bahkan peluang untuk beralih ke salah satu dari N negara lain) yang memungkinkan pengguna Anda untuk menentukan hierarki perilaku yang rumit.

Semua ini tentu saja lebih berfungsi daripada sekadar mengkode perilaku secara eksplisit, tetapi merupakan tantangan yang menyenangkan untuk memungkinkan pengguna menghasilkan konten tanpa modifikasi sumber.

Ada poin bonus yang ingin dicapai:

  • jika Anda dapat memperbarui data secara dinamis dan memiliki perubahan yang tercermin dalam mesin gim tanpa memulai ulang aplikasi
  • jika Anda membuat UI yang ramah pengguna atas data yang memungkinkan pengguna menggunakan antarmuka untuk berinteraksi dengan data daripada langsung mengedit file teks (xml, atau apa pun)

Untuk game tutorial yang ditargetkan sebagai kerumunan yang lebih teknis, sebagian besar pekerjaannya adalah dalam kelas / objek yang dirancang yang mengekspos antarmuka yang bersih bagi pengguna untuk memperluas yang pada gilirannya juga mungkin didorong oleh data.

Christopher Larsen
sumber
Jawaban bagus! +1
AttackingHobo
Terima kasih atas masukan Anda :)! Apakah Anda tahu ada situs yang menunjukkan kepada saya bagaimana menerapkan kode semacam ini? Saya tidak pernah melakukan game dengan sumber eksternal seperti itu. Meskipun saya benar-benar ingin mereka membuat kode dalam XNA di klub, jadi saya mungkin akan melakukan sesuatu yang lebih sesuai dengan kelas dan objek yang bisa mereka warisi dengan mudah di kelas mereka sendiri. Tapi saya pasti akan melihat ini,
Benixo
Cara yang bagus untuk melakukan ini memerlukan parser konfigurasi Anda sendiri, untuk memungkinkan struktur didorong data yang sangat sederhana untuk dimuat. Pada dasarnya kunci untuk tutorial apa pun, adalah mengajar dalam potongan, jadi abstraksi adalah kunci mutlak. Latihan yang bagus kemudian bisa, merancang GUI sederhana yang memungkinkan pengguna untuk mendefinisikan dan membuat jenis senjata baru.
decaviatedcaviar
Aspek-aspek yang didorong data yang paling umum dalam game adalah level. Bahkan jika yang lainnya adalah kode-keras, desain level (mis. Di mana pemandangan ditempatkan, di mana musuh ditempatkan, dll.) Hampir selalu didefinisikan dalam file data yang dimuat game. Poin bonus keduanya menjelaskan alat pengeditan level.
jhocking
Proses penulisan / membaca objek ke / dari disk dikenal sebagai "de- / serialisasi". Anda mungkin menemukan beberapa tutorial bermanfaat di bawah istilah itu.
Exilyth
1

Jika Anda mencari beberapa ide tentang bagaimana memulai proyek Anda dan membangunnya langkah demi langkah sehingga dapat dikonversi menjadi tutorial, lihatlah XNA Game Programming Adventures . Penulis memiliki beberapa tutorial yang diatur, dengan penjelasan dan kode sumber yang meningkatkan langkah demi langkah.

Bart
sumber
0

Saya sarankan melihat tutorial Java Game Development di www.thenewboston.com

Ini mungkin bukan apa yang Anda cari dalam hal dudes dengan senjata dan semua jazz itu, tapi itu memberikan rincian langkah demi langkah yang bagus dari sejumlah faktor kunci dalam pengembangan game. Presenter "Bucky" juga memiliki gaya mengajar yang santai dan menyenangkan. Nikmati.

Jonny
sumber