from
http://lgdc.sunsite.dk/articles/3.html
- ¸Ó¸´¸»
- µ¥ÀÌÅÍ ÁÖµµÀûÀÎ °ÔÀÓµé
- ·ÎÁ÷/¸ñÀû ±â¹Ý °ÔÀÓµé
- ½ºÅ©¸³ÆÃ
- °¡»ó ¸Ó½Å(Virtual Machine)
- DLLs
- ¸ÎÀ½¸»
1 ¸Ó¸´¸»
¼¼»ó¿¡ Á¸ÀçÇÏ´Â ÇÁ·Î±×·¥Àº µÎ °¡Áö ºÐ·ù·Î ³ª´ ¼ö ÀÖ´Ù. ù¹øÂ°´Â ¹Ù±ù ¼¼»ó°ú´Â ÀüÇô »óÈ£ÀÛ¿ë ¾øÀÌ, ³»ºÎÀûÀ¸·Î¸¸ ¹«¾ð°¡¸¦ °è»êÇØ¼ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À̰í, µÎ¹øÂ°´Â ÀÓÀÇÀÇ ÀÔ·ÂÀ» ¹Þ¾Æµé¿©¼, °è»êÀ» ÇÑ ÈÄ¿¡ °á°ú¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. ´ç¿¬È÷ ¿ÜºÎ ÀÔ·ÂÀ» ÀüÇô ¹ÞÁö ¾Ê´Â ÇÁ·Î±×·¥Àº ¾øÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸ ¿©±â¼ÀÇ ºÐ·ù´Â, °£´ÜÇÑ ¼±Åø¸À» ¹Þ¾ÆµéÀÌ´Â ÇÁ·Î±×·¥°ú ´ë·®ÀÇ ¿ÜºÎ µ¥ÀÌÅ͸¦ ÆÄÀÏ µîÀ¸·Î ¹Þ¾ÆµéÀÌ´Â ÇÁ·Î±×·¥À» ±¸ºÐÇϱâ À§ÇÑ °ÍÀÌ´Ù.
¾î¶² ÇÁ·Î±×·¥ÀÇ ±â´ÉÀ» ÀϹÝÈÇϰí, ±× ±â´ÉÀ» ½ÇÇàÇÏ´Â µ¥ ÇÊ¿äÇÑ ºÎºÐ Áß ÀϺθ¦ ÇÁ·Î±×·¥ ¿ÜºÎÀÇ µ¥ÀÌÅÍ ÆÄÀÏ·Î »©³»°Ô µÇ¸é, ±× ÇÁ·Î±×·¥Àº ÈξÀ °·ÂÇØÁø´Ù. µ¥ÀÌÅÍ ÆÄÀÏÀ» ±³Ã¼ÇÏ´Â °Í¸¸À¸·Îµµ, °°Àº ÀԷ¿¡ ´ëÇØ¼ ¿ø·¡¿Í´Â ÀüÇô ´Ù¸¥ °á°ú¸¦ Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ¸¸µé ¼ö ÀÖ´Ù´Â ¸»ÀÌ´Ù.
2 µ¥ÀÌÅÍ ÁÖµµÀûÀÎ °ÔÀÓµé
ÀÌ ¹æ½ÄÀº °£´ÜÈ÷ ¸»ÇÏÀÚ¸é, ·¹º§ÀÌ ÃÖÃÊ¿¡ ·ÎµåµÉ ¶§, ƯÁ¤ ÆÄ¶ó¹ÌÅ͵é(µ¥¹ÌÁö, µðÆæ½º µîµî)À» Àоî¿Í º¯¼ö¿¡´Ù Áý¾î³Ö¾î³õÀº ´ÙÀ½, °è»êÇÒ ¶§ ÀÌ °ªµéÀ» ¼öÁ¤ÇÏ´Â ¹æ½ÄÀÌ´Ù. ¹ë·±½ÌÀÌ À߸øµÈ °ÔÀÓÀ» ¼öÁ¤ÇÒ ¶§ Äڵ带 °Çµå¸± Çʿ䰡 ¾øÀ¸¹Ç·Î ÁÁ´Ù. Äڵ带 Á÷Á¢ ¼öÁ¤ÇÏ´Â °ÍÀº ³ë°¡´Ù¿¡´Ù, ´À¸®°í, ÀçÄÄÆÄÀÏÀ» ÇÊ¿ä·Î ÇÒ »Ó¸¸ ¾Æ´Ï¶ó, Àç¼ö°¡ ¾øÀ¸¸é »õ·Î¿î ¹ö±×¸¦ ¸¸µé¾î³¾ ¼öµµ ÀÖ´Ù.
ÀÌ·± ¹æ½ÄÀÇ ÀåÁ¡Àº ±¸Çö »Ó¸¸ ¾Æ´Ï¶ó »ç¿ëÇϱ⵵ ½±´Ù´Â °ÍÀÌ´Ù. °£´ÜÇÑ ¾Æ½ºÅ° ÆÄÀÏÀº PC ¿Í »ç¶÷ ¸ðµÎ Àб⠽±´Ù. º¹ÀâÇÑ ¹®¹ýµµ ÇÊ¿ä ¾øÀ¸´Ï, ¼öÁ¤Çϱ⵵ ½±´Ù. ÇÏÁö¸¸ ¼öÁ¤ÀÇ ¿ëÀ̼º¿¡´Â ¹Ý´ë ±ÞºÎ·Î¼ ±â´ÉÀÇ ºÎÀç°¡ µû¶ó¿Â´Ù.
¾î¶² Àü·« °ÔÀÓ¿¡¼, ¼Óµµ´Â ºü¸£Áö¸¸ È·ÂÀÌ ¾àÇÑ À¯´ÏÆ®¸¦ ±× ¹Ý´ë·Î ¹Ù²Ù¸é, »õ·Î¿î °ÔÀÓ Ç÷¹À̸¦ °æÇèÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸ ±×°ÍÀº ¾îµð±îÁö³ª Àü·« °ÔÀÓÀÌÁö, Ã౸³ª ü½º °ÔÀÓÀÌ ¾Æ´Ï´Ù. ¹Ù·Î ÀÌ·± Á¡¿¡¼ µ¥ÀÌÅÍ ÆÄÀÏÀ» »ç¿ëÇÏ´Â ¹æ½ÄÀº »ó´çÈ÷ Á¦¾àµÇ¾î ÀÖ´Ù.
3 ·ÎÁ÷/¸ñÀû ±â¹Ý °ÔÀÓµé
µ¥ÀÌÅÍ ÆÄÀÏÀÇ ±â´ÉÀ» ºñ±³Àû °£´ÜÇÏ°Ô È®Àå½ÃŰ°í ½Í´Ù¸é, ±× ¾È¿¡´Ù ¾î¶² Á¶°ÇÀ» üũÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Áý¾î³ÖÀ¸¸é µÉ °ÍÀÌ´Ù. µÎ »ç¶÷ÀÌ ÇÔ²² Ç÷¹ÀÌÇØ¼ µÑ ÁßÀÇ Çϳª°¡ Á×¾î¾ß¸¸ ³¡³ª´Â °ÔÀÓÀ̶ó¸é ´ë·« ¾Æ·¡¿Í °°Àº Çü½ÄÀ¸·Î µ¥ÀÌÅÍ ÆÄÀÏÀ» ÀÛ¼ºÇÏ°Ô µÈ´Ù.
if player2.IsDead then player1.Win ()
if player1.IsDead then player2.Win ()
ÀÌ·± Çü½ÄÀÇ µ¥ÀÌÅ͵éÀ» ±ÔÄ¢(rule) ¶Ç´Â ¸ñÇ¥(goal)¶ó°í ºÎ¸¥´Ù. Ç÷¹À̾îÀÇ "½Â¸®" ¸ñÇ¥´Â ´Ù¸¥ Ç÷¹À̾îÀÇ "Á×À½" ¸ñÇ¥°¡ ´Þ¼ºµÇ¾úÀ» ¶§ ÀÌ·ç¾îÁö°Ô µÈ´Ù. ÀϹÝÀûÀ¸·Î ÀÌ·± µ¥ÀÌÅÍ´Â ¿ÞÂÊÀÇ ¸ñÇ¥µéÀ» ¸ðµÎ ¸¸Á·½ÃŲ °æ¿ì, ¸Ç ¿À¸¥ÂÊÀÇ ¸ñÇ¥°¡ ´Þ¼ºµÇ¾ú´Ù°í Ç¥½ÃÇÏ´Â ¹æ½ÄÀ¸·Î ±¸ÇöÇÑ´Ù.
ÀÌ Äڵ尡 ÇÏ´Â ÀÏÀº ¿£ÁøÀÌ °ü¸®ÇؾßÇÏ´Â ±âº»ÀûÀÎ ¸ñÇ¥³ª Á¶°ÇµéÀ» Á¤ÀÇÇÏ´Â °ÍÀÌ´Ù. À̵éÀº ÇÁ·ÎÁ§Æ®¸¶´Ù Ʋ¸®Áö¸¸, °£´ÜÇÑ ¿¹¸¦ µé¸é "Á×À½" Ç÷¡±×ÀÌ´Ù. Ç÷¹À̾ ¾î¶² ½ÄÀ¸·Îµç Á×À¸¸é, "Á×À½" ¸ñÇ¥°¡ ÃæÁ·µÈ °ÍÀÌ´Ù. °ÔÀÓ ¾È¿¡¼ ¹«ÇÑ ·çÇÁ¸¦ µ¹¸ç, À̸¦ üũÇϰí, ¾î¶² Á¶°ÇµéÀÌ ¸¸Á·Çϸé, ±×¿¡ µû¸¥ ¿À¸¥ÂÊÀÇ Á¶°ÇÀ» ÃæÁ·½ÃŰ´Â °ÍÀÌ´Ù. À̸¦ ÀÌ¿ëÇØ¼ °£´ÜÇÑ µ¥¾² ¸ÅÄ¡¸¦ ½ºÅ©¸³Æ®·Î ¸¸µé¾î º¸¸é, ´ÙÀ½°ú °°À» °ÍÀÌ´Ù.
if player1.Win then GameOver
if player2.Win then GameOver
if player1.IsDead and player2.IsDead then GameOver
if player1.IsDead and not player2.IsDead then player2.Win
if player2.IsDead and not player1.IsDead then player1.Win
ÇÑ Ç÷¹À̾ ´Ù¸¥ Ç÷¹À̾ Á×À̸é, ±×°¡ ½Â¸®ÇÑ °ÍÀÌ´Ù. ´©±º°¡ ½Â¸®ÇÏ¸é °ÔÀÓ ¿À¹ö´Ù. (°è¼Ó ¹«ÇÑ·çÇÁ¸¦ µ¹¸é¼ À§¿¡¼ºÎÅÍ ¾Æ·¡¸¦ üũÇϹǷÎ, ´ÙÀ½ ·çÇÁ¿¡¼ °ÔÀÓ ¿À¹ö°¡ µÉ °ÍÀÌ´Ù.) ¸¸¾à ¼·Î¸¦ µ¿½Ã¿¡ Á×ÀÌ°Ô µÈ´Ù¸é, ´©°¡ ÀÌ±ä °Ç ¾Æ´ÏÁö¸¸, ±×°Í ¶ÇÇÑ °ÔÀÓ ¿À¹ö´Ù.
±âº»ÀûÀ¸·Î Àüü °ÔÀÓÀÌ °£´ÜÇÑ if-then ÄÁÆ®¸¦ ±¸¹®À¸·Î ÀÌ·ç¾îÁ® ÀÖ´Ù°í ÇÏÀÚ. ÀÌ ±¸¹®µéÀÌ ÄÚµå ¼Ó¿¡ µé¾î°¡ÀÖ´Â °ÍÀÌ ¾Æ´Ï¹Ç·Î, ¼öÁ¤À» °¡ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½°ú °°ÀÌ ¼öÁ¤Çß´Ù°í ÇØº¸ÀÚ.
if player1.IsDead then GameOver
if player2.IsDead then GameOver
if player1.Win then GameOver
if player2.Win then GameOver
if player1.AchievesGoal and player2.AchievesGoal then player1.Win and player2.Win
´©±º°¡ Çϳª°¡ Á×À¸¸é, °ÔÀÓ ¿À¹öÀÌ°í ´©±¸µµ ½Â¸®ÇÏÁö ¸øÇÑ´Ù. µÑ ´Ù »ì¾Æ ³²¾Æ¼, ¾î¶² ¸ñÇ¥¸¦ ÀÌ·é °æ¿ì¿¡¸¸, µÑ ´Ù ½Â¸®ÇÏ°Ô µÇ´Â °ÍÀÌ´Ù.
À̰ÍÀº °·ÂÇÑ Å×Å©´ÐÀÌ´Ù. µ¥¾²¸ÅÄ¡ °ÔÀÓÀÌ °£´ÜÇÏ°Ô Çù·Â(?) °ÔÀÓÀ¸·Î ¹Ù²ï °ÍÀÌ´Ù. RPG³ª ¾îµåº¥ÃÄ °ÔÀÓ °°Àº °æ¿ì¿¡´Â ¿ÏÀüÈ÷ »õ·Î¿î ½ºÅ丮 ¶óÀÎÀ» ¸¸µé¾î³¾ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù.
ÇÏÁö¸¸ ÀÌ·± if-then ¹æ½ÄÀÇ ½ºÅ©¸³Æ®·Î¸¸À¸·Î´Â "À̰ÍÀ» 10¹ø ¹Ýº¹ÇÏ¸é ³Ê´Â ½Â¸®ÇÑ´Ù"¿Í °°Àº ºñ±³Àû °£´ÜÇÑ ½ºÅ¸ÀÏÀÇ ±¸¹®µµ ¸¸µé¾î³»±â ¾î·Æ´Ù. ºÒ°¡´ÉÇÑ °ÍÀº ¾Æ´ÏÁö¸¸ - Prolog³ª LISP °°Àº rule based ¾ð¾î°¡ C °°Àº ÀýÂ÷Àû ¾ð¾î¿Í ±â´É»ó¿¡¼ °°Àº ´É·ÂÀ» °¡Áö°í ÀÖ´Ù´Â °ÍÀº Áõ¸íÀÌ µÇ¾ú´Ù. - ¿ÏÀüÈ÷ ´Ù¸¥ »ç°í ¹æ½ÄÀ» ¿ä±¸ÇÒ °ÍÀÌ´Ù. ÀÌ´Â ±âȹÀÚ³ª MOD¸¦ °³¹ßÇÏ´Â »ç¶÷ÀÌ »ó´çÇÑ ¼öÁØÀÇ Áö½ÄÀ» °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù´Â ¸»ÀÌ´Ù. ÇÑ ¿¹·Î ¸®´ª½º ±â¹ÝÀÇ Abuse ¶ó´Â °ÔÀÓÀ» µé ¼ö ÀÖ´Ù. ÀÌ °ÔÀÓÀº LISP ±â¹ÝÀÇ ½ºÅ©¸³Æ® ¿£ÁøÀ» °¡Áö°í ÀÖ¾ú´Ù. ±×·¯³ª ½ºÅ©¸³Æ® ¿£ÁøÀÇ ¼º´É¿¡ ºñÇØ¼, MOD ¼ýÀÚ°¡ »ó´çÈ÷ Àû¾ú´Ù. °Ô´Ù°¡ ´ëºÎºÐ ¿ø·¡ °³¹ßÀÚµéÀÌ ¸¸µç °ÍÀ̾ú´Ù.
4 ½ºÅ©¸³ÆÃ
Prolog/LIST ±â¹ÝÀÇ if-then ±¸Á¶´Â ¸î °¡ÁöÀÇ ¸ñÇ¥(goal)¸¦ ³ª¿Çϱâ À§ÇÑ Á¤µµ¶ó¸é ¸ô¶óµµ, ±× ÀÌ»óÀ̶ó¸é »ó´ç¼öÀÇ ÇÁ·Î±×·¡¸Ó¿¡°Ô Àͼ÷ÇÏÁö ¾ÊÀº ¹æ½ÄÀÌ´Ù. C °°Àº ¼øÂ÷Àû ¾ð¾î°¡ ´õ ¸¹ÀÌ ¾Ë·ÁÁ® ÀÖ´Ù. ±×·¯¹Ç·Î ¹º°¡ C °°Àº ¼øÂ÷ÀûÀÎ ¾ð¾î¸¦ ¸¸µé¾î³»´Â °ÍÀÌ ´õ ³ª¾Æ º¸ÀÏ °ÍÀÌ´Ù. ÆÄ¼¿Í ÀÎÅÍÇÁ¸®Å͸¦ ±¸ÇöÇϰí, À̵éÀÌ °ÔÀÓÀ» ÄÁÆ®·ÑÇÏ°Ô ¸¸µå´Â °ÍÀÌ´Ù. ÀÓÀÇÀÇ °ªµéÀ» ÀоîµéÀ̰í, ¹º°¡¸¦ º¹»çÇϰí, ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ±â´ÉµéÀ» ±¸ÇöÇØ¾ß ÇÒ °ÍÀÌ´Ù.
´Þ¸® ¸»ÇÏÀÚ¸é, °ÔÀÓ ·ÎÁ÷À» C·Î ±¸ÇöÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, µû·Î ¸¸µç ¾ð¾î(´ëºÎºÐ °£´ÜÇÑ ¹öÀüÀÇ C ¶Ç´Â ÆÄ½ºÄ®)¸¦ ÀÌ¿ëÇØ ±¸ÇöÇÑ´Ù´Â ¸»ÀÌ´Ù. ±×¸®°í ÀÌ ½ºÅ©¸³Æ®µéÀÌ ½ÇÁ¦ °ÔÀÓ ÄÚµå ¾È¿¡¼ Àß ÀÛµ¿ÇÏ°Ô È¯°æÀ» ¸¸µå´Â °ÍÀÌ´Ù.
ÀÌ ¹æ¹ýÀÇ °¡Àå Å« ÀåÁ¡Àº µðÀÚÀ̳ʿ¡°Ô »ó´çÇÑ ¼öÁØÀÇ ÀÚÀ¯¸¦ Á¦°øÇÏ°Ô µÈ´Ù´Â °ÍÀÌ´Ù. ½ºÅ©¸³Æ® ¾ð¾î¸¦ ±ØÇÑ(?)±îÁö ¸¸µé¾î³»¸é, µðÀÚÀ̳ʿ¡°Ô ¸¶Ä¡ C Äڵ带 ¼öÁ¤ÇÏ´Â °Í°ú °°Àº Á¤µµÀÇ ÀÚÀ¯µµ¸¦ ÁÙ ¼ö ÀÖ´Ù. °ÔÀÓ ÀÚü°¡ ¿ÏÀüÈ÷ µÚ¹Ù²ð ¼ö ÀÖ´Ù´Â ¸»ÀÌ´Ù. Áö»ó À¯´ÏÆ®°¡ ³¯¾Æ´Ù´Ï°Å³ª, ±× ¹Ý´ë°¡ ½ÇÇàµÉ ¼ö ÀÖ´Ù. ¹«±â°¡ º¯°æ/»èÁ¦/Ãß°¡µÉ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. ½ºÅ©¸³Æ®¿¡¼ ¾×¼¼½º°¡ °¡´ÉÇÑ ÇÔ¼ö¸¸ ¸¸µé¾î³½´Ù¸é, °ÔÀÓÀ» ¸¶À½´ë·Î ÁÖ¹«¸¦ ¼ö ÀÖ´Ù.
ÀÌ ¹æ¹ýÀÇ ´ÜÁ¡À» ´ç¿¬È÷ ÇØ¾ßÇÒ ÀÏÀÌ ¸¹´Ù´Â Á¡ÀÌ´Ù. µÉ ¼ö ÀÖ´Â ÇÑ ÀÌ¹Ì ¸¸µé¾îÁ®ÀÖ´Â °¢Á¾ ÅøµéÀ» »ç¿ëÇØ¼, ³ë·ÂµéÀ» ÁÙÀÌ´Â °ÍÀÌ ÁÁ´Ù. ¿¹¸¦ µé¾î yacc °°Àº ÅøÀ» ÀÌ¿ëÇØ¼ ÆÄ¼ ±¸ÇöÀ» ½±°Ô ÇÒ ¼ö ÀÖÀ» °ÍÀ̰í, ÀÌ¹Ì ¸¸µé¾îÁ® ÀÖ´Â C/Pascal ÀÎÅÍÇÁ¸®Å͸¦ ÇöÀç °ÔÀÓ ¿£Áø¿¡´Ù Áý¾î³Ö´Â °Íµµ °í·ÁÇØºÁ¾ßÇÒ °ÍÀÌ´Ù. ÇÏÁö¸¸ ÀÌ·± ÀÛ¾÷ÀÌ ¾ðÁ¦³ª °¡´ÉÇÑ °ÍÀº ¾Æ´Ï´Ù. ¿Ö³ÄÇϸé ÀÌ·± µµ±¸µé Áß¿¡´Â ¼Óµµ¸¦ º°·Î °í·ÁÇÏÁö ¾ÊÀº °ÍµéÀÌ ¸¹±â ¶§¹®ÀÌ´Ù. ½ºÅ©¸³Æ® ¿£ÁøÀÌ ¾Æ¹«¸® ÁÁ¾Æµµ, ±× ¿£ÁøÀÌ °ÔÀÓÀ» 10 fps·Î ¸¸µé¾î ¹ö¸°´Ù¸é, °í·ÁÇÒ °¡Ä¡°¡ ¾ø´Ù´Â ¸»ÀÌ´Ù. ÀÌ·± ¹®Á¦ ¶§¹®¿¡ °á±¹ ½ºÅ©¸³Æ® ¿£ÁøÀ» ¹Ù´Ú¿¡¼ºÎÅÍ Á¦ÀÛÇÏ´Â °÷ÀÌ ¸¹´Ù. ÇÏÁö¸¸ °á±¹ ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÏ´Â »ç¶÷ÀÌ ÇÁ·Î±×·¥¿¡ ´ëÇØ ¾î´À Á¤µµÀÇ Áö½ÄÀ» °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù´Â ´ÜÁ¡ÀÌ ÀÖ´Ù.
ÀÌ·± ¹æ¹ýÀÇ ´ëÇ¥ÀûÀÎ ¿¹°¡ ÄùÀÌÅ© 1¿¡¼ ¾²ÀÎ QuakeC ½ºÅ©¸³Æ®´Ù.
5 °¡»ó ¸Ó½Å(Virtual Machine)
ÀÎÅÍÇÁ¸®ÅÍ¿¡ ÀÇÇØ¼ ¹ß»ýÇÏ´Â ¼º´ÉÀÇ °¨¼Ò´Â ¿øÇÏÁö ¾Ê°í, C/C++ÀÇ °·ÂÇÔÀ» ¿øÇÒ ¶§, »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ý Áß¿¡ Çϳª°¡ °¡»ó ¸Ó½ÅÀ» Á÷Á¢ ±¸ÇöÇÏ´Â °ÍÀÌ´Ù. ÀÌ ¸»Àº ¼Ò½º Äڵ带 ÄÄÆÄÀÏ/¸µÅ©Çؼ ¹èÆ÷ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, ¼Ò½º »óÅ·Π°ÔÀÓ°ú °°ÀÌ ¹èÆ÷ÇÑ ´ÙÀ½, ½ÇÁ¦·Î °ÔÀÓÀ» ½ÇÇàÇÒ ¶§ ÄÄÆÄÀÏÇØ¼, Á÷Á¢ ±¸ÇöÇÑ °¡»ó ¸Ó½Å »ó¿¡¼ µ¹¸°´Ù´Â ¸»ÀÌ´Ù.
´ç¿¬ÇÏÁö¸¸ À̰ÍÀº ²Ï ½É°¢ÇÑ ÇÁ·ÎÁ§Æ®´Ù. ÄÄÆÄÀÏ·¯, ¹ÙÀÌÆ®ÄÚµå Á¤ÀÇ, °¡»ó¸Ó½ÅÀ» ±¸ÇöÇØ¾ß ÇÑ´Ù. ÄÄÆÄÀÏ·¯´Â C/C++¿Í °°°Å³ª ±× ÀÌ»óÀÇ ¼º´ÉÀ» °¡Áø ¾ð¾î¸¦ ÄÄÆÄÀÏÇØ¾ßÇϰí, °¡»ó¸Ó½ÅÀº ¸Þ¸ð¸®¸¦ ¸¹ÀÌ ¼Ò¸ðÇÏÁö ¾ÊÀ¸¸é¼, ¸Å¿ì »¡¶ó¾ß ÇÏ´Â µ¥´Ù°¡, °ÔÀÓ °ü·Ã º¯¼ö¿Í ÇÔ¼ö¸¦ ¾×¼¼½ºÇÒ ¼ö ÀÖµµ·Ï ¸¸µé¾î¾ßÇÑ´Ù. ÀÌ·± ÀÛ¾÷Àº ÀÌ¹Ì ¸¸µé¾îÁ® ÀÖ´Â ÅøµéÀ» »ç¿ëÇÏÁö ¾Ê´Â ÀÌ»ó °ÅÀÇ ºÒ°¡´É¿¡ °¡±õ´Ù. ÀÌ·¯ÇÑ ¹æ¹ýÀ» ÅÃÇÑ °ÔÀÓ Áß¿¡ À¯¸íÇÑ °ÍÀÌ ¾ð¸®¾ó(°³¹ß¿¡ 3³âÀÌ °É·È´Ù.)ÀÌ´Ù. ¾ð¸®¾óÀº AI ¹× °ÔÀÓ ¼¼°è Àüü°¡ C++À» ±â¹ÝÀ¸·Î È®ÀåÇÑ ¾ð¾î¿Í °¡»ó ¸Ó½Å¿¡ ÀÇÇØ¼ µ¿ÀÛÇÑ´Ù. ÄùÀÌÅ© 3 ¾Æ·¹³ªµµ ÀÌ ¹æ¹ýÀ» ÅÃÇß´Ù. »ç½Ç ÀÌ·± °¡»ó ¸Ó½ÅµéÀÌ ±æÃ£±â(pathfinding) µî°ú °°Àº ÀÛ¾÷¿¡ »ç¿ëÇÒ Á¤µµ·Î ºü¸¥ °ÍÀº ¾Æ´ÏÁö¸¸, °ÔÀÓ Ç÷¹ÀÌ ÀÚü´Â °ÅÀÇ ´ëºÎºÐ °¡»ó ¸Ó½ÅÀ» ÅëÇØ¼ ÀÌ·ç¾îÁø´Ù.
ÀÚ¹Ù °¡»ó ¸Ó½ÅÀ» °ÔÀÓ ¾È¿¡¼ Àç»ç¿ëÇÒ ¼ö ÀÖ´Ù´Â Á¡À» ¾Ë¾ÆµÎ±â ¹Ù¶õ´Ù. ÀÚ¹Ù ÇÁ·Î±×·¥Àº JNI¸¦ ÅëÇØ¼ È®ÀåµÉ ¼ö ÀÖ°í, ÀÌ´Â °ÔÀÓ°ú ¾î´À Á¤µµ ¸Â¾Æ¶³¾îÁø´Ù. °Ô´Ù°¡ Embedded Java ±â¼úÀ» ÀÌ¿ëÇØ °¡»ó ¸Ó½ÅÀ» °ÔÀÓÀÇ ÀϺημ ·ÎµåÇÒ ¼öµµ ÀÖ´Ù. ÀÌ´Â °ÔÀÓ ·ÎÁ÷À» ÀÚ¹Ù·Î ÀÛ¼ºÇÑ ´ÙÀ½, ¹ÙÀÌÆ® ÄÚµå·Î ÄÄÆÄÀÏÇØ¼, À̰ÍÀ» °ÔÀÓ ¾ÈÀÇ °¡»ó ¸Ó½ÅÀ» ÅëÇØ ½ÇÇàÇÒ ¼ö ÀÖ´Ù´Â ¸»ÀÌ´Ù. ÀÌ·± ¹æ¹ý Áß¿¡ °¡Àå Èï¹ÌÀÖ´Â °ÍÀÌ Q2Java ÇÁ·ÎÁ§Æ®(ÄùÀÌÅ©2 ¾È¿¡´Ù ÀÚ¹Ù °¡»ó ¸Ó½ÅÀ» Áý¾î³Ö´Â ÇÁ·ÎÁ§Æ®)´Ù.
Java ÆäÀÌÁö¸¦ Âü°í.
6 DLLs
°¡»ó ¸Ó½ÅÀÇ °¡Àå ¸ÚÁø Á¡Àº, ½ÇÁ¦ °ÔÀÓ ¿£ÁøÀÌ °ÔÀÓ Ç÷¹À̸¦ À§ÇÑ ÀÏÁ¾ÀÇ Åø ¹Û¿¡ µÇÁö ¾Ê´Â´Ù´Â Á¡ÀÌ´Ù. C/C++ Á¤µµÀÇ ¾ð¾î¸¦ ¾Æ´Â »ç¶÷À̶ó¸é ¹Ù·Î °ÔÀÓ ÆÄÀÏÀ» ¼öÁ¤Çؼ ´Ù¸¥ °ÔÀÓÀ» ¸¸µé¾î³¾ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸ ÀÌ·± À¯¿¬¼ºÀº À§¿¡¼µµ ¸»ÇßµíÀÌ ¾öû³ ³ë·ÂÀ» ÇÊ¿ä·Î ÇÑ´Ù. ÀÌ¹Ì ¼ö¸¹ÀÌ ³ª¿ÍÀÖ´Â C/C++ ÄÄÆÄÀÏ·¯¸¦ µû·Î ¸¸µé¾î¾ß Çϰí, ÀÌ ÄÄÆÄÀÏ·¯°¡ ¸¸µé¾î³»´Â ¹ÙÀÌÆ®Äڵ带 ºü¸£°Ô ½ÇÇàÇÒ ¼ö ÀÖ´Â °¡»ó¸Ó½Å, Áï CPU¸¦ ¸¸µé¾î¾ß ÇÑ´Ù´Â ¸»ÀÌ´Ù. ±×·¯¹Ç·Î ´õ ½Î°Ô ¸ÔÈ÷´Â ´ë¾ÈÀÌ ÇÊ¿äÇÏ´Ù. ¹ÙÀÌÆ® Äڵ带 ¸¸µé¾î³»´Â µ¥´Â ±×³É ÀÏ¹Ý ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇϰí, °ÔÀÓ ·ÎÁ÷Àº ´Ù¸¥ ¸ðµâÀ̳ª ¶óÀ̺귯¸®(À©µµ¿ì¿¡¼´Â DLL, À¯´Ð½º °è¿¿¡¼´Â lib)¿¡ µÎ´Â ¹æ¹ýÀÌ ´ë¾È ÁßÀÇ ÇϳªÀÏ °ÍÀÌ´Ù. ÀÌ ¶óÀ̺귯¸®µéÀ» ÄÄÆÄÀÏÇØ¼ ¸µÅ©ÇÒ ¼ö ÀÖ´Â µµ±¸¸¸ Á¦°øÇÑ´Ù¸é, ÄÄÆÄÀÏÀ» ÇÒ ¼ö ÀÖ´Â »ç¶÷ÀÌ¸é ´©±¸³ª °ÔÀÓ ·ÎÁ÷À» »õ·Î ¸¸µé¾î³¾ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
±â¼úÀûÀÎ ¹®Á¦Á¡¸¸ ÇØ°áÇÑ´Ù¸é, °·ÂÇÑ ±â´ÉÀ» Á¦°øÇÒ ¼ö ÀÖ´Ù. °ÔÀÓÀÇ °¡Àå ¹Ì¼¼ÇÑ ºÎºÐ±îÁö ºñ±³Àû ½±°Ô ¼öÁ¤ÇÒ ¼ö ÀÖ´Â µ¥´Ù°¡, CPUÀÇ ¼º´ÉÀ» 100% Ȱ¿ëÇÒ ¼ö ÀÖ´Ù. °Ô´Ù°¡ ½ÇÁ¦ °ÔÀÓ ±¸ÇöÀ̳ª ¼öÁ¤Àº ÃÖÁ¾ »ç¿ëÀÚ¿¡°Ô º¸ÀÌÁö ¾Ê´Â´Ù. (¹Ì¼ÇÆÑ µîÀ» Áö¿øÇØ¾ß ÇÏ´Â »ó¿ë°ÔÀÓ¿¡ À¯¿ëÇÏ´Ù.) ÇÏÁö¸¸ ¿©±â¿¡µµ µÎ °¡Áö ¹®Á¦°¡ ÀÖ´Ù. ù¹øÂ°´Â °ÔÀÓ ·ÎÁ÷ÀÇ ¼öÁ¤ÀÌ Ç÷§Æû¿¡ Á¾¼ÓÀûÀÌ°Ô µÈ´Ù´Â °ÍÀÌ´Ù. ¿©·¯ Ç÷§Æû¿¡ Æ÷ÆÃµÇ¾î¾ßÇÏ´Â °ÔÀÓÀ̶ó¸é ÀÌ ¹®Á¦´Â »ó´çÈ÷ ½É°¢ÇÏ´Ù. µÎ¹øÂ°´Â À§¿¡¼ ³ª¿Â ¸ðµç ¹æ¹ýµéÀÌ ½ºÅ©¸³Æ®¸¦ ÀÏÁ¾ÀÇ ¾ÈÀüÇÑ È¯°æ¿¡¼ ¼öÇàÇß´ø °Í¿¡ ¹ÝÇØ, ÀÌ ¹æ¹ýÀº ¹Ù·Î CPU¸¦ ÀÌ¿ëÇØ¼ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÑ´Ù´Â Á¡ÀÌ´Ù. Áï ÇÁ·Î±×·¥ÀÌ Å©·¡½¬µÉ È®·üÀÌ ÈξÀ ³ô´Ù.
7 ¸ÎÀ½¸»
ÇÁ·Î±×·¥ °æÇèÀÌ Á» ÀÖ´Ù¸é µ¥ÀÌÅÍ ÆÄÀÏÀ» »ç¿ëÇÏ´Â ¹æ¹ý Á¤µµ´Â ´ëºÎºÐ ¾Ë °ÍÀÌ´Ù. ±¸ÇöÀÇ ¿ëÀ̼º¿¡ ºñÇØ ¾ò´Â ÀÌÁ¡ÀÌ ³Ê¹« Å©±â ¶§¹®¿¡ ´ëºÎºÐÀÇ »ç¶÷µéÀÌ ÀÌ ¹æ¹ýÀ» ½º½º·Î ¹ß¸í(?)ÇÑ´Ù. ¾î·µç ÀÌ ±Û¿¡¼´Â ÈξÀ °·ÂÇϰí, ±×¿¡ µû¶ó ÈξÀ º¹ÀâÇØÁö´Â ¹æ¹ýµéÀ» ¼Ò°³Çß´Ù. ´ÙÀ½ °ÔÀÓ ÇÁ·ÎÁ§Æ®¸¦ ½ÃÀÛÇÒ ¶§´Â ½Ã°£°ú ±¸Çö °¡´É¼ºÀ» Àú¿ïÁúÇØ¼ °ÔÀÓ ÇÁ·ÎÁ§Æ®¿¡ Àû´çÇÑ °ÍÀ» ¼±ÅÃÇϵµ·Ï Ç϶ó.
SeriousMoin v1 (koMoinMoin 1.0a4 Modified)