|
[FSM, ¸ó½ºÅÍ ÀΰøÁö´ÉÀÇ ±¸Çö]
- ¿ìÁ¾ÇÏ(deepseas(AT)sogang.ac.kr)
- ¸¶¿ì½º·Î ȸéÀ» Ŭ¸¯ÇÑ
ÈÄ Å°º¸µå·Î Ç÷¹À̾î Á¶Á¤
- ¼Ò½ºÄÚµå
[Down]
-
ÀÚ¹Ù Runtime [Down]
: ¾ÖÇø´ÀÌ ½ÇÇàÀÌ ¾ÈµÉ °æ¿ì ¼³Ä¡, ¼³Ä¡ÈÄ ÀͽºÇ÷ξî Àç½ÇÇà
FSM(Finite State Machine) - °ÔÀÓ ÀΰøÁö´ÉÀÇ
ÀüÅëÀûÀÎ ¹æ¹ý
°ÔÀÓ¿¡¼ ÀûµéÀÇ ¿òÁ÷ÀÓÀ» ÀΰøÁö´ÉÀûÀ¸·Î ±¸ÇöÇϱâ
À§ÇØ ±âÁ¸ÀÇ °ÔÀӵ鿡¼ ÀÚÁÖ »ç¿ëµÇ´ø ¹æ¹ýÁß Çϳª°¡ ¹Ù·Î FSM, ÁïÀ¯ÇÑ»óűâ°èÀÌ´Ù.
FSMÀº ¿À·¡ÀüºÎÅÍ ´Ù¾çÇÑ ¹æ¹ýÀ¸·Î ³Î¸® ¾²¿©¿Â ÄÄÇ»ÅͰøÇÐ / ¼öÇÐÀû
°³³äÀε¥, ¿ë¾î ¶æ ±×´ë·Î À¯ÇÑÇÑ °³¼öÀÇ »óŵé·Î ±¸¼ºµÈ ÇϳªÀÇ °£´ÜÇÑ
±â°è¸¦ ¸»ÇÑ´Ù. ¿©±â¼ ÇϳªÀÇ »óÅÂ(State)¶ó´Â °ÍÀº ±×³É ÇϳªÀÇ Á¶°ÇÀ»
¶æÇÑ´Ù°í »ý°¢ÇÏ¸é µÈ´Ù.
FSMÀº Å©°Ô ÇöÀç»óÅÂ, ÀÔ·Â, Ãâ·Â»óÅÂ, ÀüÀÌÇÔ¼öÀÇ
4°¡Áö ¿ä¼Ò·Î ³ª´ ¼ö ÀÖ´Ù. ÇöÀç»óÅ´ ¸»±×´ë·Î ÇöÀç FSMÀÇ »óŸ¦
¸»Çϰí, ÀÔ·ÂÀº FSM¿¡ µé¾î¿Â ÀÔ·ÂÁ¤º¸, Ãâ·Â»óÅ´ ´ÙÀ½ ´Ü°èÀÇ »óÅÂ,
ÀüÀÌÇÔ¼ö´Â ÀÔ·ÂÁ¤º¸¿Í ÇöÀç»óŸ¦ ±â¹ÝÀ¸·Î Ãâ·Â»óŸ¦ °áÁ¤ÇÏ´Â ÇÔ¼ö¶ó
ÇÒ ¼ö ÀÖ´Ù.
¿ä¾àÇÏÀÚ¸é, FSMÀ̶ó´Â °ÍÀº À¯ÇÑÇÑ °³¼öÀÇ »óŵéÀ»
°¡Áø ÇϳªÀÇ ±â°èÀ̰í, ±× »óŵé Áß Çϳª°¡ ÇöÀç »óÅÂÀÎ °ÍÀÌ´Ù. FSMÀº
ÀÔ·ÂÀ» ¹Þ°í ¾î¶°ÇÑ »óÅÂÀüÀÌÇÔ¼ö¿¡ ±â¹ÝÇØ¼ ÇöÀç»óÅ·κÎÅÍ Ãâ·Â»óÅ·ÎÀÇ
»óÅÂÀüÀ̸¦ ÀÏÀ¸Å²´Ù. ±×¸®°í Ãâ·Â»óÅ´ »õ·Î¿î ÇöÀç »óŰ¡ µÈ´Ù.
ÄÄÇ»ÅÍ ¿ª½Ã Å©°Ô º¸¸é FSMÀÇ ÇÑ ¿¹¶ó ÇÒ ¼ö ÀÖ´Ù.
FSMÀ» »ç¿ëÇÑ ¸ó½ºÅÍÀÇ Çൿ ÀΰøÁö´É
ÀÌ·±ÇÑ FSMÀº °ÔÀÓ³»¿¡¼ ÀΰøÁö´ÉÀ» ±¸ÇöÇϱâ À§ÇØ
´Ù¾çÇÏ°Ô »ç¿ëµÉ ¼ö Àִµ¥, ±× Áß ´ëÇ¥ÀûÀÎ »ç¿ë¿¹°¡ Àû ¸ó½ºÅÍÀÇ ÇൿÀ»
°áÁ¤ÇÏ´Â ÀΰøÁö´ÉÀÇ ±¸ÇöÀ̶ó ÇÒ ¼ö ÀÖ´Ù. FSMÀÇ °¢°¢ÀÇ »óŸ¦ ¸ó½ºÅÍÀÇ
°¨Á¤À̶ó¼ Çϸé, ÀÌ´Â ÇöÀç »óÅÂ¿Í FSMÀ¸·ÎÀÇ ÀԷ¿¡ µû¶ó º¯Çϸç,
¾î¶² ½ÄÀ¸·Î º¯ÇÒ °ÍÀÎÁö´Â »óÅÂÀüÀÌ ±ÔÄ¢µé¿¡ ÀÇÇØ °áÁ¤µÈ´Ù. ¸ó½ºÅÍÀÇ
°¨Á¤¿¡ ±â¹ÝÇØ¼ ¼·Î ´Ù¸¥ ÇൿÀ» ¼öÇàÇÏ´Â Äڵ带 ¸¸µé¸é ¸ó½ºÅͰ¡
¸¶Ä¡ °¨Á¤À» °¡Áø ½ÇÁ¦ ±«¹°Ã³·³ ¿òÁ÷ÀÌ°Ô µÉ °ÍÀÌ´Ù.
º¹ÀâÇÑ Ä³¸¯ÅͶó¸é ÈξÀ ´õ ¸¹Àº »óŵé°ú ÀԷµé,
±×¸®°í »óÅÂÀüÀÌ ±ÔÄ¢µéÀ» °¡Áú °ÍÀÌ´Ù. ¾î¶² »óŵé°ú ÀԷµéÀ» ±¸ºÐÇÒ
°ÍÀÌ¸ç ±×°ÍµéÀÌ ¾î¶² ¹æ½ÄÀ¸·Î ÀüÀÌµÉ °ÍÀÎÁö¸¦ °áÁ¤ÇÏ´Â °ÍÀÌ ¹Ù·Î
FSM¿¡ ±â¹ÝÇÑ ÀΰøÁö´ÉÀ» ¸¸µå´Â ±âº»ÀûÀÎ °úÁ¤ÀÌ´Ù.
½ÇÁ¦ FSMÀÇ °ÔÀÓ ÀΰøÁö´É ±¸Çö, FSM Monster
Hunter
À§ÀÇ ¹æ¹ýÀ» »ç¿ëÇØ¼ °£´ÜÇÑ °ÔÀÓÀ» ¸¸µé¾î º¸¾Ò´Ù.
Java AppletÀ» ±â¹ÝÀ¸·Î ÀÛ¼ºÇÏ¿´°í, °ÔÀÓÀÇ ¸ñÀûÀº Ç÷¹À̾ Á¶Á¤Çؼ
¸ó½ºÅ͸¦ ¹°¸®Ä¡´Â °ÍÀÌ´Ù. À̶§ ¸ó½ºÅÍÀÇ ¿òÁ÷ÀÓÀ» ¸ó½ºÅÍÀÇ ÇöÀç»óÅ¿¡
µû¶ó °áÁ¤µÈ´Ù. ¸ó½ºÅÍÀÇ »óÅÂ¿Í ±×¿¡µû¸¥ ÇൿÀº ´ÙÀ½°ú °°´Ù
REST(¾ÈÁ¤) -
·£´ýÇÏ°Ô ¿òÁ÷ÀÌ¸ç °ø°ÝÀ» ÇÏÁö ¾Ê´Â´Ù ANGRY(ȳ²) - À̵¿¼Óµµ°¡ µÎ¹è·Î »¡¶óÁø´Ù. ³ª¸ÓÁø REST¿Í µ¿ÀÏ RAGE(ºÐ³ë) - Ç÷¹À̾ ÁÖº¯¿¡ ÀÖÀ¸¸é °ø°Ý¼öÇà. ¾ø´Ù¸é
Ç÷¹À̾ ÇâÇØ À̵¿. À̵¿¼Óµµ´Â µÎ¹è
ÇöÀç»óȲ, Áï FSMÀÇ ÀÔ·ÂÀº ´ÙÀ½°ú °°´Ù
Ç÷¹À̾î Á¢±Ù -
Ç÷¹À̾ ¸ó½ºÅÍ ±Ùó¿¡ ÀÖÀ½ Ç÷¹À̾î
¸Ö¾îÁü - Ç÷¹À̾ ¸ó½ºÅÍ¿¡°Ô¼ ¶³¾îÁ® ÀÖÀ½ Ç÷¹À̾î
°ø°Ý - Ç÷¹À̾ ¸ó½ºÅÍ¿¡°Ô °ø°Ý
À̸¦ ÀÌ¿ëÇØ »óÅÂÀüÀ̰úÁ¤À» µµÇ¥·Î ±×¸®¸é ´ÙÀ½°ú
°°´Ù

[Âü°íÀÚ·á]
- Game Programming Gems
1±Ç, p.319 ~ p.332
|