Ian Millingtonì˜ ì±… [http://www.kangcom.com/sub/view.asp?sku=200611020031 Game Physics Engine Development]를 ë³´ê³ ë§Œë“œëŠ” 3D 게임 물리 엔진. 게임 물리 엔진ì´ê¸° ë•Œë¬¸ì— '''실시간 ê°•ì²´ ì‹œë®¬ë ˆì´ì…˜'''ì„ ì¤‘ì ì 으로 다룬다. ì´ ì±…ì˜ ì˜¨ë¼ì¸ 사ì´íЏ: http://procyclone.com/ 게임 물리 ì—”ì§„ì€ í¬ê²Œ 세 개로 나눈다. 1. ìž…ìž ì—”ì§„(particle engine) 2. 질량 ì§‘í•©ì²´ 엔진(mass aggregate engine) 3. ê°•ì²´ 엔진(rigid body engine) == ìž…ìž ì—”ì§„ == ìž…ìž ì—”ì§„ì€ ëª¨ë“ ë¬¼ì²´ë¥¼ í¬ê¸° 없는 ìž…ìž(particle)로 표현한다. ìž…ìžì— 힘(force)ì„ ìž‘ìš©í•˜ë©´ ìž…ìžê°€ 움ì§ì¸ë‹¤. ê³ ë“±í•™êµ ë¬¼ë¦¬ ì‹œê°„ì— ë‹¨ì¼ ë¬¼ì²´ì˜ ê°€ì† ìš´ë™ì´ë‹ˆ íž˜ì˜ ìž‘ìš© 따위를 ë°°ì› ì„ í…ë° ë‹¨ìˆœížˆ 그런 물체를 ë™ì‹œì— 수천 ê°œ 움ì§ì¼ 수 ìžˆë‹¤ê³ ë³´ë©´ ëœë‹¤. 사실 물리 엔진ì´ë¼ê³ 부르기ì—는 조금 ê·¸ë ‡ë‹¤. attachment:particle_engine_sample_00.png attachment:particle_engine_sample_01.png == 질량 ì§‘í•©ì²´ 엔진 == 질량 ì§‘í•©ì²´ ì—”ì§„ì€ ìž…ìžë“¤ì„ ìš©ìˆ˜ì² (spring) ë˜ëŠ” 막대(rod) ê°™ì€ êµ¬ì†(constraint)으로 묶어 í•˜ë‚˜ì˜ ë¬¼ì²´ì²˜ëŸ¼ ì‹œë®¬ë ˆì´ì…˜í• 수 있다. 예를 들어 í•˜ë‚˜ì˜ ìƒìž 집합체는 ì 4개와 막대 6개로 구성ëœë‹¤. 현실ì—서 물체는 ìˆ˜ë§Žì€ ìž…ìžë“¤ë¡œ 구성ë˜ëŠ”ë°, 질량 ì§‘í•©ì²´ ì—”ì§„ì€ ë¬¼ì²´ì˜ í•µì‹¬ ìž…ìžë“¤ë§Œ ê°€ì§€ê³ ê·¸ 물체를 ê¸°ìˆ í•˜ë ¤ëŠ” ì ‘ê·¼ë²•ìœ¼ë¡œ ì´í•´í• 수 있다. 질량 ì§‘í•©ì²´ 엔진ì—서는 ë¬¼ì²´ì˜ íšŒì „ì„ ë”°ë¡œ êµ¬í˜„í• í•„ìš”ê°€ ì—†ëŠ”ë° ê°€ë ¹ ëª¨ì„œë¦¬ì˜ í•œ ìž…ìžë¥¼ ìž¡ê³ ëŒë©´ 나머지 ì ë“¤ì´ ë”°ë¼ì˜¤ë©´ì„œ ìžë™ìœ¼ë¡œ íšŒì „ë˜ê¸° 때문ì´ë‹¤. ì´í•´í•˜ê¸°ë„ êµ¬í˜„í•˜ê¸°ë„ ë§¤ìš° 쉬우나 ë¬¼ì²´ì˜ ê³¨ê²©ë§Œìœ¼ë¡œ 어설프게 ì‹œë®¬ë ˆì´ì…˜í•˜ê¸° ë•Œë¬¸ì— ì‹¤í–‰í•´ë³´ë©´ 물체가 ì°Œê·¸ëŸ¬ì§„ë‹¤ë“ ì§€ 움푹 패ì¸ë‹¤ë“ ì§€ 조금씩 ë³€í˜•ì´ ì¼ì–´ë‚œë‹¤. Locorocoë¼ë©´ 모를까 ì˜ìžë¥¼ ë°”ë‹¥ì— ì§‘ì–´ ë˜ì¡ŒëŠ”ë° ì˜ìžê°€ ê³ ë¬´ê³µì²˜ëŸ¼ ì¶œë ì´ëŠ” ê²ƒì„ ë°”ë¼ì§€ëŠ” ì•Šì„ ê²ƒì´ë‹¤. attachment:mass_aggregate_engine_sample_00.png ìž…ìž 20개를 ìƒì„±í•˜ê³ ëª¨ë“ ìŒì„ ìš©ìˆ˜ì² ë¡œ 연결하면 ìžì—°ìŠ¤ë ˆ ê· í˜•ì„ ì´ë£¨ì–´ ì•ˆì •ëœ êµ¬ì¡°ë¡œ ìˆ˜ë ´í•œë‹¤. attachment:mass_aggregate_engine_sample_01.png 사ê°í˜•ì€ ìž…ìž 4개와 막대 6ê°œ, 삼ê°í˜•ì€ ìž…ìž 3개와 막대 3개로 구성ëœë‹¤. attachment:mass_aggregate_engine_sample_02.png ëª¸ì˜ ê´€ì ˆë“¤ì„ ìž…ìžë¡œ ë³´ê³ ë§‰ëŒ€ë¡œ 연결하면 플래시 게임 [http://www.kongregate.com/games/eric_gurt/dead-drunk-1-9 DeadDrunk]ì˜ ê·¸ 졸ë¼ë§¨ì„ 만들 수 있다. ì§€ í˜¼ìž ì¶¤ì‚¬ìœ„ ê°•ì²´ ì—”ì§„ì€ ë‚´ê°€ ì•„ì§ ì™„ì„±ì„ ëª» 해서 보류