프리 글 루트 vs SDL vs GLFW


26

내 게임 프로젝트를 Android (NDK 덕분에 OpenGL ES 2.0으로 작성)에서 Windows 및 Linux 플랫폼으로 이식해야합니다. 물론 플랫폼에 의존하는 일부 코드를 다시 작성해야하지만 OpenGL 및 입력 핸들 사용을 만들기 위해 어떤 라이브러리에 의문을 가졌습니까?

빠른 인터넷 검색으로 3 명의 후보자를 얻을 수 있습니다.

1) Freeglut-재 작성되고 무료로 오래된 GLUT를 무료로 제공합니다.
2) SDL-많은 게임에서 사용되는 하나의 라이브러리를 가장 잘 알고 있습니다.
3) GLFW-일종의 새롭지 만 단순하고 기능적입니다.

나는 단지 PC 개발에 익숙하지 않으며 그들 사이에 큰 차이가 보이지 않습니다. 어느 것을 선택해야합니까? 핵심 마우스 / 키보드 입력과 OpenGL 컨텍스트 작성이 필요합니다. 또한 GLEW를 사용하여 현대 OpenGL을 쉽게 사용할 수 있습니다.


2
대답은 매우 의견이 많을 것이며 실제로는 SE 형식에 대한 좋은 질문이 아닙니다. 즉, 실제 프로젝트에 세 가지를 모두 사용하고 SFML, GLUT, Qt 및 솔루션을 수동으로 롤링하는 것과 같은 몇 가지 다른 것들을 사용한 나의 의견은 SDL이 다양한 기능, 안정성 및 용이성을 제공한다는 것입니다. 사용합니다. 특히 시험판 2.0 버전을 권장합니다 (Mercural 리포지토리를 확인하고 직접 구축해야하지만 매우 쉽습니다). 두 번째로 SFML은 꽤 좋습니다. GLFW에서 너무 많은 버그를 발견했고 GLUT는 게임에 좋지 않으며 핸드 롤링은 많은 작업입니다.
Sean Middleditch

개인적으로 SDL은 입력에서 그래픽, 오디오 및 입력에 이르기까지 게임의 모든 부분을 처리하기 때문에 SDL을 권장합니다. 그러나 제한적 일 수 있지만 더 제한된 플랫폼을 위해 이미 개발 된 게임에서 왔기 때문에 올바른 선택이라고 생각합니다.
CobaltHex

응, 여론 조사 내 투표는 간단하고 쉬운 GLFW이며, 해결되지 않은 문제는 없었습니다. 초경량이며 컴파일하기도 쉽습니다.
감속

답변:


29

GLFW 는 현대적 이며 매우 잘 정의 된 범위를 가지고 있습니다. 또한 매우 활발한 개발 중에 있습니다.

다른 쪽의 SDL 은 견고 하고 다양한 범위에서 많은 기능을 가지고 있지만 모든 범위에서 다소 부족합니다 (예 : SDL은 오디오를 수행 할 수 있지만 OpenAL을 사용하는 것이 더 우수하기 때문에 OpenAL을 사용하는 것을 선호 할 수 있습니다). 데스크탑 플랫폼 (win / linux / mac) 전용 인 GLFW와 달리 SDL이 여러 다른 플랫폼으로 포팅 된 것이 주목할 만하다.

GLUT , 잘 피해야한다 . 그것을 좋게 만드는 것은 실제로 아무것도 없습니다.


완벽 주의자로 GLFW가 더 나은 선택이라고 생각합니다. 그것이 원하는 것을 정확하게 수행하기 때문에 더 이상 아무것도 할 수 없습니다. 매우 활발한 개발은 또한 장기 프로젝트에 좋은 징조입니다. 이는 일반적으로 버그가 수정되고 새로운 기능이 추가되며 새로운 표준을 따르며 언제든지 가까이에 버려지지 않기 때문입니다. 이것은 빠른 포트 나 6 개월 게임에는 중요하지 않지만 엔진이나 라이브러리의 경우에는 재사용하고 싶습니다.


7
그러나 OP는 GLUT가 아닌 Freeglut 에 대해 묻습니다 !

@ user3473 "FreeGLUT는 OpenGL Utility Toolkit (GLUT) 라이브러리의 오픈 소스 대안입니다."
YoYoYonnY

@YoYoYonnY GLFW와 SDL도 마찬가지입니다.
Dan

@ 댄 ... 아니. GLFW와 특히 SDL은 GLUT의 대안이 아닙니다. GLUT로는 할 수없는 일을 할 수 있기 때문입니다.
YoYoYonnY

@YoYoYonnY FreeGLUT으로 GLUT으로 할 수없는 일을 할 수 있습니다. 내 요점은 여전히 ​​유효합니다.
Dan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.