Sebagian besar mesin dan kerangka kerja yang baik memberikan fungsionalitas yang Anda butuhkan, dan tidak pernah menghalangi Anda.
Apakah mereka? Itu agak tergantung pada apa yang Anda lakukan, secara grafis.
Untuk banyak jenis permainan, ada jawaban standar untuk pertanyaan grafis. Game 2D rata-rata misalnya dapat ditangani dengan baik dengan kecakapan 2D, misalnya, XNA / MonoGame. Hanya saja sprite, yang bisa datang berkelompok untuk medan, bisa diputar, dan sebagainya.
Tetapi bagaimana jika game Anda dulunya adalah game 2D rata-rata, maka Anda membaca tentang beberapa teknik keren, seperti menggunakan peta ketinggian untuk membangun penipu yang memiliki penampilan kedalaman relatif terhadap layar. Dan Anda ingin melakukan itu.
Sekarang Anda menggunakan pemetaan normal dan bahkan pemetaan paralaks. Semua dalam konteks yang sama "rendering sprite", tetapi membutuhkan lebih dari banyak mesin 2D murni dapat menangani. Secara khusus, ini membutuhkan multitextured "sprite blitting", yang bukan sesuatu yang dapat dilakukan oleh banyak mesin 2D.
Apa yang Anda lakukan jika mesin Anda tidak dapat beradaptasi dengan Anda? Jadi itu berarti Anda harus melakukan beberapa lintasan, satu untuk warna dan satu untuk penerangan melalui peta normal. Tapi itu tidak berhasil, karena Anda membutuhkan bidang ketinggian peta normal untuk menggunakan pemetaan paralaks ke pencarian warna. Jadi ... sekarang bagaimana? Anda perlu alpha untuk melakukan transparansi, sehingga Anda tidak bisa mencuri alpha. Dan mesinnya tidak mendukung multitextures.
Jadi, Anda harus memilih salah satu dari yang berikut:
- Tinggalkan idenya. Ini berarti game Anda secara fungsional dibatasi oleh mesin Anda.
- Retas mesin untuk melakukan multitexture. Dengan asumsi Anda memiliki akses ke kode sumber, Anda sekarang mengambil sendiri untuk menyodok kode orang lain. Ini juga berarti Anda harus memeliharanya dan tidak mematahkannya dengan tersandung.
- Lakukan yang terbaik yang Anda bisa, dalam keterbatasan mesin. Jadi Anda bisa mendapatkan paralaks pada peta normal, tetapi tidak pada warna. Mungkin tidak persis seperti yang Anda inginkan, tetapi lebih baik daripada tidak sama sekali.
Sebagai contoh, ambil Geometry Wars. Kebanyakan mesin 2D akan menyedot visual semacam ini, karena kebanyakan dari mereka dibangun di sekitar menggambar sprite, bukan garis. Itu adalah permainan yang membutuhkan penyaji yang sangat terspesialisasi.
Pada akhirnya, Anda harus bertanggung jawab atas unsur-unsur permainan Anda yang penting bagi kebutuhan permainan Anda. Jika tampilan visual gim Anda terutama dikembangkan oleh gaya seni gambar dan model yang Anda gunakan, daripada efek spesifik, maka menggunakan solusi pra-paket tidak masalah. Tetapi jika gaya visual game Anda didefinisikan secara signifikan oleh kode rendering khusus, kemungkinan besar mesin standar bisa menjadi batasan serius jika Anda memutuskan untuk melakukan hal-hal yang berada di luar kotak.
Selain itu, ada masalah yang sangat praktis: tidak semua mesin game sama portabelnya.
Dengan meningkatnya platform mobile baru-baru ini, pasar untuk game tersebar di berbagai perangkat OS dan antarmuka pengguna. Tidak semua mesin bekerja di semua perangkat. Dan jika mesin Anda tidak bekerja pada platform, Anda tentu tidak akan meluangkan waktu untuk membuatnya bekerja pada platform . Bagaimanapun, itu sebabnya Anda menggunakan mesin di tempat pertama, kan?
Jika penting bagi Anda bahwa permainan Anda berfungsi pada platform tertentu, maka Anda lagi harus bertanggung jawab untuk itu. Dan cara "termudah" untuk memastikan kesuksesan dengan ini adalah melakukannya sendiri. Untuk membangun mesin yang dapat bekerja di berbagai platform, mungkin menggunakan kerangka kerja spesifik platform yang lebih sederhana di mana diperlukan untuk menangani beberapa detail tingkat rendah. Dengan begitu, jika rusak, itu adalah kode Anda; Anda adalah orang terbaik untuk memperbaikinya.