Saya telah memperhatikan tren pengembang indie menjauh dari kerangka dan mesin, dan bergerak ke arah menggunakan OpenGL telanjang, atau menggunakannya dikombinasikan dengan SDL / SFML2. Sebagai pengembang indie, saya tidak bisa melihat apa yang dapat ditawarkan OpenGL tingkat rendah di atas engine atau kerangka kerja terpisah.
Sebagian besar mesin dan kerangka kerja yang baik memberikan fungsionalitas yang Anda butuhkan, dan tidak pernah menghalangi Anda. Mereka mungkin juga membuka opsi untuk berurusan dengan OpenGL secara langsung. Beberapa bahkan menawarkan fungsionalitas untuk mengkompilasi lintas-platform!
Saya mengerti aspirasi untuk mempelajari apa yang terjadi di bawah tenda, tetapi saya tidak bisa melihat kelebihan apa pun yang mungkin ditawarkan OpenGL kepada pengembang indie melalui mesin atau kerangka kerja.
Bisakah Anda menjelaskan alasan di balik membuat game dari awal menggunakan OpenGL?
Jawaban:
Ini sebagian besar adalah pertanyaan / jawaban berdasarkan pendapat, jadi sebenarnya tidak selalu ideal untuk platform ini, tetapi bagaimanapun:
Kenapa tidak ada framework / engine sebagai indie? Inilah dua sen saya:
sumber
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:
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.
sumber