Box2D

에린 카토가 개발한 물리 엔진. 이름처럼 2D 상에서의 물리효과를 시뮬레이션하는 엔진이다. 참고로 10여 년간 물리 엔진을 개발해온 에린 카토는 현재 블리자드의 물리 프로그래머이다.

에린 카토의 트위터

처음엔 'Crayon Physics'라는 게임으로 서서히 알려지기 시작했으며, 스마트폰이 보급되기 시작한 이후 앵그리버드가 후에 붐을 일으키며 개발자들 사이에선 널리 알려지게 되었다.

C언어는 물론 Objective-CHTML5 등 상당히 다양한 언어로 개발 가능하다. 언어간 차이도 적어 이식성도 뒤지지 않는 편. 심지어 플래시 액션스크립트 버전도 나와있다.
Box2D 구글코드
AS3.0 버전 소스 다운로드

또한 Box2D Lite라는 경량화 버전이 존재하는데, 이는 순수하게 상자형 강체들로 이루어진 물리효과를 시뮬레이션한다.[1] 물리엔진 개발 입문자들에게 있어선 한번쯤 건드려봐도 좋을 법한 소스.

여담이지만 참고로 엔진 패키지에 속한 b2vec2 클래스는 2D 상에서 벡터량를 표현하는 클래스들 가운데에서도 꽤나 표준적인 클래스에 속한다. 용례를 들자면 이것과 같이 얼핏 보기엔 전혀 관련이 없을 것 같은 구현에서도 쓰인다.
  1. 상자형 강체로 이루어져있지만 웬만한 필요한 것들은 다 갖추어져있다. Joint를 이용해 흔들다리라든지, 시소라든지도 구현 가능하다.