ãã XNUMX é±éãç§ã¯ã²ãŒã ã®ãªã³ã©ã€ã³ ãšã³ãžã³ã®éçºã«åãçµãã§ããŸããã ãããŸã§ã¯ãã²ãŒã ã«ããããããã¯ãŒã¯ã«ã€ããŠãŸã£ããç¥èããªãã£ãã®ã§ããã¹ãŠã®æŠå¿µãç解ããç¬èªã®ãããã¯ãŒã¯ ãšã³ãžã³ãäœæã§ããããã«ããããã«ãããããã®èšäºãèªã¿ãå€ãã®å®éšãè¡ããŸããã
ãã®ã¬ã€ãã§ã¯ãç¬èªã®ã²ãŒã ãšã³ãžã³ãäœæããåã«åŠç¿ããå¿ èŠãããããŸããŸãªæŠå¿µãšãããããåŠç¿ããããã®æé©ãªãªãœãŒã¹ãšèšäºãå ±æããããšæããŸãã
äžè¬ã«ããããã¯ãŒã¯ ã¢ãŒããã¯ãã£ã«ã¯ããã¢ããŒãã¢ãšã¯ã©ã€ã¢ã³ããµãŒããŒã® 2 ã€ã®äž»ãªã¿ã€ãããããŸãã ãã¢ããŒã㢠(pXNUMXp) ã¢ãŒããã¯ãã£ã§ã¯ãæ¥ç¶ããããã¬ãŒã€ãŒã®ä»»æã®ãã¢éã§ããŒã¿ã転éãããŸãããã¯ã©ã€ã¢ã³ã ãµãŒã㌠ã¢ãŒããã¯ãã£ã§ã¯ããã¬ãŒã€ãŒãšãµãŒããŒã®éã§ã®ã¿ããŒã¿ã転éãããŸãã
ãã¢ããŒã㢠ã¢ãŒããã¯ãã£ã¯äŸç¶ãšããŠäžéšã®ã²ãŒã ã§äœ¿çšãããŠããŸãããã¯ã©ã€ã¢ã³ã ãµãŒããŒãæšæºã§ããå®è£
ãç°¡åã§ãå¿
èŠãªãã£ãã«å¹
ãå°ãããŠæžã¿ãäžæ£è¡çºããã®ä¿è·ã容æã§ãã ãããã£ãŠããã®ã¬ã€ãã§ã¯ãã¯ã©ã€ã¢ã³ã/ãµãŒã㌠ã¢ãŒããã¯ãã£ã«çŠç¹ãåœãŠãŸãã
ç¹ã«ãç§ãã¡ã¯æš©åšäž»çŸ©çãªãµãŒããŒã«æãèå³ãæã£ãŠããŸãããã®ãããªã·ã¹ãã ã§ã¯ããµãŒããŒã¯åžžã«æ£ããã®ã§ãã ããšãã°ããã¬ãŒã€ãŒãèªåã (10, 5) ã«ãããšæã£ãŠããã®ã«ããµãŒããŒã圌ã (5, 3) ã«ãããšåããå Žåãã¯ã©ã€ã¢ã³ãã¯ãã®äœçœ®ããµãŒããŒãå ±åããŠããäœçœ®ã«çœ®ãæããå¿
èŠãããããã®éã§ã¯ãããŸããã æš©åšã®ãããµãŒããŒã䜿çšãããšãäžæ£è¡çºè
ãèªèãããããªããŸãã
ã²ãŒã ãããã¯ãŒã¯ ã·ã¹ãã ã«ã¯ XNUMX ã€ã®äž»èŠãªã³ã³ããŒãã³ãããããŸãã
- ãã©ã³ã¹ããŒã ãããã³ã«: ã¯ã©ã€ã¢ã³ããšãµãŒããŒéã§ããŒã¿ã転éãããæ¹æ³ã
- ã¢ããªã±ãŒã·ã§ã³ ãããã³ã«: ã¯ã©ã€ã¢ã³ããããµãŒããŒãããã³ãµãŒããŒããã¯ã©ã€ã¢ã³ãã«äœããã©ã®ãããªåœ¢åŒã§éä¿¡ããããã
- ã¢ããªã±ãŒã·ã§ã³ ããžãã¯: éä¿¡ãããããŒã¿ã䜿çšããŠã¯ã©ã€ã¢ã³ããšãµãŒããŒã®ç¶æ ãæŽæ°ããæ¹æ³ã
åéšåã®åœ¹å²ãšããã«äŒŽãå°é£ãç解ããããšãéåžžã«éèŠã§ãã
ãã©ã³ã¹ããŒããããã³ã«
æåã®ã¹ãããã¯ããµãŒããŒãšã¯ã©ã€ã¢ã³ãã®éã§ããŒã¿ã転éããããã®ãããã³ã«ãéžæããããšã§ãã ããã«ã¯ XNUMX ã€ã®ã€ã³ã¿ãŒããã ãããã³ã«ããããŸãã
TCPãšUDPã®æ¯èŒ
TCP ãš UDP ã¯ã©ã¡ããããŒã¹ã«ãªã£ãŠããŸã
UDP ã¯ãIP äžã®èãå±€ã«ãããŸããã ãããã£ãŠãåãå¶éããããŸãã 察ç
§çã«ãTCP ã«ã¯å€ãã®æ©èœããããŸãã ãšã©ãŒãã§ãã¯æ©èœãåãã XNUMX ã€ã®ããŒãéã«ä¿¡é Œæ§ã®é«ãé åºä»ããããæ¥ç¶ãæäŸããŸãã ãããã£ãŠãTCP ã¯éåžžã«äŸ¿å©ã§ãä»ã®å€ãã®ãããã³ã«ã§ã䜿çšãããŠããŸãã
ãããã®é¢æ°ãé 延ãåŒãèµ·ããçç±ãç解ããã«ã¯ãTCP ãã©ã®ããã«åäœããããç解ããå¿ èŠããããŸãã éä¿¡ãã¹ããåä¿¡ãã¹ãã«ãã±ãããéä¿¡ãããšããè¯å®å¿ç (ACK) ãåä¿¡ããããšãæåŸ ããŸãã äžå®æéãçµéããŠããã±ãããåä¿¡ããªãå Žå (ãã±ãããŸãã¯ç¢ºèªã倱ãããããããŸãã¯ãã®ä»ã®çç±ã«ãã)ããã±ãããåéä¿¡ããŸãã ããã«ãTCP ã¯ãã±ãããæ£ããé åºã§åä¿¡ãããããšãä¿èšŒããããã倱ããããã±ãããåä¿¡ããããŸã§ã¯ãããšãåä¿¡ããŒãããã§ã«åä¿¡ããŠãããšããŠããä»ã®ãã¹ãŠã®ãã±ããã¯åŠçã§ããŸããã
ããããããããããããããšæããŸããããã«ããã¬ã€ã€ãŒ ã²ãŒã ãç¹ã« FPS ãªã©ã®ã¢ã¯ãã£ããªãžã£ã³ã«ã§ã¯ãé 延ãéåžžã«éèŠã§ãã ãã®ãããå€ãã®ã²ãŒã ã§ã¯ç¬èªã®ãããã³ã«ã§ UDP ã䜿çšãããŸãã
UDP ã«åºã¥ããã€ãã£ã ãããã³ã«ã¯ãããŸããŸãªçç±ãã TCP ãããå¹ççã§ãã ããšãã°ãäžéšã®ããã±ãŒãžãä¿¡é Œã§ãããã®ãšããŠããŒã¯ããä»ã®ããã±ãŒãžãä¿¡é Œã§ããªããã®ãšããŠããŒã¯ããããšãã§ããŸãã ãããã£ãŠãä¿¡é Œæ§ã®äœããã±ãããåä¿¡è ã«å±ãããã©ããã¯æ°ã«ããŸããã ãŸãã¯ãXNUMX ã€ã®ã¹ããªãŒã ã§ãã±ããã倱ãããŠãä»ã®ã¹ããªãŒã ã®é床ãäœäžããªãããã«ãè€æ°ã®ããŒã¿ ã¹ããªãŒã ãåŠçããããšãã§ããŸãã ããšãã°ããã¬ãŒã€ãŒå ¥åçšã®ã¹ã¬ãããšãã£ãã ã¡ãã»ãŒãžçšã®å¥ã®ã¹ã¬ãããååšããå ŽåããããŸãã ç·æ¥ããŒã¿ã§ã¯ãªããã£ãã ã¡ãã»ãŒãžã倱ãããå Žåã§ããç·æ¥ããŒã¿ã®å ¥åãé ããªãããšã¯ãããŸããã ãããã¯ããã㪠ã²ãŒã ç°å¢ã§ã®å¹çãé«ããããã«ãç¬èªã®ãããã³ã«ã TCP ãšã¯ç°ãªãæ¹æ³ã§ä¿¡é Œæ§ãå®è£ ããå ŽåããããŸãã
ã§ã¯ãTCP ããã¡ãªããUDP ã«åºã¥ããŠç¬èªã®ãã©ã³ã¹ããŒã ãããã³ã«ãæ§ç¯ããããšã«ãªãã®ã§ãããã?
ããå°ãè€éã§ãã TCP ã¯ã²ãŒã ãããã¯ãŒã¯ ã·ã¹ãã ã«ã¯ã»ãŒæé©ã§ã¯ãããŸããããç¹å®ã®ã²ãŒã ã§ã¯éåžžã«ããŸãæ©èœãã貎éãªæéãç¯çŽã§ããŸãã ããšãã°ãã¿ãŒã³ããŒã¹ã®ã²ãŒã ã LAN ãããã¯ãŒã¯äžã§ã®ã¿ãã¬ã€ã§ããã²ãŒã ã®å ŽåãåŸ ã¡æéããã±ããæ倱ãã€ã³ã¿ãŒããããããã¯ããã«äœãå ŽåãåŸ ã¡æéã¯åé¡ã«ãªããªãå ŽåããããŸãã
World of WarcraftãMinecraftãTerraria ãªã©ã®æåããã²ãŒã ã®å€ã㯠TCP ã䜿çšããŠããŸãã ãã ããã»ãšãã©ã® FPS ã¯ç¬èªã® UDP ããŒã¹ã®ãããã³ã«ã䜿çšããããããããã«ã€ããŠã¯ä»¥äžã§è©³ãã説æããŸãã
TCP ã®äœ¿çšãéžæããå Žåã¯ããããç¡å¹ã«ãªã£ãŠããããšã確èªããŠãã ãã
ãã«ããã¬ã€ã€ãŒ ã²ãŒã ã®ã³ã³ããã¹ãã«ããã UDP ãš TCP ã®éãã«ã€ããŠè©³ããã¯ãGlenn Fiedler ã®èšäºãåç
§ããŠãã ããã
ç¬èªã®ãããã³ã«
ç¬èªã®ãã©ã³ã¹ããŒã ãããã³ã«ãäœæããããšèããŠããŸãããã©ãããå§ããã°ãããããããŸããã? Glenn Fiedler ãããã«ã€ã㊠XNUMX ã€ã®çŽ æŽãããèšäºãæžããŠããã®ã§ãããªãã¯å¹žéã§ãã ãããã®äžã«ã¯è³¢ãã¢ã€ãã¢ãããããããã§ãããã
æåã®èšäº
Glenn Fiedler ã¯ãUDP ã«åºã¥ããç¬èªã®ãããã³ã«ã䜿çšããããšã匷ãæ¯æããŠããããšã«æ³šæããŠãã ããã ãããŠã圌ã®èšäºãèªãã åŸããããã TCP ã«ã¯ãã㪠ã²ãŒã ã«ãããŠé倧ãªæ¬ ç¹ããããšãã圌ã®æèŠãæ¡çšããç¬èªã®ãããã³ã«ãå®è£ ããããªãã§ãããã
ãã ãããããã¯ãŒã¯ã«æ £ããŠããªãå Žåã¯ãTCP ãŸãã¯ã©ã€ãã©ãªã䜿çšããŠãã ããã ç¬èªã®ãã©ã³ã¹ããŒã ãããã³ã«ãé©åã«å®è£ ããã«ã¯ãäºåã«å€ãã®ããšãåŠã¶å¿ èŠããããŸãã
ãããã¯ãŒã¯ã©ã€ãã©ãª
TCP ããå¹ççãªãã®ãå¿ èŠã ããç¬èªã®ãããã³ã«ãå®è£ ããããå€ãã®è©³çŽ°ãæ€èšãããããããªãå Žåã¯ãããã ã©ã€ãã©ãªã䜿çšã§ããŸãã ãããã¯ãããããããŸã:
çšå¿æ£ ã°ã¬ã³ã»ãã£ãŒãã©ãŒã©ã¯ããã ããµããŒããããªããªããŸãããããã®ãã©ãŒã¯SlikeNet ãŸã 掻åããŠããããã§ããEããã ãã«ããã¬ã€ã€ãŒ FPS çšã«äœæãããã©ã€ãã©ãªã§ããã¥ãŒã GameNetworkingãœã±ãã ãã«ãã«ãã
ãã¹ãŠãè©Šããããã§ã¯ãããŸãããã䜿ããããä¿¡é Œæ§ãé«ã ENet ã奜ã¿ãŸãã ããã«ãåå¿è åãã®æ確ãªããã¥ã¡ã³ããšãã¥ãŒããªã¢ã«ãæäŸãããŠããŸãã
ãã©ã³ã¹ããŒããããã³ã«ã®çµè«
èŠçŽãããšãTCP ãš UDP ãšãã XNUMX ã€ã®äž»èŠãªãã©ã³ã¹ããŒã ãããã³ã«ããããŸãã TCP ã«ã¯ãä¿¡é Œæ§ããã±ããé åºã®ä¿æããšã©ãŒæ€åºãªã©ãå€ãã®äŸ¿å©ãªæ©èœããããŸãã UDP ã«ã¯ãã®ãã¹ãŠãåãã£ãŠããããã§ã¯ãããŸããããTCP ã¯ãã®æ§è³ªäžãäžéšã®ã²ãŒã ã§ã¯èš±å®¹ã§ããªãé«ãé 延ãæã£ãŠããŸãã ã€ãŸããäœé 延ã確ä¿ããã«ã¯ãUDP ã«åºã¥ããŠç¬èªã®ãããã³ã«ãäœæããããUDP äžã«ãã©ã³ã¹ããŒã ãããã³ã«ãå®è£ ãããã«ããã¬ã€ã€ãŒ ãã㪠ã²ãŒã ã«é©åããã©ã€ãã©ãªã䜿çšããããšãã§ããŸãã
TCPãUDPãã©ã€ãã©ãªã®ããããéžæãããã¯ãããã€ãã®èŠå ã«ãã£ãŠæ±ºãŸããŸãã ãŸããã²ãŒã ã®ããŒãºããèããŸããäœé 延ã¯å¿ èŠã§ãã? 次ã«ãã¢ããªã±ãŒã·ã§ã³ ãããã³ã«ã®èŠä»¶ãããä¿¡é Œã§ãããããã³ã«ãå¿ èŠã§ãã? 次ã®ããŒãã§èª¬æããããã«ãä¿¡é Œæ§ã®äœããããã³ã«ãéåžžã«é©ããã¢ããªã±ãŒã·ã§ã³ ãããã³ã«ãäœæããããšãå¯èœã§ãã æåŸã«ããããã¯ãŒã¯ ãšã³ãžã³éçºè ã®çµéšãèæ ®ããå¿ èŠããããŸãã
ãã³ãã XNUMX ã€ãããŸãã
- ãã¹ãŠã®ã³ãŒããæžãçŽããã«ãã©ã³ã¹ããŒã ãããã³ã«ãç°¡åã«çœ®ãæããããããã«ãã¢ããªã±ãŒã·ã§ã³ã®æ®ãã®éšåãããã©ã³ã¹ããŒã ãããã³ã«ãå¯èœãªéãæœè±¡åããŸãã
- é床ã«æé©åããªãã§ãã ããã ãããã¯ãŒãã³ã°ã®å°é家ã§ã¯ãªããã«ã¹ã¿ã ã® UDP ããŒã¹ã®ãã©ã³ã¹ããŒã ãããã³ã«ãå¿ èŠãã©ããããããªãå Žåã¯ãTCP ãŸãã¯ä¿¡é Œæ§ãæäŸããã©ã€ãã©ãªããå§ããŠãããã©ãŒãã³ã¹ããã¹ãããŠæž¬å®ã§ããŸãã åé¡ãçºçãããã®åå ããã©ã³ã¹ããŒã ãããã³ã«ã«ãããšç¢ºä¿¡ã§ããå Žåã¯ãç¬èªã®ãã©ã³ã¹ããŒã ãããã³ã«ãäœæããææãæ¥ããããããŸããã
ãã®éšåã®æåŸã«ã次ã®å
容ãèªãããšããå§ãããŸãã
ã¢ããªã±ãŒã·ã§ã³ãããã³ã«
ã¯ã©ã€ã¢ã³ããšãµãŒããŒéã§ããŒã¿ã亀æã§ããããã«ãªã£ãã®ã§ãã©ã®ããŒã¿ãã©ã®åœ¢åŒã§è»¢éãããã決å®ããå¿ èŠããããŸãã
å€å žçãªã¹ããŒã ã§ã¯ãã¯ã©ã€ã¢ã³ããå ¥åãŸãã¯ã¢ã¯ã·ã§ã³ããµãŒããŒã«éä¿¡ãããµãŒããŒãçŸåšã®ã²ãŒã ç¶æ ãã¯ã©ã€ã¢ã³ãã«éä¿¡ããŸãã
ãµãŒããŒã¯å®å šãªç¶æ ã§ã¯ãªãããã¬ãŒã€ãŒã®è¿ãã«ãããšã³ãã£ãã£ãå«ããã£ã«ã¿ãªã³ã°ãããç¶æ ãéä¿¡ããŸãã 圌ããããè¡ãçç±ã¯ XNUMX ã€ãããŸãã ãŸããå šäœã®ç¶æ ã倧ããããŠé«åšæ³¢æ°ã§éä¿¡ã§ããªãå¯èœæ§ããããŸãã 第 XNUMX ã«ãã²ãŒã ããžãã¯ã®ã»ãšãã©ã¯ã²ãŒã ãµãŒããŒäžã§ã·ãã¥ã¬ãŒãããããããã¯ã©ã€ã¢ã³ãã¯äž»ã«ããžã¥ã¢ã« ããŒã¿ãšãªãŒãã£ãª ããŒã¿ã«é¢å¿ããããŸãã 第äžã«ãäžéšã®ã²ãŒã ã§ã¯ããã¬ã€ã€ãŒã¯ãããã®å察åŽã®æµã®äœçœ®ãªã©ã®ç¹å®ã®ããŒã¿ãç¥ãå¿ èŠããããŸãããããããªããã°ããã±ãããå ãåããŠæµãåãããã«ã©ãã«ç§»åããã°ããããæ£ç¢ºã«ç¥ãããšãã§ããããã§ãã
é£èŒ
æåã®ã¹ãããã¯ãéä¿¡ãããããŒã¿ (å
¥åãŸãã¯ã²ãŒã ç¶æ
) ãéä¿¡ã«é©ãã圢åŒã«å€æããããšã§ãã ãã®ããã»ã¹ã¯ãšåŒã°ããŸã
JSON ã XML ãªã©ã人éãå€èªã§ãã圢åŒã䜿çšãããšããã¢ã€ãã¢ãããã«æãæµ®ãã³ãŸãã ããããããã¯å®å šã«éå¹çã§ããããã£ãã«ã®å€§éšåãç¡é§ã«å æãããŠããŸããŸãã
代ããã«ãããã³ã³ãã¯ããªãã€ããªåœ¢åŒã䜿çšããããšããå§ãããŸãã ã€ãŸãããã±ããã«ã¯æ°ãã€ãããå«ãŸããŸããã ããã§åé¡ãèæ
®ããå¿
èŠããããŸã
ããŒã¿ãã·ãªã¢ã«åããã«ã¯ã次ã®ãããªã©ã€ãã©ãªã䜿çšã§ããŸãã
ãã©ãããããã¡ ã°ãŒã°ã«ãã£ããã³ã»ããã ç åµç©ç© ã·ã§ãŒã³ã»ã°ã©ã³ããšã©ã³ãã«ãã»ããŒããŒãº
ã©ã€ãã©ãªãããŒã¿ãã«ãªã¢ãŒã«ã€ããäœæãããšã³ãã£ã¢ã³ãèæ ®ããŠããããšã確èªããŠãã ããã
å¥ã®è§£æ±ºçã¯ããããèªåã§å®è£ ããããšã§ãããç¹ã«ã³ãŒãã§ããŒã¿äžå¿ã®ã¢ãããŒãã䜿çšããŠããå Žåã¯ãããã»ã©é£ãããããŸããã ããã«ãã©ã€ãã©ãªã®äœ¿çšæã«åžžã«å¯èœã§ãããšã¯éããªãæé©åãå®è¡ã§ããããã«ãªããŸãã
Glenn Fiedler ã¯ã·ãªã¢ã«åã«ã€ã㊠XNUMX ã€ã®èšäºãæžããŸããã
å§çž®
ã¯ã©ã€ã¢ã³ããšãµãŒããŒéã§è»¢éãããããŒã¿ã®éã¯ããã£ãã«ã®åž¯åå¹ ã«ãã£ãŠå¶éãããŸãã ããŒã¿å§çž®ã«ãããåã¹ãããã·ã§ããã§ããå€ãã®ããŒã¿ã転éãããããªãã¬ãã·ã¥ ã¬ãŒããé«ããããåã«åž¯åå¹ èŠä»¶ã軜æžãããããããšãã§ããŸãã
ãããã®æ¢±å
æåã®ææ³ã¯ããã ãããã³ã°ã§ãã ããã¯ãç®çã®å€ãèšè¿°ããããã«å¿ èŠãªãããæ°ãæ£ç¢ºã«äœ¿çšããããšã«ãããŸãã ããšãã°ã16 ã®ç°ãªãå€ãæã€ããšãã§ããåæåãããå Žåããã€ãå šäœ (8 ããã) ã®ä»£ããã« 4 ãããã ãã䜿çšã§ããŸãã
Glenn Fiedler ãèšäºã®åŸåã§ãããå®è£
ããæ¹æ³ã説æããŠããŸãã
ããã ãããã³ã°ã¯ã次ã®ã»ã¯ã·ã§ã³ã§èª¬æããé¢æ£åã§ç¹ã«å¹æçã«æ©èœããŸãã
ãµã³ããªã³ã°
Glenn Fiedler ã (åã³!) èšäºã§å®éã«é¢æ£åãé©çšããæ¹æ³ã瀺ããŠããŸã
å§çž®ã¢ã«ãŽãªãºã
次ã®æè¡ã¯å¯éå§çž®ã¢ã«ãŽãªãºã ã§ãã
ç§ã®æèŠã§ã¯ãç¥ã£ãŠããã¹ãæãèå³æ·±ãã¢ã«ãŽãªãºã ã XNUMX ã€çŽ¹ä»ããŸãã
ãããã³ç¬Šå·å äºåã«èšç®ãããã³ãŒãã䜿çšãããšãéåžžã«é«éã§è¯å¥œãªçµæãåŸãããŸãã ããã¯ãQuake3 ãããã¯ãŒã¯ ãšã³ãžã³ã§ãã±ãããå§çž®ããããã«äœ¿çšãããŸãããZLIB ã¯ãããŒã¿éã決ããŠå¢å ãããªãæ±çšå§çž®ã¢ã«ãŽãªãºã ã§ãã ã©ããã£ãŠèŠãããšãã§ããŸãããã㧠ãããŸããŸãªçšéã«äœ¿çšãããŠããŸãã ç¶æ ãæŽæ°ããå Žåã¯ãåé·ã«ãªãå¯èœæ§ããããŸãã ãã ããã¢ã»ãããé·ãããã¹ãããŸãã¯å°åœ¢ããµãŒããŒããã¯ã©ã€ã¢ã³ãã«éä¿¡ããå¿ èŠãããå Žåã«ã¯äŸ¿å©ã§ããã©ã³ã¬ã³ã°ã¹ã®ã³ã㌠ã¯ããããæãåçŽãªå§çž®ã¢ã«ãŽãªãºã ã§ãããç¹å®ã®çš®é¡ã®ããŒã¿ã«å¯ŸããŠã¯éåžžã«å¹ççã§ãããzlib ã®åã®ååŠçã¹ããããšããŠäœ¿çšã§ããŸãã ããã¯ãå€ãã®é£æ¥ããèŠçŽ ãç¹°ãè¿ãããã¿ã€ã«ãŸãã¯ãã¯ã»ã«ã§æ§æãããå°åœ¢ãå§çž®ããã®ã«ç¹ã«é©ããŠããŸãã
ãã«ã¿å§çž®
æåŸã®å§çž®æè¡ã¯ãã«ã¿å§çž®ã§ãã ããã¯ãçŸåšã®ã²ãŒã ç¶æ ãšã¯ã©ã€ã¢ã³ããåä¿¡ããæåŸã®ç¶æ ãšã®éã®å·®ç°ã®ã¿ãéä¿¡ããããšããäºå®ã«ãããŸãã
ããã¯ãQuake3 ãããã¯ãŒã¯ ãšã³ãžã³ã§åããŠäœ¿çšãããŸããã ãã®äœ¿çšæ¹æ³ã説æãã XNUMX ã€ã®èšäºã次ã«ç€ºããŸãã
Quake3 ãããã¯ãŒãã³ã° ã¢ãã« ãã©ã€ã¢ã³ã»ããã¯Quake 3 ãœãŒã¹ã³ãŒãã¬ãã¥ãŒ: ãããã¯ãŒã¯ã¢ãã« ãã¡ãã¢ã³ã»ãµã³ã°ã©ãŒã¹ [翻蚳 Habré ã«é¢ããèšäºãã»ã¯ã·ã§ã³ããããã¯ãŒã¯ ã¢ãã«ããåç §]
Glenn Fiedler ãèšäºã®åŸåã§ããã䜿çšããŸããã
КОÑÑПваМОе
ããã«ãã¯ã©ã€ã¢ã³ããšãµãŒããŒéã®æ å ±ã®éä¿¡ãæå·åããå¿ èŠãããå ŽåããããŸãã ããã«ã¯ããã€ãã®çç±ããããŸãã
- ãã©ã€ãã·ãŒ/æ©å¯æ§: ã¡ãã»ãŒãžã¯åä¿¡è ã®ã¿ãèªã¿åãããšãã§ããä»ã®ãããã¯ãŒã¯ ã¹ããã¡ãŒã¯ã¡ãã»ãŒãžãèªã¿åãããšãã§ããŸããã
- èªèšŒ: ãã¬ãŒã€ãŒã®åœ¹å²ãæãããã人ã¯ãèªåã®ããŒãç¥ã£ãŠããå¿ èŠããããŸãã
- ããŒãã®é²æ¢: æªæã®ãããã¬ã€ã€ãŒãç¬èªã®ããŒã ããã±ãŒãžãäœæããããšã¯ã¯ããã«å°é£ã«ãªããŸããæå·åã¹ããŒã ãè€è£œããã㌠(æ¥ç¶ããšã«å€æŽããã) ãèŠã€ããå¿ èŠããããŸãã
ããã«ã¯ã©ã€ãã©ãªã䜿çšããããšã匷ããå§ãããŸãã 䜿çšããããšããå§ãããŸã
ã¢ããªã±ãŒã·ã§ã³ãããã³ã«: çµè«
ããã§ã¢ããªã±ãŒã·ã§ã³ ãããã³ã«ã¯çµäºã§ãã å§çž®ã¯å®å šã«ãªãã·ã§ã³ã§ãããå§çž®ã䜿çšãããã©ããã®æ±ºå®ã¯ã²ãŒã ãšå¿ èŠãªåž¯åå¹ ã«ãã£ãŠã®ã¿æ±ºãŸããšç§ã¯èããŠããŸãã ç§ã®æèŠã§ã¯ãæå·åã¯å¿ é ã§ãããæåã®ãããã¿ã€ãã§ã¯æå·åãªãã§ãåé¡ãããŸããã
ã¢ããªã±ãŒã·ã§ã³ããžãã¯
ã¯ã©ã€ã¢ã³ãã§ç¶æ ãæŽæ°ã§ããããã«ãªããŸããããã¬ã€ãã³ã·ãŒã®åé¡ãçºçããå¯èœæ§ããããŸãã ãã¬ã€ã€ãŒã¯å ¥åãè¡ã£ãåŸããµãŒããŒããã®ã²ãŒã ç¶æ ã®æŽæ°ãåŸ ã£ãŠããããäžçã«ã©ã®ãããªåœ±é¿ãäžãããã確èªããå¿ èŠããããŸãã
ããã«ãXNUMX ã€ã®ç¶æ æŽæ°ã®éãäžçã¯å®å šã«éçã§ãã ç¶æ ã®æŽæ°ã¬ãŒããäœãå Žåãåããéåžžã«ãããããããŠããŸããŸãã
ãã®åé¡ã®åœ±é¿ã軜æžããããã®ææ³ãããã€ããããŸãããããã«ã€ããŠã¯æ¬¡ã®ã»ã¯ã·ã§ã³ã§èª¬æããŸãã
é 延平æ»åæè¡
ãã®ã»ã¯ã·ã§ã³ã§èª¬æãããã¹ãŠã®ãã¯ããã¯ã¯ããã®ã·ãªãŒãºã§è©³ãã説æãããŠããŸãã
XNUMX ã€ç®ã®ææ³ã¯ããµãŒããŒããã®å¿çãåŸ
ããã«ãå
¥åçµæãçŽæ¥é©çšããããšã§ãã ãããã ã¯ã©ã€ã¢ã³ãåŽã®äºæž¬ã ãã ããã¯ã©ã€ã¢ã³ãããµãŒããŒããæŽæ°ãåä¿¡ããå Žåããã®äºæž¬ãæ£ããã£ãããšãæ€èšŒããå¿
èŠããããŸãã ããã§ãªãå Žåã¯ããµãŒããŒã¯æš©åšäž»çŸ©çã§ããããããµãŒããŒããåä¿¡ããå
容ã«åŸã£ãŠç¶æ
ãå€æŽããã ãã§æžã¿ãŸãã ãã®ææ³ã¯ Quake ã§åããŠäœ¿çšãããŸããã 詳现ã«ã€ããŠã¯èšäºãã芧ãã ããã
XNUMX çªç®ã®ãã¯ãã㯠ã»ããã¯ãXNUMX ã€ã®ç¶æ æŽæ°éã®ä»ã®ãšã³ãã£ãã£ã®ç§»åãã¹ã ãŒãºã«ããããã«äœ¿çšãããŸãã ãã®åé¡ã解決ããã«ã¯ãå æ¿ãšå€æ¿ãšãã XNUMX ã€ã®æ¹æ³ããããŸãã è£éã®å ŽåãæåŸã® XNUMX ã€ã®ç¶æ ãååŸãããäžæ¹ããä»æ¹ãžã®é·ç§»ã衚瀺ãããŸãã æ¬ ç¹ã¯ãã¯ã©ã€ã¢ã³ãã¯åžžã«éå»ã«äœãèµ·ãã£ããã確èªãããããé 延ã®ããäžéšãçºçããããšã§ãã å€æ¿ãšã¯ãã¯ã©ã€ã¢ã³ããåãåã£ãæåŸã®ç¶æ ã«åºã¥ããŠããšã³ãã£ãã£ãçŸåšã©ãã«ããã¹ãããäºæž¬ããããšã§ãã æ¬ ç¹ã¯ããšã³ãã£ãã£ã移åæ¹åãå®å šã«å€ãããšãäºæž¬ãšå®éã®äœçœ®ã®éã«å€§ããªèª€å·®ãçããããšã§ãã
æåŸã®æãé«åºŠãªãã¯ããã¯ã¯ãFPS ã§ã®ã¿æå¹ã§ãã ã©ã°è£æ£ã ã©ã°è£æ£ã䜿çšããå ŽåããµãŒããŒã¯ã¯ã©ã€ã¢ã³ããã¿ãŒã²ããã§èµ·åãããšãã®é 延ãèæ ®ããŸãã ããšãã°ããã¬ã€ã€ãŒãç»é¢äžã§ãããã·ã§ãããå®è¡ããããå®éã«ã¯é 延ã«ããã¿ãŒã²ãããå¥ã®å Žæã«ããå Žåãé 延ãçç±ã«ãã¬ã€ã€ãŒã®æ®ºå®³ã®æš©å©ãåŠå®ããã®ã¯äžå ¬å¹³ã§ãã ãã®ããããµãŒããŒã¯ãã¬ãŒã€ãŒãå°æããæç¹ãŸã§æéãå·»ãæ»ãããã¬ãŒã€ãŒãç»é¢äžã§èŠããã®ãã·ãã¥ã¬ãŒãããå°æãšã¿ãŒã²ããã®éã®è¡çªã確èªããŸãã
Glenn Fiedler 㯠(ãã€ãã®ããã«!) 2004 幎ã«èšäºãæžããŸãã
Valve ã® wiki ã«ã XNUMX ã€ã®èšäºããããŸãã
ããŒãé²æ¢
ããŒãé²æ¢ãã¯ããã¯ã¯äž»ã« XNUMX ã€ãããŸãã
ãŸããäžæ£è¡çºè ãæªæã®ãããã±ãããéä¿¡ããããšãå°é£ã«ãªããŸãã äžã§è¿°ã¹ãããã«ããããå®è£ ããè¯ãæ¹æ³ã¯æå·åã§ãã
次ã«ãæš©éã®ãããµãŒããŒã¯ã³ãã³ã/å ¥å/ã¢ã¯ã·ã§ã³ã®ã¿ãåä¿¡ããå¿ èŠããããŸãã ã¯ã©ã€ã¢ã³ãã¯ãå ¥åãéä¿¡ãã以å€ã«ãµãŒããŒäžã®ç¶æ ãå€æŽã§ããŸããã ãã®åŸããµãŒããŒã¯å ¥åãåãåããã³ã«ãå ¥åãé©çšããåã«ãã®æå¹æ§ããã§ãã¯ããå¿ èŠããããŸãã
ã¢ããªã±ãŒã·ã§ã³ ããžãã¯: çµè«
ã¯ã©ã€ã¢ã³ããšãµãŒããŒãåããã·ã³äžã§å®è¡ãããŠããå Žåã§ããæªãæ¡ä»¶ã§ã²ãŒã ã®åäœããã¹ãã§ããããã«ãé«é 延ãšäœãªãã¬ãã·ã¥ ã¬ãŒããã·ãã¥ã¬ãŒãããæ¹æ³ãå®è£ ããããšããå§ãããŸãã ããã«ãããé 延平æ»åæè¡ã®å®è£ ãå€§å¹ ã«ç°¡çŽ åãããŸãã
ãã®ä»ã®åœ¹ç«ã€ãªãœãŒã¹
ãããã¯ãŒã¯ ã¢ãã«ã«é¢ããä»ã®ãªãœãŒã¹ã調ã¹ããå Žåã¯ãããã§èŠã€ããããšãã§ããŸãã
ã°ã¬ã³ã»ãã£ãŒãã©ãŒã®ããã° â 圌ã®ããã°å šäœãèªã䟡å€ããããŸããããã«ã¯å€ãã®åªããèšäºãå«ãŸããŠããŸãããã㯠ãããã¯ãŒã¯æè¡ã«é¢ããããããèšäºãéããŸãããçŽ æŽãããã²ãŒã ãããã¯ãŒãã³ã° M. Fatih MAR èã¯ããã㪠ã²ãŒã ãããã¯ãŒãã³ã° ãšã³ãžã³ã«é¢ããèšäºãšãããªã®å æ¬çãªãªã¹ãã§ãã- Ð
wiki ãµãã¬ãã£ãã r/gamedev 圹ç«ã€ãªã³ã¯ããããããããŸãã
åºæïŒ habr.com