Apa perbedaan antara perpustakaan dan mesin?

31

Saya sedang mengerjakan perpustakaan untuk membantu pengembangan game 2D dengan Scala. Sejauh ini, ini adalah kumpulan kelas bermanfaat, pemuatan file, deteksi tabrakan, gambar, sprite, dll.

Jadi kapan itu berhenti menjadi perpustakaan kelas dan mulai menjadi mesin? Di mana tepatnya letak perbedaan antara kerangka kerja yang bermanfaat dan mesin game?

Lanbo
sumber
Saya akan mengatakan distrinya tidak dapat dibuat, karena mereka adalah konsep pada tingkat abstraksi yang berbeda. Mesin "besar" masih merupakan kerangka.
André Paramés
1
Ada sedikit perbedaan antara mesin permainan dan kerangka kerja, tetapi dari judul, antara perpustakaan dan mesin, ada perbedaan besar dan jelas. Tautan ini merangkumnya: gamefromscratch.com/post/2015/06/06/13/...
Serapth

Jawaban:

21

Saya pikir orang-orang kebingungan masuk ke sini adalah bahwa satu umumnya terdiri dari yang lain, jadi apa yang orang benar-benar ingin tahu adalah ketika Anda memiliki cukup satu untuk dipertimbangkan yang lain.

Jadi kapan itu berhenti menjadi perpustakaan kelas dan mulai menjadi mesin?

Tak pernah.

Di mana tepatnya letak perbedaan dalam kerangka kerja yang bermanfaat dan mesin game?

Tidak ada.

Sekarang izinkan saya menjelaskan jawabannya. Mesin permainan terdiri dari perpustakaan kelas. Mereka tidak berhenti menjadi perpustakaan kelas hanya karena mereka berada dalam mesin permainan. Perpustakaan adalah kerangka kerja yang berguna untuk menangani kebutuhan spesifik di dalam mesin game. Kerangka kerja yang mensyaratkan kebutuhan untuk permainan yang lengkap adalah mesin permainan.

Berikut beberapa contoh mesin gim:

  • Mesin Tidak Nyata
  • Mesin Realita
  • Mesin Sumber
  • Mesin Gempa
  • Mesin Unity

Dan beberapa contoh perpustakaan

  • Novodex (Fisika)
  • FMOD (Audio)
  • Havok (Fisika)
  • Ogre3D (Rendering)
  • BINK (Perpustakaan Video)
  • Direct3D (Grafik)
  • OpenGL (Grafik)
  • DirectSound (Audio)
  • XInput (Input)

Semoga ini membantu

James
sumber
1
Bagaimana dengan perbedaan antara mesin rendering dan perpustakaan grafis? : p
Zaky German
1
@ Zaky German - Ogre3D adalah 'mesin' grafis seperti FMOD adalah 'mesin' audio. Namun terpisah ini bukan mesin Game, mereka tidak menangani input pengguna, konektivitas jaringan atau sejenisnya misalnya. Di sinilah saya pikir beberapa kebingungan dapat terjadi. Dalam konotasi ini Anda dapat bertukar Perpustakaan, Modul, Komponen, atau Mesin. Ini bukan 'Mesin Game'. Pustaka grafis akan menjadi sesuatu yang mirip dengan Direct3D atau API tipis ke lebih dari Direct3D untuk membuatnya lebih mudah, tetapi tidak akan langsung melakukan rendering. OpenGL dan pembungkus di sekitarnya juga akan jatuh ke area perpustakaan grafis.
James
14

Tidak ada definisi konkret untuk istilah tersebut (atau untuk istilah "kerangka kerja" yang terkait). Ada ratusan cara berbeda untuk menafsirkan perbedaan yang halus dalam paket perangkat lunak dan menetapkannya klasifikasi.

Saya pribadi melihat "perpustakaan" sebagai hal yang menyediakan serangkaian fungsi yang relatif kecil dan terarah, sedangkan "kerangka kerja" menyediakan fungsionalitas yang lebih atau lebih luas, dan "mesin" menyediakan hal yang sama (atau lebih) dan biasanya memiliki seperangkat fungsi. alat terkait yang menyertainya.

Saya telah melihat cukup banyak interpretasi pribadi orang lain dari istilah yang sama sehingga merasa aman menyarankan bahwa "mesin" menyediakan fungsionalitas lebih banyak, atau lebih tinggi, daripada "perpustakaan" biasanya ... tetapi di mana Anda menarik garis itu untuk perangkat lunak Anda sendiri terserah anda.

Josh
sumber
Ada perbedaan nyata antara kerangka kerja dan perpustakaan lainnya; ini terdaftar di halaman Wiki dari yang sebelumnya. Singkatnya, kerangka kerja mengontrol aliran aplikasi, dan Anda memasukkan kode Anda ke dalamnya; di perpustakaan lain Anda mengontrol aliran dan memanggil kodenya.
André Paramés
1
Saya tidak akan mempertimbangkan itu definitif; Wikipedia memiliki halaman untuk "mesin permainan", juga, dan seperti "perpustakaan" dan "kerangka kerja," istilah-istilah itu sama seringnya dengan cara-cara yang sesuai dengan deskripsi pada halaman wiki seperti pada cara-cara yang tidak, pada saya pengalaman. Itu masih sangat bergelombang.
Josh
2

Ini adalah pertanyaan yang sulit, karena garis antara perpustakaan dan mesin kadang-kadang bisa menjadi sangat tipis, buram. Saya harus mengatakan bahwa titik di mana perpustakaan berubah menjadi mesin adalah ketika diarahkan untuk permainan tertentu, atau jenis permainan tertentu.

Sebagai contoh: mesin Unreal (atau Sumber, atau Gempa) dirancang untuk digunakan untuk game FPS (mungkin bisa digunakan untuk game lain, tetapi Anda akan menghabiskan waktu bekerja melawan mesin). Ogre3d (atau bahkan Directx, SDL, atau perpustakaan umum lainnya) dapat digunakan untuk membuat jenis permainan apa pun, tanpa harus merobek bagian utama kode, atau mengerjakannya.

thedaian
sumber