Freeglut против SDL против 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, просто, легко, никогда не было проблем, которые не были решены. Это супер легкий вес и легко компилируется.
замедленная

Ответы:

29

GLFW современен и имеет очень четкую сферу применения . Он также находится в стадии активной разработки.

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

GLUT , ну, следует избегать . В этом просто нет ничего, что могло бы сделать это хорошо.


На мой взгляд, как перфекционист GLFW является лучшим выбором. Потому что он делает именно то, что хочет, ни меньше, ни больше. Очень активная разработка также является хорошим знаком для долгосрочных проектов, поскольку обычно это означает, что ошибки будут исправлены, что будут добавлены новые функции, что будет соответствовать новым стандартам и что в ближайшее время они не будут устранены. Это не важно для быстрого порта или 6-месячной игры, но для движка или библиотеки, которую вы хотите использовать повторно, я бы помнил об этом.

API-Beast
источник
7
Но ОП спрашивает про Фриглут, а не ГЛЮТ !!!
@ user3473 «FreeGLUT - это альтернатива с открытым исходным кодом для библиотеки OpenGL Utility Toolkit (GLUT)».
YoYoYonnY
@YoYoYonnY Так же, как GLFW и SDL, отсюда и этот вопрос.
Дан
@ Дэн ... нет. GLFW и особенно SDL определенно не являются альтернативами для GLUT, потому что вы можете делать с ними то, чего не можете делать с GLUT, и наоборот.
YoYoYonnY
@YoYoYonnY Вы можете делать вещи с FreeGLUT, что вы не можете делать с GLUT. Моя точка зрения остается в силе.
Дан