Pertanyaan Struktur Dunia Permainan dalam kelas [tertutup]


Saya mengembangkan permainan 2D di Jawa dan saya ingin beberapa skrip ingame dasar (spawn enemy, spawn item, mengubah properti musuh).

Yang tidak saya ketahui adalah bagaimana membagi dunia game sehingga saya dapat dengan mudah bekerja dengannya.

Saya membutuhkan musuh (dengan kesehatan dan AI dasar) dari berbagai jenis, kelas barang (dapat dipilih oleh pemain), peta ubin dengan blok yang berbeda.

Bagaimana saya bisa mengatur arsitektur dunia game saya? dan Kelas dasar apa yang harus saya gunakan untuk memperluas dan memelihara Game World dengan mudah?


4
2018-04-27 15:52


asal


Jawaban:


dasar-dasar permainan dunia bagi saya adalah tentang menemukan alasan umum.

dunia maju tepat waktu. begitu juga semua elemen aktif (pemain, menjatuhkan item, musuh, npc's) tetapi semua elemen pasif tidak (blok batu, pohon, rumah) untuk itu saya akan menggunakan 2 antarmuka ActiveElement dan PasifElement. elemen aktif bisa memiliki fungsi stepintime () yang disebut oleh dunia gim setiap kali langkah itu sendiri dalam waktu. kedua elemen bisa memiliki render () fungsi yang menggambar elemen kapan pun gameworld digambar di kanvas.

maka semua musuh harus memanggil ai mereka untuk menentukan langkah berikutnya dalam waktu serta memeriksa tabrakan dengan objek lain dan apa pun artinya itu (pohon-pohon peluru pemain dll) pada dasarnya sama untuk setiap elemen lainnya.

ini bagi saya arsitektur paling dasar di gameworld.

kemudian ada masalah kinerja di mana mungkin lebih baik untuk menempatkan hal-hal tertentu di thread mereka sendiri dan biarkan mereka berjalan (musuh ai yang memeriksa posisi dan status avatarnya setiap siklus dan membuat input yang dibaca dengan setiap langkah dalam waktu) tetapi saya tidak memiliki cukup pengalaman untuk menguraikannya. maka Anda harus pergi ke situs gamedev (misalnya seperti kata karim79).

elemen yang diimplementasikan dapat memiliki atribut sendiri dan mudah diperluas (kesehatan, statistik) dan tulis juru bahasa yang membaca skrip-skrip simpel yang berkomunikasi dengan gameworld menambahkan musuh dll.

ciao


3
2018-04-27 17:52



Saya biasanya memiliki tata letak yang mirip dengan ini.

GameObject memiliki fungsi seperti Draw() dan Move(). Kemudian Enemy menetapkan beberapa fungsi dan variabel untuk mengimplementasikan Kecerdasan Buatan pada Goblin dan Unicorn. Player berisi semua barang untuk memindahkan pemain Move().

Itu hanya gagasan umum tentang apa yang akan saya lakukan. Ini berbeda untuk setiap gim, tergantung pada jenis gim dan bagaimana Anda memainkannya.


0
2018-04-27 18:06