WIPIVERSE

박스2D

박스2D(Box2D)는 에린 캐토(Erin Catto)에 의해 개발된 자유 오픈 소스 2차원 물리 시뮬레이션 엔진이다. 주로 게임 개발에서 강체(rigid body)의 움직임, 충돌, 중력, 마찰, 탄성 등의 물리적 상호작용을 현실적으로 구현하는 데 사용된다.

개요

박스2D는 C++로 작성되었으며, zlib 라이선스로 배포되는 자유 소프트웨어이다. 운영 체제에 독립적이어서 다양한 플랫폼에서 사용할 수 있다. 공식 웹사이트는 box2d.org이며, 소스 코드는 GitHub 저장소(github.com/erincatto/box2d)에서 관리되고 있다.

역사

박스2D는 2006년 게임 개발자 컨퍼런스(GDC)에서 에린 캐토에 의해 "박스2D 라이트(Box2D Lite)"라는 이름으로 처음 공개되었다. 이후 2007년 11월 11일 소스포지(SourceForge)에 오픈 소스로 릴리스되었고, 2010년 1월 17일에는 프로젝트 호스팅을 구글 코드(Google Code)로 이전하였다. 2008년 3월 6일에는 버전 2.0이 출시되어 지속적 충돌 감지(continuous collision detection) 기능이 도입되고 API가 개선되었다.

주요 특징

박스2D는 2차원 공간에서 강체 물리 시뮬레이션을 제공한다. 주요 기능으로는 충돌 감지, 관절(joint)을 통한 물체 간 연결, 마찰과 반발력(탄성) 시뮬레이션, 중력 적용 등이 있다. 게임 엔진의 관점에서 물리 엔진은 절차적 애니메이션을 위한 시스템으로, 박스2D는 강체 시뮬레이션을 사용하지 않는 경우에도 활용할 수 있는 다양한 충돌 처리 루틴을 제공한다.

사용 사례

박스2D는 다양한 게임 및 개발 환경에서 채택되었다. 대표적인 사용 사례로는 크레용 피직스 델럭스(Crayon Physics Deluxe), 림보(Limbo), 앵그리버드(Angry Birds), 타이니 윙스(Tiny Wings), 셔블 나이트(Shovel Knight), 노이타(Noita) 등이 있다. 또한 유니티(Unity), 게임메이커 스튜디오(GameMaker Studio), libGDX, LÖVE, Defold, Construct 2, 클릭팀 퓨전(Clickteam Fusion) 등 여러 게임 개발 도구 및 프레임워크에 물리 엔진으로 통합되어 있다.

라이선스

박스2D는 zlib 라이선스 하에 배포되며, 이는 상업적 사용과 수정, 재배포를 허용하는 비교적 관대한 오픈 소스 라이선스에 해당한다. 이로 인해 상업 게임을 포함한 다양한 프로젝트에서 자유롭게 활용될 수 있다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기