ãã®åéã§ã®ç§ã®çµéšã¯ãGas Powered Gamesã§Supreme Commanderãšã³ãžã³ã䜿çšããŠåŸããããã®ã§ãã ããŒã¿ãã¹ãäžã«ãStarcraftãšWarcraft 3ã«ãåæã®åé¡ããã£ããããäžè¬ã«åãããã«æ©èœãããšèšããŸãã ç°¡åã«ããããã«ãæé«åžä»€å®ãšã³ãžã³ã«ã€ããŠèª¬æããŸãã ä»ã®ã²ãŒã ãšã®é¡äŒŒç¹ãèŠã€ããããšã¯ãèªè ã®ããã®æŒç¿ãšããŠæ®ããŸã:)
å¿ èŠæ¡ä»¶
ãŸããã²ãŒã ã®èŠä»¶ã¯äœã§ããïŒ ããããç¥ããããããã«ãSupreme CommanderïŒ2006ïŒã®æåã®éšåã®ãããªããããŸãã
ãã®ã²ãŒã ã¯ãã€ã³ã¿ãŒããããä»ãããããã¯ãŒã¯ã²ãŒã ã§8人ã®ãã¬ã€ã€ãŒããµããŒãããå¿ èŠããããåè»ã«ã¯æ°çŸã®ãŠãããããããŸãã ãããã¯1ã²ãŒã ã§æ°ååäœã§ãã ãšã·ã¥ãã³ç«ã ã·ã¥ãŒãã£ã³ã°ã²ãŒã ã®å žåçãªã¯ã©ã€ã¢ã³ã/ãµãŒããŒã¢ãããŒãã¯ãããã§ã¯æããã«é©åã§ã¯ãããŸããã ãŠããããéåžžã«å€ããããã»ãšãã©ã®ãã¬ã€ã€ãŒã䜿çšã§ãããããã¯ããã«å€ãã®åž¯åå¹ ãå¿ èŠã«ãªããŸãã
ã§ã¯ãã©ã®ããã«ã¿ã¹ã¯ã«ã¢ãããŒãã§ããŸããïŒ..
åæãšã³ãžã³ã¢ãŒããã¯ãã£
... 1ã¹ãããã§å®å šã«åæåãããã¢ãŒããã¯ãã£ã§ïŒ åæãšã³ãžã³ã§
åã¯ã©ã€ã¢ã³ãã¯åãã³ãŒããåãé床ã§å®è¡ããŸãã å°ãèããŠã¿ãŠãã ããã Supreme Commander 8ãã¬ã€ã€ãŒã²ãŒã ã§ã¯ãåãã¬ã€ã€ãŒã¯åãç¶æ ã®ã²ãŒã ãä¿åããåãã³ãŒããå®è¡ããŸãã ãŠãããã®ç¶æ ïŒäœçœ®ãå¥åº·ãªã©ïŒã«é¢ããæ å ±ããããã¯ãŒã¯çµç±ã§éä¿¡ãã代ããã«ããã¬ã€ã€ãŒ2ãå ¥åããããŒã ã®ã¿ãéä¿¡ã§ããŸãã ãã¹ãŠã®ãã¬ã€ã€ãŒãåãã²ãŒã ç¶æ ã§ãããåãå ¥åãåŠçãããå Žåãçµæã®ç¶æ ãåãã§ããå¿ èŠããããŸãã
åãåçã§ãã·ã¥ãŒãã£ã³ã°ã²ãŒã ãå«ãããªã¬ãŒãããã²ãŒã ã®ç¹°ãè¿ããåäœããŸãã ãªãã¬ã€ãã¡ã€ã«ã®ãµã€ãºããªããããªã«å°ããã®ãçåã«æã£ãããšã¯ãããŸãããïŒ ããã¯ããã®ãããªãã¡ã€ã«ã«ã¯ãŠãŒã¶ãŒå ¥åã®ã¿ãä¿åãããããã§ãã 次ã«ãã²ãŒã ãéå§ãããªãã¬ã€ãã¡ã€ã«ããå ¥åããå ã®ã²ãŒã ãšåãçµæãååŸããŸãã ãã®ãããã²ãŒã ãæŽæ°ãããšãã«ç¹°ãè¿ããã¡ã€ã«ãåäœãåæ¢ããããšãå€ã3 ãå·»ãæ»ãã§ããªãããšããããããŸã4 ã ã¡ãªã¿ã«ãåãçç±ã§ãå€ãã®æŠç¥ã¯ã²ãŒã äžã®æ°ãããã¬ã€ã€ãŒã®æ¥ç¶ããµããŒãããŠããŸãã-æ°ãããã¬ã€ã€ãŒãæ¥ç¶ããã«ã¯ãã²ãŒã ã®å®å šãªç¶æ ã圌ã«è»¢éããå¿ èŠããããŸãã 3000åäœã®ã²ãŒã ã®å Žåãããã«ã¯æéãããããããŸãã
ã¬ãã«
æåã«ãããªãèŠãŠãã ããã ã²ãŒã ã¯æ¯ç§ããã€ã®ãã¬ãŒã ã§é²è¡ããŠãããšæããŸããïŒ æ£è§£ã¯10 fpsã§ãã ãåŸ ã£ãŠïŒ 圌女ã¯ãã£ãšæ»ããã«èŠããŸãïŒ ã¯ã-åæã«ãããã äžè¬çã«ãã²ãŒã ã¯2ã€ã®åšæ³¢æ°ãåæã«äœ¿çšããŸãã
SupComãšã³ãžã³ã¯ãã·ãã¥ã¬ãŒã·ã§ã³ãšãŠãŒã¶ãŒãšãã2ã€ã®ã¬ãã«ã䜿çšããŸãã ã·ãã¥ã¬ãŒã·ã§ã³ã¬ãã«ã¯ã10ãã¬ãŒã /ç§ã®åºå®åšæ³¢æ°ã§å®è¡ãããŸãã ãæ¬ç©ã®ã²ãŒã ããšèŠãªãããšãã§ããŸãã ãã¹ãŠã®ãŠãããããã¹ãŠã®AIãããã³ãã¹ãŠã®ç©çåŠã¯ãæ¯ç§10åå®è¡ãããSimTické¢æ°ã§æŽæ°ãããŸãã åSimTickã¯100ããªç§æªæºã§åäœããã¯ãã§ããããããªããšãã²ãŒã ã¯ã¹ããŒã¢ãŒã·ã§ã³ã§åäœããŸãã ãã«ããã¬ã€ã€ãŒã²ãŒã ã§ã¯ãäžéšã®ãã¬ã€ã€ãŒã100ããªç§ã§SimTickãå®å šã«åŠçã§ããªãã£ãå Žåãä»ã®ãã¹ãŠã®ãã¬ã€ã€ãŒã¯åæ¢ããé ããŠãããã¬ã€ã€ãŒãåŸ ã€å¿ èŠããããŸãã
ãŠãŒã¶ãŒã¬ãã«ã¯ãã«ãã¬ãŒã ã¬ãŒãã§å®è¡ãããŸãã ãã®ã¬ãã«ã¯æä»çã«ã°ã©ãã£ãã¯ãšèŠãªãããšãã§ããŸãã ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãã¬ã³ããªã³ã°ãã¢ãã¡ãŒã·ã§ã³ãããã«ãŠãããã®äœçœ®ã60 fpsã§èšç®ã§ããŸãã åUserTickã¯ããã«ã¿äžã«æŽæ°ãããŸãããã«ã¿ã¯ãã²ãŒã ã®ç¶æ ãäžéå€ïŒããšãã°ãäžéãŠãããã®äœçœ®ïŒã«è£éããããã«äœ¿çšãããŸãã ã¡ã€ã³ãšã³ãžã³ã³ã¢ã¯ããªãäœãåšæ³¢æ°ã§åäœããŸãããã²ãŒã ãã¹ã ãŒãºã«è¡šç€ºããã³ãã¬ã€ã§ããã®ã¯ãã®ããã§ãã
決å®è«
ãã¡ãã£ãšåŸ ã£ãŠïŒãè³¢ãèªè ã¯å«ã¶ã ããã ãåãã¬ã€ã€ãŒãã²ãŒã ã®ç¶æ ãåå¥ã«æŽæ°ããå Žåãããã¯ã²ãŒã ã®ã·ãã¥ã¬ãŒã·ã§ã³ãå®å šã«æ±ºå®è«çã§ããããšãæå³ããŸããïŒã ãããéæããã®ã¯é£ããã§ããïŒ ã¯ã ç¹ã«ä»æ¥ã®ãã«ãã¹ã¬ããã®äžçã§ã¯ã
ãšã³ãžã³ã®éçºè ã«ãšã£ãŠå€ãã®ãã©ãã«ãæµ®åå°æ°ç¹æ°ããããããŸãã ãã®ãããã¯ã詳现ã«èª¬æãã代ããã«ãGlenn Fielder- Floating Point Determinismã«ããçŽ æŽãããæçš¿ãžã®ãªã³ã¯ãæäŸããŸãã
圌ãžã®ã³ã¡ã³ãã®äžã§ããšãªã€ã¯æé«åžä»€å®ã«ã€ããŠè°è«ããŠããŸãã ããã»ããµãIEEE754æšæºã«å³å¯ã«åŸãããšã匷å¶ãããšãã»ãšãã©ã®åé¡ã解決ããŸãã ãããããã®ãããªè§£æ±ºçã¯çç£æ§ã®äœäžãæå³ããã²ãŒã ã¯äžç¢ºå®ãªçµæã§èšç®ãå®è¡ã§ããŸããïŒãã ããããã¯ãšã«ããè¡ãããã¹ãã§ã¯ãããŸããïŒã
å éšé 延
åæãã«ããã¬ã€ã€ãŒã²ãŒã ã«ã¯ãããã€ãã®æ¬ ç¹ããããŸãã 巚倧ã§å®å šã«æ±ºå®çãªã·ãã¥ã¬ãŒã¿ãäœæããè€éãã«å ããŠãå ¥ååŠçã«é 延ããããŸãã ãã«ããã¬ã€ã€ãŒã²ãŒã ã®åãŠãŒã¶ãŒããåãå ¥åã䜿çšããŠã²ãŒã ã®åãç¶æ ãæŽæ°ããæ¹æ³ã«ã€ããŠã¯æ¢ã«æžããŸããã ããã¯ããã¹ãŠã®ã¯ã©ã€ã¢ã³ãããããåŠçããã·ãã¥ã¬ãŒã·ã§ã³ã®ã¹ãããã«åæããå Žåã«ã®ã¿ãæ°ããå ¥åãåŠçãããããšãæå³ããŸãïŒ
ããšãã°ãAãBãCã®3人ã®ãã¬ã€ã€ãŒãSimTickãèµ·åããŸã[1]ã ãã®æç¹ã§ããã¬ã€ã€ãŒAã¯ãŠãããã«æ»æããã³ãã³ããäžããŸãã UIã¯ããã«å¿çã衚瀺ããŸãã UserTickã¯æ¯ç§60åå®è¡ãããŸãã ã·ã³ã°ã«ãã¬ã€ã€ãŒã²ãŒã ã§ã¯ããã®ã³ãã³ãã¯SimTick [2]ã§åŠçãããŸãïŒé 延0ã100ããªç§ïŒã ãã ãã3人ã®ãã¬ãŒã€ãŒå šå¡ãåãçµæãåŸãã«ã¯ãåãSimTickå®è¡ã§ããŒã ãåŠçããå¿ èŠããããŸãã SimTick [2]ã§ã³ãã³ããåŠçããããšãã代ããã«ããã¬ãŒã€ãŒAã¯SimTick [4]ã§å®è¡ããããŒã¿ãšå ±ã«ãããã¯ãŒã¯ãã±ããããã¬ãŒã€ãŒBãšCã«éä¿¡ããŸãïŒé 延200ã300ããªç§ïŒã ããã«ããããã¹ãŠã®ãã¬ã€ã€ãŒã«ããŒã ãç²åŸããæéãäžããããŸãã å ¥åæ å ±ãåä¿¡ãããªãã£ãããæééãã«ç¢ºèªãããªãã£ãããããšãã²ãŒã ãã¯ã©ãã·ã¥ããå¯èœæ§ããããŸãã SupComã§ããã«äœ¿çšãããã¡ã«ããºã ã¯ããããŸããããå€æããå Žåã¯ãã®æçš¿ãæŽæ°ããŸãã å ¥åãåŠçããå¿ èŠãããSimTickå®è¡ã®ç¹å®ã®æ°ã¯ãp2p 5ããããžã䜿çšããŠåçã«æ±ºå®ãããŸãã
ãŠãŒã¶ãŒãã¯ãªãã¯ããŠãããŠããããåå¿ãããŸã§ã®é 延ã¯ãåžžã«å°ãªããšã0ã100ããªç§ïŒæ¬¡ã®SimTickïŒã§ãã ããã¯ããã€ãã®æ¹æ³ã§ãã¹ã¯ã§ããŸãã ã€ã³ã¿ãŒãã§ãŒã¹ã¯éåžžããã«åå¿ããŸã-äœããç¹æ» ããé©åãªé³ãèãããŸãïŒãLife for AyurïŒããŸãã¯ãZug Zugãã
ã·ã³ã°ã«ãã¬ã€ã€ãŒã²ãŒã ã§ã¯ããã¯æ£åžžã§ããããã«ããã¬ã€ã€ãŒããã«ã§ã¯é 延ãé¡èã«ãªãå§ããæ°çŸããªç§ã«éããŸãã UserTickã§ã€ã³ã¹ã¿ã³ãã¬ã¹ãã³ã¹ã¢ãã¡ãŒã·ã§ã³ãè©ŠããŠã¿ããã£ãã®ã§ãã ããšãã°ã移åããã³ãã³ããæå®ãããšããŠãŒã¶ãŒã¬ãã«ã¯ãŠãããããã£ãããšç§»åãå§ããã³ãã³ããå®éã«å®è¡ããããšãã«ã·ãã¥ã¬ãŒã·ã§ã³ã§ç€ºããããã€ã³ãã®æ¹åã«ç§»åããããã¯ã¹ãããŸãã ããã¯ãDOTAãDemigodã®ãããªãããããããããã²ãŒã ã§éåžžã«åœ¹ç«ã¡ãŸãã ç¹ã«åŠçããªããã°ãªããªã極端ãªã±ãŒã¹ãæ¬åœã«ããã®ã§ãç§ã¯å®éã«å®è£ ãåãäžããŸããã§ããã 誰ãããããè¡ã£ãå Žåã¯ãã³ã¡ã³ãã§ç»é²ã解é€ããŠãã ããã :)
éåæ-å°çããã®ãã°
ãŠãããŒã¹ã§æãé£ãããã°ã®1ã€ã¯ãéåæãã°ã§ãã ãããã¯ããªãéªæªãªééã§ãã ãšã³ãžã³ã®äž»ãªåæã¯ããã¹ãŠã®ãã¬ã€ã€ãŒãå®å šã«åæããŠããããšã§ãã ããã§ãªãå Žåã¯ã©ããªããŸããïŒ ç°ãªããã¬ã€ã€ãŒã®ã·ãã¥ã¬ãŒã·ã§ã³ãç°ãªãå Žåã¯ã©ããªããŸããïŒ ã«ãªã¹ã æãã èŠãã¿6 ã
SupComã§ã¯ãã²ãŒã ã®ç¶æ å šäœã1ç§ã«1åããã·ã¥ãããŸãã äžéšã®ã¯ã©ã€ã¢ã³ãã§ããã·ã¥ãäžèŽããªãå Žåãã³ã³ãµãŒãã¯çµäºããŸãã ã²ãŒã ãªãŒã㌠çµããã ãŠã£ã³ããŠããããã¢ãããããåæãšã©ãŒããšããã¡ãã»ãŒãžã衚瀺ãããŸããã²ãŒã ãçµäºããå¿ èŠããããŸãã SimTickã®çµæã®äžéšãäžèŽããªãã£ããããã²ãŒã ã®ç¶æ ãç°ãªããŸãã ã·ãã¥ã¬ãŒã·ã§ã³ã®ãã¹ã¯åå²ããããã«æªåããŸãã ããã§ã¯å埩ã¡ã«ããºã ã¯æäŸãããŸããã
åæå€ãã¯éåžžãããã°ã©ããŒã®ãšã©ãŒã®çµæã§ãã åæ解é€ã¯ã60åé以äžç¶ãã²ãŒã ã®5ïŒ ã§åçã§ããŸãã ãã®ãããªãšã©ãŒãèŠã€ããŠä¿®æ£ããã«ã¯ãéåžžãã²ãŒã äžã«ã³ã³ãœãŒã«ã«åºåãããã¡ã¢ãªã¹ããŒã¿ã¹ã®ããã·ã¥ã®ãã€ããªæ€çŽ¢ãå¿ èŠã§ãã åçã®å¯èœæ§ãäœãéåæã§ã¯ãããã«ããã³ã³ãœãŒã«ã«èšå€§ãªæ°ã®ã¡ãã»ãŒãžã衚瀺ãããŸããã6å°ã®ãã·ã³ãã·ãã¥ã¬ãŒã·ã§ã³ãã§ããã ãéãèšç®ããäžæããã®ãåŸ ã¡ãŸãã ããã§ååã§ãªãå ŽåãåæãåããŠããªãæãäžè¬çãªçç±ã®1ã€ã¯ã宣èšãããŠããªãå€æ°ã§ãããšä»ãå ããŸãã
ãããŽããã®æŽå²
SupComãšã³ãžã³ã«é¢ããç§ã®äœæ¥ã®ã»ãšãã©ã¯ãDemigodã§ã®äœæ¥äžã«è¡ãããŸãããDemigodã¯ãšã³ãžã³ã®ä¿®æ£ããŒãžã§ã³ã䜿çšããŠããŸããã
éçºã®æåŸã«é·ãéãç§ã«å²ãåœãŠãããããŸãã«ç¹°ãè¿ãããéåæãã°ããããŸããã ãããŽããã§ã¯ãå°ããªå€§ç ²ã®é€ã®çŸ€ããå°å³ã®åšããèµ°ãåããŸããã ãŸããéåžžã«ãŸããªã±ãŒã¹ã§ã¯ãç°ãªããã·ã³äžã®åã ã®ã¬ãã³ã°ã®äœçœ®ãæ°ã»ã³ãã¡ãŒãã«ç°ãªããŸããã ç¡å®³ã«èãããŸãããæ¬è³ªçã«ã¯è¶ã®çŸœã°ããã§ãããããããåé¡ã®ããªã±ãŒã³ãå§ãŸããŸãã
ãã®ãã°ãä¿®æ£ã§ãããã©ããããããªãã£ãããšãæ£ç¢ºã«èŠããŠããããªãŒãããã°ã©ããŒã¯æ¬¡ã®ããã«è¿°ã¹ãŠããŸãã ç§ã¯ããªããä¿¡ããŠããŸãã æ¯æ10åéã®äŒè°ããããæ¯æ¥ç§ã®ã¬ããŒãã¯çããŠã·ã³ãã«ã§ããïŒãéåæã®ãã³ããã ã»ãŒ1é±éã®çæ°ã®æ·±ããžã®éäžã®åŸããšã©ãŒã®åå ãèŠã€ããŸããã äºåç·šãèŠèŽããå Žåãäžéšã®ããŒããŒã§ã¯æµã空äžã«æãåºãèœåãèŠãŸããã 巚倧ãªæ©è¡åããã³ããŒãäžãããšããŠããããé£ã³åããŸãã ãã°ã¯ãã¹æ€çŽ¢ã·ã¹ãã ã®ãã€ã³ã¿ã®1ã€ã«ãããã©ãã«ããã€ã³ãããŠããŸããã§ããããã®çç±ã¯ãçéžåŸã«ãŠããããåçŽã«å§¿ãæ¶ããããã§ãã
ããããããã¯åæãåããªããªãã»ã©ååã§ã¯ãããŸããã§ããã ãŸã第äžã«ããŠãããã¯ããã€ãã®ç¹å¥ãªã¹ãã«ã®1ã€ã«ãã£ãŠæ®ºãããªããã°ãªããŸããã§ããã ããã¯åœŒããã¹ãã¡ã€ã³ããŒããå€ããå®ã¶ãããã®ãã€ã³ã¿ãŒãæ®ããŸããã ã¡ã¢ãªãããŒãžã£ã¯ããªã¢ãŒãã³ã³ããŒãã³ãã®ã¡ã¢ãªãããã®å 容ãå€æŽããã«ããªã³ã¯ããã空ãé åã®ãªã¹ãã«ç§»åããŸããã ãã®åŸããŠããããçéžããåã«ãã¡ã¢ãªã®æ°ããå²ãåœãŠãçºçããå¿ èŠããããŸããã ãã®éžæã¯ãæè¿åé€ããããããã¯ã«åœ±é¿ããã¯ãã§ãã ãã®åŸãéåæãçºçããŸããã ãã€ã³ã¿ãŒãNULLã«èšå®ãããšãåé¡ã解決ããŸããã
æçµçãªèã
ããã¯ãæé«åžä»€å®ã䜿çšããåæãšã³ãžã³ã®éåžžã«çãæŠèŠã§ããã ç§ã¯ãå€ãã®å€ãã²ãŒã ãã»ãŒåãæ¹æ³ã§é 眮ãããããšãç¥ã£ãŠããŸãã ããããæåŸã®äžä»£ã¯ãç¹ã«å ¥åé 延ãšæŠãããã«ãäœããã®æ°ããããªãã¯ã䜿çšããŠããã§ãããã ç§ã¯StarCraft 2ã«åæããšããŠããªãããšãç¥ã£ãŠããã®ã§ãããããåæ§ã«åäœããŸãã ä»ã«èŠãã¹ãã²ãŒã ã¯ãããŒããŒãºãªããã¥ãŒã¢ãŒã¹ãŸãã¯ãªãŒã°ãªãã¬ãžã§ã³ãã§ãã ãããã¯SupComã»ã©è€éã§ã¯ãªããéåžžã«ã¹ã ãŒãºã«åäœããŸãããç§ã¯ããããå解ããŸããã§ããããããã«äœ¿çšããæ¹æ³ãããããŸããã
- Haloã¯ãCampaign Co-opã¢ãŒããšFirefightã¢ãŒãã§åæã¹ãããã®åæã¢ãã«ã䜿çšããŸã
- SupComã§ã¯ãå ¥åã¯ãŠãããã°ã«ãŒããžã®ã³ãã³ããšããŠåŠçãããŸãã 移åãæ»æãé²åŸ¡ãèœåã®äœ¿çšãªã©ã®ã³ãã³ã
- å€ãããŒã¿ã§å€ãã³ãŒããå®è¡ã§ããå Žåã¯ãå€ãåè©Šè¡ãã¡ã€ã«ããµããŒããããå ŽåããããŸã
- Haloã§ã®å·»ãæ»ãã¯ãç¹å®ã®æç¹ã§ã®ã²ãŒã ã®ç¶æ ãä¿åãããã»ãŒããã€ã³ããã䜿çšããŠè¡ãããŸããã ã¹ã ãŒãºã«å·»ãæ»ãããšã¯ã§ããŸããã§ããããåã®ã»ãŒããã€ã³ãã«ç§»åããŠããããåé²ããããšã¯ã§ããŸããã EMNIPã
- SupComã¯ããã¢ããŒãã¢ãããã¯ãŒã¯ã¢ãŒããã¯ãã£ãæ倧éã«æŽ»çšããŸãã
- æ®å¿µãªãããLightning Forceã¯ä»å±ããŠããŸãã