Freeglut vs SDL vs GLFW

26

saya perlu port proyek game saya dari Android (ditulis dalam C, OpenGL ES 2.0, terima kasih kepada NDK) ke platform Windows dan Linux. Tentu saja saya perlu menulis ulang beberapa platform tergantung kode, tetapi sekarang saya terjebak dengan pertanyaan pustaka mana untuk membuat OpenGL dan penggunaan input handle.

Googling cepat buat saya mendapatkan 3 kandidat:

1) Freeglut - ditulis ulang dan gratis GLUT tua yang baik.
2) SDL - paling tahu satu lib, digunakan di banyak game.
3) GLFW - semacam baru, tetapi sederhana dan fungsional.

Saya hanya cukup baru untuk mengembangkan PC dan tidak melihat perbedaan yang signifikan antara mereka. Bisakah Anda membantu saya memilih yang mana? Saya jelas membutuhkan input mouse / keyboard inti dan membuat konteks OpenGL, juga saya akan menggunakan GLEW untuk mendapatkan OpenGL modern dengan mudah.


sumber
2
Jawabannya akan sangat beralasan dan sebenarnya bukan pertanyaan yang bagus untuk format SE. Yang mengatakan, jawaban saya yang sangat beralasan - setelah menggunakan ketiganya untuk proyek nyata, dan beberapa lainnya seperti SFML, GLUT, Qt, dan solusi bergulir tangan - adalah bahwa SDL memberikan perpaduan yang baik antara fitur, stabilitas, dan kemudahan penggunaan. Saya terutama merekomendasikan versi 2.0 pra-rilis (hanya tersedia dengan memeriksa repo Mercurial dan membangun sendiri, tapi itu cukup mudah). Yang kedua, SFML cukup bagus. Saya menemukan terlalu banyak bug di GLFW, GLUT buruk untuk gim, dan memutar tangan banyak pekerjaan.
Sean Middleditch
Saya pribadi akan merekomendasikan SDL karena menangani semua bagian permainan dari input ke grafik ke audio dan input. Namun, ini bisa membatasi, tetapi karena Anda berasal dari game yang sudah dikembangkan untuk platform yang lebih terbatas, saya pikir itu akan menjadi pilihan yang baik.
CobaltHex
Ya, ini polling. Pilihan saya adalah GLFW, sederhana, mudah, tidak pernah memiliki masalah yang tidak diselesaikan. Beratnya sangat ringan dan mudah dikompilasi juga.
decaviatedcaviar

Jawaban:

29

GLFW modern dan memiliki ruang lingkup yang sangat jelas . Ini juga dalam pengembangan yang sangat aktif.

SDL di sisi lain adalah rock solid dan memiliki banyak fitur dalam lingkup yang berbeda tetapi agak kurang di semua (misalnya: SDL dapat melakukan audio, tetapi Anda mungkin lebih suka menggunakan OpenAL karena jauh lebih unggul dalam hal ini). Mungkin perlu dicatat bahwa SDL porting ke banyak platform berbeda, tidak seperti GLFW yang hanya untuk platform desktop (win / linux / mac).

GLUT , yah, harus dihindari . Tidak ada apa-apa tentang hal itu yang membuatnya menjadi baik.


Menurut pendapat saya sebagai perfeksionis GLFW adalah pilihan yang lebih baik. Karena itu melakukan persis apa yang diinginkan seseorang, tidak kurang tidak lebih. Pengembangan yang sangat aktif juga merupakan pertanda baik untuk proyek jangka panjang karena biasanya berarti bug akan diperbaiki, bahwa fitur baru akan ditambahkan, itu akan mengikuti standar yang lebih baru dan tidak akan diabadikan dalam waktu dekat. Ini tidak penting untuk port cepat atau permainan 6 bulan, tetapi untuk mesin atau perpustakaan yang ingin Anda gunakan kembali saya akan mengingatnya.

API-Beast
sumber
7
Tapi OP bertanya tentang Freeglut bukan GLUT !!!
@ user3473 "FreeGLUT adalah alternatif sumber terbuka untuk pustaka OpenGL Utility Toolkit (GLUT)."
YoYoYonnY
@YoYoYonnY Begitu juga GLFW dan SDL, maka pertanyaan ini.
Dan
@Dan ... tidak. GLFW dan terutama SDL jelas bukan alternatif untuk GLUT, karena Anda dapat melakukan hal-hal dengan mereka yang Anda tidak bisa dengan GLUT dan sebaliknya.
YoYoYonnY
@YoYoYonnY Anda dapat melakukan hal-hal dengan FreeGLUT yang tidak dapat Anda lakukan dengan GLUT. Maksud saya masih berdiri.
Dan