Fitur mana yang dimiliki oleh mesin dan yang mana dari sebuah game?

19

Saat ini, saya menemukan diri saya menerapkan dan menguji fitur-fitur baru untuk mesin gim 2D saya, dengan secara langsung mengkodekannya ke dalam mesin. Secara bersamaan, saya memiliki game showcase dengan dukungan scripting, yang seharusnya memanggil fungsi mesin. Saya melampirkan mis gerakan ubin tetap ke kelas Entity di mesin, daripada scripting ini khusus untuk game. Ini jelas melanggar ide mesin umum yang digunakan untuk lebih dari satu game.

Adakah praktik terbaik untuk tetap fokus pada implementasi yang benar di bagian yang benar (yaitu engine vs game)?

Christian Ivicevic
sumber

Jawaban:

25

Ya ada beberapa cara untuk memikirkan hal ini. Pertama adalah membuat daftar fitur spesifik yang harus dimiliki mesin (apa yang sudah Anda tanyakan di sini.) Namun cara lain adalah mulai membuat game tanpa terlalu khawatir tentang "mesin", dan kemudian fitur yang Anda temukan digunakan kembali di antara banyak gim (khususnya, fitur yang digunakan di setiap gim) Anda harus bermigrasi dari sumber untuk gim tertentu ke basis kode bersama yang disebut "engine."

Karena pada akhirnya, mengapa Anda menginginkan fitur yang diberikan di mesin daripada di gim adalah karena fitur tersebut dibagikan di antara banyak gim. Biasanya itu adalah hal-hal seperti menggambar perintah, pengontrol masukan, dan kode jaringan. Mesin game 2D akan memiliki banyak fitur grafis 2D, seperti memuat gambar, hierarki tampilan dengan z-order, menangani spritesheets, tweening, dll. Banyak game membutuhkan simulasi fisika, meskipun di sisi lain banyak yang tidak. Sementara itu, lebih banyak hal "di balik tudung" yang digunakan di hampir setiap permainan termasuk penghitung waktu, pengiriman pesan acara, dan bahkan fungsi matematika yang spesifik untuk pengembangan game (mis. DistanceToTarget ()


Singkat cerita:

A) Mesin harus memiliki fitur yang dibagikan oleh sebagian besar game.

B) Anda belajar fitur mana yang dibagikan dengan membuat banyak permainan.

jhocking
sumber
7
+1 -just start making games without worrying too much about the "engine"
JCM
1
Yah just start making games without worrying too much about the "engine"jelas merupakan saran yang bagus.
Christian Ivicevic
3
Saya setuju dengan dua komentar di atas saya, tetapi komentar "hanya membuat game tanpa khawatir tentang mesin" telah dikeluarkan di luar konteks dan tidak ada gunanya tanpa sisanya: "dan kemudian fitur yang Anda temukan sedang digunakan kembali di antara beberapa game (khususnya , fitur yang digunakan dalam setiap game) Anda harus bermigrasi dari sumber untuk game tertentu ke basis kode bersama yang disebut "engine." Singkatnya, buat game sebanyak mungkin sehingga Anda mengetahui apa yang harus dilakukan di bawah mesin dan apa yang tidak boleh t.
2
Ini adalah ide bagus karena ini juga mencegah Anda dari mengimplementasikan fitur engine yang sebenarnya tidak Anda butuhkan di gim Anda.
Zachary Yates
2
+1 untuk menjaga semangat Aturan tiga .
Joshua Drake