Freeglut vs SDL vs GLFW


26

Мені потрібно перенести мій ігровий проект з Android (написаний на C, OpenGL ES 2.0, завдяки NDK) на платформи Windows та Linux. Звичайно, мені потрібно буде переписати якийсь код залежно від платформи, але тепер я зупинився на питанні, яку бібліотеку для створення OpenGL та вхідної ручки використовувати.

Тільки швидкий гугл отримав мені 3 кандидати:

1) Freeglut - переписаний і вільний добрий старий GLUT.
2) SDL - найбільше добре знає один ліб, який використовується в багатьох іграх.
3) GLFW - якась нова, але проста і функціональна.

Я просто новачок у розробці ПК і не бачу жодних істотних відмінностей між ними. Чи можете ви мені допомогти, кого вибрати? Мені, очевидно, потрібно просто введення основної миші / клавіатури та створення контексту OpenGL, також я буду використовувати GLEW, щоб легко дістатися до сучасного OpenGL.


2
Відповідь буде дуже суперечливою і насправді не є гарним питанням для формату SE. Це означає, що моя дуже впевнена відповідь - використовуючи всі три для реальних проектів, а також декілька інших, таких як SFML, GLUT, Qt та ручне прокручування рішення - полягає в тому, що SDL дає хороший поєднання функцій, стабільності та простоти використання. Я особливо рекомендую версії 2.0 до випуску (доступні лише після перевірки репортажу Mercurial та створення самого себе, але це досить просто). По-друге, SFML досить непоганий. Я знайшов занадто багато помилок у GLFW, GLUT поганий для ігор, а ручний прокат - це багато робіт.
Шон Міддлічч

Я особисто рекомендував SDL, оскільки він обробляє всі частини гри від входу до графіки до аудіо та входу. Однак це може бути обмежуючим, але оскільки ви виходите з уже розробленої гри для більш обмеженої платформи, я думаю, це був би чудовий вибір.
CobaltHex

Так, це опитування. Моє голосування - GLFW, просто, легко, ніколи не було проблем, які не були вирішені. Це дуже невелика вага і легко складати.
deceleratedcaviar

Відповіді:


29

GLFW є сучасною та має дуже чітко визначену сферу застосування . Це також дуже активний розвиток.

З іншого боку, SDL є непомітним і має багато можливостей у різних областях, але дещо не вистачає у всіх (наприклад: SDL може робити аудіо, але ви можете скористатись OpenAL, оскільки він набагато кращий у цьому питанні). Можливо, помітно, що SDL був перенесений на багато різних платформ, на відміну від GLFW, який призначений лише для настільних платформ (win / linux / mac).

ГЛУТ , ну, слід уникати . Просто насправді немає нічого про це, що робить це добре.


На мій погляд, перфекціоністський GLFW - кращий вибір. Тому що він робить саме те, що хоче, і не менше нічого. Дуже активна розробка також є хорошим знаком для довгострокових проектів, оскільки це зазвичай означає, що виправлятимуться помилки, додаватимуться нові функції, буде йти в ногу з новими стандартами, і що вона не буде припинена в будь-який час поблизу. Це не важливо для швидкого порту чи 6-місячної гри, але для двигуна чи бібліотеки, які ви хочете повторно використовувати, я б пам’ятав про це.


7
Але ОП просить про Freeglut не GLUT !!!

@ user3473 "FreeGLUT - це альтернатива відкритому коду бібліотеці інструментів інструментів OpenGL (GLUT)."
YoYoYonnY

@YoYoYonnY Так само є GLFW та SDL, звідси і це питання.
Дан

@Дан ... ні. GLFW і особливо SDL, безумовно, не є альтернативою GLUT, тому що ви можете робити з ними речі, які не можете з GLUT, і навпаки.
YoYoYonnY

@YoYoYonnY Ви можете робити речі з FreeGLUT, які не можете зробити з GLUT. Моя суть досі стоїть.
Дан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.