IT_etc/유용한 전산 지식들..

SDL(Simple DirectMedia Layer) 에 대하여....

JJun ™ 2015. 12. 22. 19:32



 출처: http://bearsopenstory.tistory.com/entry/SDL-SDLSimple-DirectMedia-Layer-%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC







1. SDL 이란 무엇인가?

SDL은 Loki Entertainment Software사의 수석 프로그래머인 Sam Lantinga 이 만든 라이브러리 입니다.
SDL의 개발 목적은 윈도우용 게임을 리눅스로 쉽게 포팅하기 위한 라이브러리를 만들기 위해서 시작되었고,
현재로서는 멀티 플랫폼 상에서 게임 개발 및 포팅의 목적으로 널리 이용되고 있는 API 입니다.


SDL은 다양한 환경하에서 작동할수 있도록 설계되어져 있으며, 모두 같은 소스코드를 사용할 수 있는 구조로 되어져 있습니다. 
윈도우에서 작성한 코드를 그대로 리눅스에서 컴파일 하여 실행하도록 할 수 있으며, 심지어 맥이나 BeOS 등에서도 구동을 보장받을 수 있습니다.

현재 공식적으로 Win32 / 리눅스 / MacOS / MacOS X 에서의 작동을 보장하며,
Solaris / IRIX / FreeBSD / QNX / OSF/True64 등의 플랫폼에서도 
비공식 적으로 포팅되어져 있습니다.


현재 국내의 gp2x 에서도 SDL 구동이 되어지며, 쉽고 빠르게 게임을 제작해 볼 수 있는 매력적인 라이브러리 입니다.




2. SDL 의 장점


SDL의 가장 큰 장점은 멀티 플랫폼을 지원하며, 하나의 소스코드로 여러가지 플랫폼에서 컴파일이 가능하다는 것입니다.
즉, 크로스 플랫폼(Cross-Platform) 멀티미디어 라이브러리 인 셈입니다.


SDL은 화면 제어는 물론, 시스템의 몇몇 이벤트 / 사운드 / CD-Rom 제어 / 쓰레드 / 타이머 등의 

멀티미디어 관련 라이브러리도 함께 포함하고 있습니다.


SDL은 여러가지 확장을 통해 더 쉽고 강력하게 사용할 수 있도록 되어져 있습니다. 

jpg, png와 같은 이미지 파일을 불러오고 사용하기 위한 SDL_Image, 네트워크 기능을 활용하기 위한 

SDL_Net, mp3, ogg 같은 사운드 파일을 다루기 위한 SDL_Mixer 등등... 

여러가지 확장을 통해 더 쉽고 빠르게 게임을 개발 할 수 있습니다.


SDL은 OpenGL을 공식적으로 지원하며, SDL과 OpenGL을 이용하여 3D 게임을 쉽고 빠르게 제작할 수 있습니다. 

심지어 OpenGL 학습을 위한 용도로도 SDL을 이용할 수 있습니다.

SDL은 여러 아마추어 개발자들이 사용하고, 충분히 그 성능 입증을 받아왔습니다. 

따라서 세계 곳곳에 SDL 관련 정보가 아주 많으며, 

IGF 같이 굵직한 아마추어 게임 개발 대회에서도 SDL 사용을 인정해 주고 있습니다.

SDL은 어떤 환경하에서도 컴파일하고 실행해 볼 수 있으며, 쉽습니다.



3. SDL 의 단점

SDL은 OS에 비 종속적인만큼, 라이브러리 간의 호환성이 100% 유지되어지지 않습니다. 

몇몇 시스템 상에서는 풀 스크린 전환 함수가 제대로 작동하지 않기도 하며, 

리눅스의 OpenGL과 윈도우의 OpenGL 간에도 동기화 옵션이 작동 되고, 작동 되지 않는 등의 호환성 문제는 여전히 남습니다.


SDL은 철저하게 게임 제작을 위해 개발된 API이기 때문에 여러가지 윈도우 시스템에 종속적인 기능을 사용할 수 없습니다. 

윈도우 창에 메뉴바를 단다거나, 트레이에 아이콘을 추가한다거나 하는 등의 옵션은 윈도우 시스템에 맡겨야 합니다.




4. 마치며...

SDL은 쉽고 빠르게 게임 개발을 도와주며, 플랫폼에 제약없이 프로그램을 개발 하도록 도와주는 멋진 API 입니다. 

앞으로 SDL에 대한 여러가지 강좌와 설명을 통해, 여러분들께 SDL 사용법과 활용법에 대해서 알려 드리고자 합니다. 

대부분의 소스코드는 리눅스와 윈도우 모두에서 실험을 하고 공개할 것이며, 소스코드는 항상 공개할 것입니다.




5. 더 많은 정보

SDL에 대한 더 많은 정보는 SDL 공식 홈페이지에서 확인 할 수 있습니다.
http://www.libsdl.org


간단한 SDL 소개는 아래의 사이트에서 확인 하실수 있습니다.

http://www.libsdl.org/intro.ko/toc.html