프로그래밍

Box2D Lite 소개 (물리엔진 공부의 좋은 시작)

알 수 없는 사용자 2012. 3. 14. 00:00

  물리엔진이라면 당연히 3D 세계에서나 필요하다고 여기는 때가 있었죠. 그때 갑자기 엄청 신기한 2D 게임 하나가 나옵니다.

<Crayon Physics Deluxe>

  자신이 직접 손으로 그린 그림이 그 모양 그대로 게임세계에서 물체로써 동작하는 아이디어를 보여주었습니다. 해당 물리엔진의 제작자도 Sweet (아아~ 달콤해~) 라며 좋아하시네요ㅎㅎ (링크
)
 

  또한 각종 플래시 게임에서 간단한 2D 물리들을 이용한 게임들이 등장하기 시작했습니다. 그러다가 2D 물리를 이용한  대박 게임이 나왔습니다. 바로 학교폭력근절 친구 앵그리버드(Angry Bird)죠~!! (무려 다운로드 수가 3억 5천이랍니다;;;)


<Angry Bird>


  두 게임에는 공통점이 있습니다. 바로 같은 물리엔진을 사용했는데요. Box2D 라는 물리 엔진입니다.






  이 엔진의 제작자는 Erin Catto 라는 아저씨구요. 현재 블리자드에서 디아블로3 랙돌을 담당하는 것으로 보입니다. (이번 GDC 2012에서 디아블로3 랙돌 관련 발표를 하셨네요. (발표자료 : http://box2d.googlecode.com/files/GDC2012_ErinCatto_Ragdolls.pdf)


< Erin Catto, Twitter: @erin_catto >

  Box2D 엔진은 완전 공개용이구요. 앵그리버드 처럼 초대박이 났어도 에린 까또 아저씨한테는 땡전한푼 안들어가나 봅니다. 앵그리버드 만든 아저씨한테 크레딧이라도 올려달라고 정중하게 말씀드리네요~ㅎㅎ

Erin: “Hi Peter, could you tell me which physics engine Angy Birds uses?”

Peter:
 “Box2D”

Erin:
 “Great. Would you consider giving credit to Box2D in your game?”

Peter:
 “Yes, of course”

Erin:
 “Thank you! By the way, I am Erin Catto the creator of Box2D”

Peter:
 “Great! I would like to talk to you after the session”
  




  Box2D 엔진 소스는 아래 주소에서 받으실 수 있습니다.


  보통 물리엔진을 만들고 싶어서 공개용 소스를 열어보면 방대한 양에 어디서부터 봐야할지 감이 잘 안옵니다. Box2D도 다른 공개 물리엔진 보다 그 크기가 작긴 하지만 처음 입문하는 사람이 보기에는 쉽지 않죠~ (사용자가 아닌 물리 엔진 제작 입문자로써..)

  그래서 에린 까또 아저씨는 순수하게 박스로만 강체 물리를 구현하는 매우 가볍지만 라이트하고 작지만 스몰하고 짧지만 쇼트한 Box2D Lite 코드를 공개해주셨습니다. Box2D 본 엔진과는 전혀 상관없이 독립적으로 실행되는 완전한 2D 물리 예제입니다.


  동영상을 보시면, 기본적인 강체 물리가 정확히 구현된 것을 확인하실 수 있습니다. (동영상 후반부에는 시소도 있고 흔들다리도 있습니다.)


< 실행 동영상, 중간에 난입하는 녹색 박스는 스페이스 키를 누르면 랜덤으로 발사된다.>


  물리 엔진을 처음 공부하시는 분들은 엔진의 전반적인 흐름이 어떻게 흘러가는지 이 Box2D Lite 소스코드부터 시작하시는게 어떨까 추천해봅니다~!!!

 
반응형