SFML

SFML
개발Laurent Gomila
플랫폼윈도우, 리눅스, 맥OS
장르멀티미디어 API
라이센스2.0 zlib/png license
웹사이트[1]

1 개요

SFML(Simple and Fast Multimedia Library)은 프랑스의 Laurent Gomila사가 만든 멀티미디어 API이다. 기존의 크로스 플랫폼 멀티미디어 API인 Simple DirectMedia Layer (SDL)을 대체하려는 목적으로 만들어 졌으며, 처음에는 C++에 기반헀으나 버전업을 계속하면서 C\#이나 JAVA, 심지어는 파이썬, 루비와 같은 다양한 언어를 지원하게 되었다. 멀티미디어 답게 그래픽, 사운드, 입출력, 네트워크등의 라이브러리를 지원한다.

2 상세

SFML의 장점은 빠르고 사용하기 쉽고 객체지향적이라는 것에 있다. SDL이 C언어를 바탕으로 만들어져 객체지향적인 고려가 되어있지 않은데 비해, 처음부터 객체지향적인 개발을 염두에 두고 만든 API라서 현대의 다른 객체지향 언어(C#, JAVA)에서도 대응하기가 쉽다. 또한 인터페이스가 직관적이고 객체지향에 익숙해있다면 라이브러리를 사용하는데 어려움이 적다. 다시말해 편하고 쉽다. 그래픽 API 중 쉽다고 소문난 SDL보다 더 쉽다. 사용편의성만 치면 과거 볼랜드사에서 개발한 winbgi와 맞먹을 정도다. 그런데 이건 그래픽 뿐만 아니라 사운드, 입출력, 네트워크 라이브러리까지 된다. 그러면서도 빠르기까지 하다..

3 단점

장점도 많지만, 단점도 꽤 많다. 우선 마이너하다. SDL은 개발된지 꽤 된 물건이라서 많이 사용되어왔고 상용 프로그램에서도 널리 사용되고 있다.[1] 반면에 SFML은 그럭저럭 쓸만하다고 평가받는 1.6 버전이 나온게 2010년. 관록의 차이는 관련 커뮤니티의 규모, 관련 개발 도서, 레퍼런스, 소스 등등의 차이로 나타나서 개발에 어려움을 겪게 한다. 일례로 SDL은 관련 서적이 10종 이상 출간되었으나 SFML은 첫 개발 도서인 SFML Game Development가 2013년 6월 24일 출간되었다.
그리고 SDL 보다 국내 자료가 부족하다, 아니 아예 없는 수준이다. 외국에서도 공식 홈페이지 외에는 활발한 편인 사이트가 없어서 공식 홈페이지의 Tutorial이나 Open-sourced game을 뜯어서 소스를 살펴보고 공부하는 것 외에는 방법이 거의 없다. 그래도 홈페이지에 강좌가 꽤 자세하게 나와있는 편이므로 영어를 조금 할 줄 안다면 [2] 이곳에서 공부를 하자.
SFML의 미래는 아직은 불투명하지만, 장기적으로 SDL의 위치를 위협할 수 있을거라 전망된다. 일단 객체지향 라이브러리인 점이 개발에 굉장한 메리트를 갖고 있기 때문에 이거 하나만으로 SFML을 쓸 이유는 충분하다.

4 SFML로 개발된 게임

Vagante
  1. 대표적으로 문명 콜 투 파워와 심시티 3000의 리눅스판, 세컨트 라이프, Open TTD 등이 있다.