Saya hanya ingin tahu apa yang hilang dari XNA, untuk dianggap sebagai mesin game. Itu melakukan semua hal yang harus dilakukan mesin permainan (kecuali bagian fisika); itu juga memiliki dukungan untuk setiap aspek yang didefinisikan dalam artikel Wikipedia di mesin game .
Mengapa XNA tidak dianggap sebagai mesin game?
Jawaban:
Ini dirancang sebagai kerangka kerja - sebenarnya, XNA adalah Microsoft XNA Framework - jadi secara teknis itu bukan mesin dengan nama.
Tidak ada 'mesin' - jika Anda perhatikan, Anda mendapatkan kelas utama dari XNA.Framework.Game dan harus menimpa sendiri fungsi undian dan pembaruan. Tidak ada sistem render sentral, atau sistem input, atau sistem audio yang siap. Ada SpriteBatch dan kelas vertex, ada KeyboardState, dan ada beberapa kelas audio..tapi mereka hanya abstraksi atas kode gambar tingkat rendah.
EDIT: Demi kegunaan, mengapa ada masalah jika dilabeli sebagai engine, framework, library, atau toolset?
Untuk menjernihkan semuanya: Saya sedang mengembangkan mesin di XNA. Jelas saya tidak bisa melakukan itu dalam sesuatu seperti Unreal, seperti yang telah disebutkan Jonathan. Namun, ada beberapa hal yang saya rasa penting agar XNA tidak miliki:
Plug-n-play: Saya ingin bisa membuat semacam template - miliki HP ini, mesh ini, animasi ini dan BOOM! Saya memiliki NPC di game saya.
Tingkat rendah tersembunyi - XNA sudah melakukan ini, tapi saya tidak ingin bermain-main dengan GameServiceProviders. Saya hanya ingin mendorong barang bersama.
Game terpisah dari engine - Mungkin ada kelas 'game', tapi saya ingin memisahkan logika dan kode saya dari sistem basis. Saya tidak ingin
if(player.hasitem(Item.SECRET_SWORD_OF_SECRETNESS)
bercampur dengan memperbarui buffer pada renderer grafik saya.sumber
what makes an sdk to be called a GameEngine?
Kerangka kerja menyediakan arsitektur minimal yang dibangun untuk jenis aplikasi tertentu. Ini meminimalkan asumsi tentang detail implementasi di luar tujuan arsitektur yang dinyatakan. Sementara kerangka pengembangan game lintas-platform mungkin memiliki tujuan untuk memberikan "apa yang umum untuk (hampir) semua game komputer, terlepas dari platform", dan mungkin hanya menerapkan faktor-faktor abstrak seperti pengaturan waktu dan manajemen entitas, Kerangka Kerja XNA (secara implisit) memiliki tujuan untuk memberikan "apa yang umum untuk (hampir) semua game komputer yang ditulis untuk dieksekusi pada XNA CLR". Mengingat bahwa fokus ini sangat sempit, mereka telah dapat memasukkan fitur engine dengan impunitas. Mereka menggabungkan semuanya di bawah judul "Kerangka Kerja", karena ini menunjukkan kebebasan implementasi tertentu yang akan Anda nikmati sebagai pengembang game.
Secara kasar, sebuah kerangka kerja harus tidak membatasi mungkin sambil tetap memberikan dasar yang bermanfaat. Mesin, di sisi lain, biasanya lebih fokus ke fitur-fitur tertentu, dan saat menggunakannya, Anda menerima bahwa ada batasan tertentu yang Anda akan terikat.
sumber
Saya tidak pernah menggunakan 'mesin permainan' tetapi pemahaman saya tentang ini lebih sebagai seperangkat alat yang telah ditentukan sebelumnya yang dibundel dengan struktur kerangka permainan yang telah ditentukan sebelumnya untuk pengembangan jenis permainan tertentu. Dan tentu saja bahwa struktur untuk pengembangan jenis permainan tertentu adalah faktor penentu utama dalam mesin permainan, tentu saja itulah yang memikat artikel Wikipedia tersebut. Bagi saya kerangka XNA lebih mirip dengan set pustaka pihak ketiga, seperti AJAX, dalam hal itu menambahkan rutinitas pra-dibangun ke bahasa pemrograman telanjang yang ada. Itu tidak memberikan batasan atau pedoman apa pun yang Anda, sebagai programmer, dapat dan tidak bisa lakukan dengan rutinitas perpustakaan ini. Dalam pikiran saya itu tidak mirip dengan mesin dengan cara apa pun. Lalu saya datang dari latar belakang perangkat lunak bisnis / web centric,
Saya telah membangun kerangka kerja untuk ide gim menggunakan XNA dan rasanya seperti menggunakan pustaka lain di atas C #. Saya akan menggunakan proses yang telah saya retas dalam program pengujian untuk menghasilkan dua atau tiga game untuk windows dan mungkin Xbox.
Jadi, seperti yang saya katakan, dalam pikiran saya ini jauh dari apa yang saya pahami sebagai 'Mesin Game' sehingga ketika saya menemukan posting ini saya tidak tahu mengapa seseorang akan membuat perbandingan itu. Apakah aku salah?
sumber