- ã²ãŒã ããã¯ãšã³ãïŒã©ã®ã¢ãžã¥ãŒã«ã§æ§æããå¿ èŠããããŸããïŒ
- æåãã©ã¡ãŒã¿ãŒã®èšç®ïŒä»®æ³ã¡ãœãããŸãã¯é åã®è¿œå ïŒ
- åäœã®ããžãã¯ïŒã©ã®ã¬ãã«ã«ãã¹ããïŒ
- ãã£ã©ã¯ã¿ãŒã®ç§»åïŒèª°ãããã管çãã¹ãã§ããïŒ
ä»æ¥ã¯ãã¹ããŒã¹MMO RPG ãStarry GhostsããäŸãšããŠäœ¿çšããŠããªã³ã©ã€ã³ã²ãŒã ã®éçºãšèšèšã«ç²Ÿéãç¶ããŸãã ãã®èšäºã§ã¯ãC ++ã®ããã¯ãšã³ãã«ã€ããŠèª¬æããŸãããå®å šã«æè¡çã§ãã
ããã¹ãã«ã¯ã¹ã¿ãŒãŽãŒã¹ãã®æ©èœãžã®å€ãã®åç §ããããŸãããç§ãã¡ã®è£œåãæãäžããïŒãããŠéã¶ïŒå¿ èŠããªãããã«è³æãæ瀺ããããšããŸãã ãã ããçŽ æã®ç解ãæ·±ããããã«ãæ°åãããŠãã¹ãŠãã©ã®ããã«èŠãããã確èªããããšããå§ãããŸãã
ãã®èšäºã§ã¯ãMMO RPGã®ããã¯ãšã³ãã«é¢é£ããã¢ãŒããã¯ãã£ãœãªã¥ãŒã·ã§ã³ã«ãªã¢ã«ã¿ã€ã ã§çŠç¹ãåœãŠãŸãã å€ãã®ãœãŒã¹ã³ãŒãã¯ãªããè€æ°ã®ç¶æ¿ããã³ãã¬ãŒããªã©ã®C ++åºæã®ãã®ã¯å«ãŸããŸããã ãã®èšäºã®ç®çã¯ãã²ãŒã ãµãŒããŒã®èšèšãæ¯æŽãããã¹ãŠã®ãŠãŒã¶ãŒãã²ãŒã ããã¯ãšã³ãã®è©³çŽ°ãç解ã§ããããã«ããããšã§ãã
説æãããœãªã¥ãŒã·ã§ã³ã¯éåžžã«çšéãåºããå€ãã®RPGã«éåžžã«é©ããŠããŸãã äŸãšããŠãèšäºã®æåŸã«ãã²ãŒã ããšã«ãã«ã€ããŠãã§èª¬æãããŠããã¢ãŒããã¯ãã£ã䜿çšããäŸã瀺ããŸãã
æè¡ã®éžæ
èæ¡ããã²ãŒã ãã¬ã€ãå®è£ ããã«ã¯ãäžå®ã®ãœã±ããæ¥ç¶ãšããŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³ã«å¯Ÿããå¿çæéãååã«çããµãŒããŒãå¿ èŠã§ããïŒpingãã«ãŠã³ãããã«50ããªç§ä»¥å ïŒã ãã®ãããªèŠä»¶ãæºããããšãå¯èœã«ããæè¡ã®éžæã¯ããã»ã©å€§ãããããŸããã åœæãç§ãã¡ã®ãã£ã³ããŒã³ã¯ãã²ãŒã 以å€ã®ãããžã§ã¯ãã®ããã«C ++ã§ããã¯ãšã³ããå®è£ ããçµéšããã£ããããC ++ãåªå ããŠéžæããŸããããã®æè¡ã«ã¯äººãšçµéšã®äž¡æ¹ããããŸããã
JavaïŒãŸãã¯ä»ã®ãã¯ãããžãŒïŒãæè¯ã®ãœãªã¥ãŒã·ã§ã³ãããããŸããããç§ãã¡ã®ããŒã ã«ã¯åŒ·åãªJavaéçºè ãããŸããã§ããããµãŒããŒãœãªã¥ãŒã·ã§ã³ã®äœæçµéšã®ããã¢ãŒããã¯ãã¯èšããŸã§ããããŸããã ãã®ãããªç¶æ³ã§ã¯ãæ°ããã¹ãã·ã£ãªã¹ããéããæ°ã¶æãšæ°äžãã«ãè²»ãããŠã©ã¡ããè¯ããã確èªããç°¡åã«åå©çšã§ããäœæ¥ããã³ãã¹ãæžã¿ã®C ++ã³ãŒããæšãŠã-ããã¯ãã¹ãŠäºç®ãã¯ããã«è¶ ããŠãããéçºã«å²ãåœãŠãããæéã
ãµãŒããŒãJavaïŒãŸãã¯ä»ã®ãã¯ãããžãŒïŒã§åºãŠãããã©ãããçããã®ã¯é£ãããšæããŸãããC ++ã§ã¯ãå¿ èŠãªãã®ãæ£ç¢ºã«ååŸã§ããŸããã
äžè¬çãªãµãŒããŒå³
ãµãŒããŒã¯ã次ã®ã¢ãžã¥ãŒã«ã§æ§æãããŠããŸãïŒå³1ãåç §ïŒã

- Shipã«ã¯ãããã€ã¹ã®ããŒã¿ãšè¹è¶ã®çŸåšã®ãã©ã¡ãŒã¿ãŒãå«ãŸããã€ã³ã¹ããŒã«ãããŠããããã€ã¹ã«å¿ããŠãããã®ãã©ã¡ãŒã¿ãŒã®èšç®ãåŠçããŸãã ããã¯ãä»ã®ãã¹ãŠã®ãµãŒããŒã¢ãžã¥ãŒã«ãäŸåããæäœã¬ãã«ã§ãã
- ã¹ããŒã¹ã¯ãäžçãšäžçã®ãªããžã§ã¯ããèšè¿°ããããã®ã¢ãžã¥ãŒã«ã§ãã ãã®ã¬ãã«ã§ã¯ããªããžã§ã¯ãã¯åº§æšãçŸåšã®ã¢ãŒã·ã§ã³ãã¯ãã«ããªããžã§ã¯ãã®çžäºäœçšïŒã·ã§ããã®åŠçãæå·ã®çºçãªã©ïŒãå®è£ ããŸãã
- AIã¯AIã¢ããšç¹å®ã®NPCã¹ãã«ãå®è£ ããã¢ãžã¥ãŒã«ã§ãã
- ã¯ãšã¹ã -ã¯ãšã¹ãã·ã¹ãã ã®å®è£ ã
- ã¡ã€ã³ -ãŠãŒã¶ãŒãšã®ããåããæ åœãããã¹ãŠã®æ©èœïŒãœã±ãããã¹ããªãŒã ãªã©ïŒãããã³ãã£ã©ã¯ã¿ãŒåºæã®æ©èœïŒã¹ãã«ããããã¢ããŒãã¡ã³ããã¯ã©ããã£ã³ã°ãªã©ïŒãå«ãŸããŸãã
- Packetsã¯ãããã±ãŒãžã®ã©ãããŒãå«ã¿ãRPCã¯ã©ã€ã¢ã³ã<->ãµãŒããŒãå®è£ ããèªåçæã¢ãžã¥ãŒã«ã§ãã
èšäºã®ãã®ããŒãã§ã¯ãShipããã³Spaceã¢ãžã¥ãŒã«ã®ã¢ãŒããã¯ãã£ãèŠãŠãããŸãã æ®ãã®ã¢ãžã¥ãŒã«ã®ã¢ãŒããã¯ãã£ã«ã€ããŠã¯ããã®èšäºã®æ¬¡ã®ããŒãã§èª¬æããŸãã
è¹ã¢ãžã¥ãŒã«
ãªããžã§ã¯ããšãªããžã§ã¯ãã®ãããã¿ã€ã
ãã®ã¢ãžã¥ãŒã«ã¯ãããªããžã§ã¯ããã¿ã€ãã®ãããªã¢ã«ãªããžã§ã¯ãã§åäœããŸãã ã€ãŸããããŒã«ãã«å ¥ããããã¹ããŒã¹ã«æãå ¥ããããåºã§è³Œå ¥ããããå¥ã®ãã¬ã€ã€ãŒã«ç§»ãããã§ãããã®ãã¹ãŠãåããŠããŸãã ãã®ã¢ãžã¥ãŒã«ã¯ãŸããèšçœ®ãããããã€ã¹ããã®è¹ã®åºæ¬çããã³æŽŸççãªãã©ã¡ãŒã¿ãŒãèæ ®ããŸãã

å³ å³2ã¯ãã¯ã©ã¹å³ã瀺ããŠããŸãïŒããããããããããã«å³ã¯ç°¡ç¥åãããŠããŸãïŒã ã¯ã©ã¹ã2ã€ã®éšåã«åãããŠããããšãããããŸãããªããžã§ã¯ãã®ãããã¿ã€ããäžéšã«ããããªããžã§ã¯ãèªäœãäžéšã«ãããŸãã ãããã¿ã€ãã¯å®å šã«éçã§æ©èœããããŸãã-ãããã¯ããŒã¿ããŒã¹ããããŒããããå€æŽã§ããã誰ã«ãå±ããŠããŸããã éã«ããªããžã§ã¯ãã®ãªããžã§ã¯ãïŒãã¹ãŠICargoã®åå«ïŒãå€æŽããŠãç¹å®ã®ãªããžã§ã¯ããèå¥ãããããã©ãã«ããããå€å¥ã§ããäžæã®IDãå«ããããšãã§ããŸãïŒä¿çãå庫ãå®å®ã®ã³ã³ãããåºèãªã©ïŒã ã ãã®ã¢ãããŒãã«ããæè»æ§ãå¢ããä»ã®ã¯ã©ã¹ã«åœ±é¿ãäžããããšãªããªããžã§ã¯ãã®æ©èœãå€æŽã§ããŸãã
ãã®ãœãªã¥ãŒã·ã§ã³ã§ã¯ãICArgoã®åå«ã®ã»ãšãã©ïŒãŸãã¯ãTDeviceãšTShipãé€ããã¹ãŠïŒã¯ããããã¿ã€ãã®ãããã·ã«ãããŸããã ãã®åŸãçåãçããŸããæ¬åœã«å¿ èŠãªã®ã§ããããïŒ çµå±ã®ãšããããããã¿ã€ãã®åå«ãäœæããæ¹ãç°¡åã§ãããèå¥çšã®äžæã®IDãè¿œå ããããããåé¡ã¯äœã§ããïŒ ããããç°¡åã§ã¯ãããŸããã ãããããã®ã¢ãããŒãã§ã¯ããŸãããµããžã§ã¯ãã«2ã€ã®ã¯ã©ã¹ïŒãããã¿ã€ããšåå«ïŒãå¿ èŠã§ãã次ã«ãåçããŒã¿ãšéçããŒã¿ãæ··åšãããŸãïŒãããã¿ã€ããå€æŽãããŠããªãããïŒã ããã«å ããŠããã¡ããããã¹ãŠã®ãã£ãŒã«ãã§ãããã¿ã€ããè€è£œããå¿ èŠããããããã¢ã€ãã ã®ã¡ã¢ãªæ¶è²»ãšäœææéãå¢å ããŸãã äžèšããµããŒããããããäŸãæããŸããæåã¯ã²ãŒã ã«ãããããããŸããã§ããããç»å Žãããšãããã¹ãŠã®å€æŽã¯TMicromodule / TMicromoduleProtoã¯ã©ã¹ã®ãã¢ãè¿œå ããTDeviceã«ã€ã³ã¹ããŒã«ãããããããèšç®ããæ©èœãè¿œå ãããŸããã TShipã¯ã©ã¹ã¯ãä»ã®ãã¹ãŠã®ã¯ã©ã¹ãšåæ§ããŸã£ãã圱é¿ãåããŸããã§ããã
è¹è¶ããã³æ©åšã®ãã©ã¡ãŒã¿ãŒã®èšç®
ãã¹ã¿ãŒãŽãŒã¹ããã«ã¯ãããŸããŸãªçš®é¡ã®ããã€ã¹ïŒç ²å¡ããã±ããçºå°è£ 眮ãã¬ãŒããŒã迷圩ã·ã¹ãã ãé²è·ãã£ãŒã«ãããã¡ãŒãžã¢ã³ããªã©ïŒããããŸãã ããããã«ã€ããŠãTDeviceããã¹ããªãŒã ã¯ã©ã¹ãäœæãããã®ããã€ã¹ã«ç¹å®ã®æ©èœãå®è£ ããå¿ èŠãããããã§ãã ããããäžè¬çãªãµãŒããŒãã€ã¢ã°ã©ã ãšShipã¢ãžã¥ãŒã«ã®èª¬æãããäžåºŠèŠãŠã¿ãŸãããããã®ã¢ãžã¥ãŒã«ã¯åºæ¬çã«ãè¹ã®æçµèšç®ãã©ã¡ãŒã¿ãŒãããé«ãã¬ãã«ã«æäŸããã ãã§ããªããžã§ã¯ãã®æ©èœã¯æãããŸããã äŸã§èª¬æããŸãã TShipã¯ã©ã¹ã«ã¯ãScanningRangeãã©ã¡ãŒã¿ãŒïŒã¬ãŒããŒã®ååŸïŒãå«ãŸããŠããŸãããå®éã«ã¯ç¯å²ã§ãªããžã§ã¯ãããã£ã«ã¿ãŒåŠçããŸããã ãããŠãæãéèŠãªããšã¯ãShipã¢ãžã¥ãŒã«ã®ã¬ãã«ã§ã¯ããªããžã§ã¯ãã¯ç©ºéå ã«åº§æšãæããªãããããã®ãã£ã«ã¿ãªã³ã°ã¯æ©èœããŸããã èªåããæãæ¥ãŸããïŒããã€ãã®ã¯ã©ã¹TRadarPrototypeïŒTProtoBaseã®åå«ãšããŠïŒããã³TRadarïŒTDeviceã®åå«ãšããŠïŒããã®ã¯ã©ã¹ã®ããŒã¿ããŒã¹å ã®åå¥ã®ããŒãã«ãããã³1ã€ã®ScanningRangeãã£ãŒã«ãã®ã¿ã®ç®¡çããã«å ã®ããŒãžãäœæããç¹ã¯ãããŸããïŒ çãã¯æããã§ããããããã¹ãŠã®ã³ãŒãè¡ãšã¯ã©ã¹ã®æå³ã¯éåžžã«çãããã§ãã ãã®ãããã²ãŒã å ã®ä»»æã®ããã€ã¹ãæã€ããšãã§ãããã¹ãŠã®ãã©ã¡ãŒã¿ãŒãå«ãTStaticParamsã¯ã©ã¹ãšãTStaticParamsãããŒã¿ããŒã¹ããããŒãã§ããTPrototypeModã¯ã©ã¹ãäœæããŸããã
ãã¡ãããããã¯äžèŠã§ãããããã»ã©å€§ããã¯ãããŸãããçŸæç¹ã§ã¯ãTStaticParamsã¯ã©ã¹ã«ã¯intåã®ãã£ãŒã«ãã34åããå«ãŸããŠããŸããã ããããèŠè¿ãã«ãç§ãã¡ã¯ããã€ãã®çŽ æŽãããã°ããºãæã«å ¥ããŸããã ãŸããå€æŽã®å®¹æãã ããã§ãæ°ããã¯ã©ã¹ãäœæããã«ãæ°ããã¿ã€ãã®ããã€ã¹ãšãã©ã¡ãŒã¿ãŒãäœæã§ããŸãã 第äºã«ããã©ã¡ãŒã¿ã®èšç®ã®ã·ã³ãã«ãã è¹å ã®ãã¹ãŠã®TStaticParamsã®åãååã®ãã¹ãŠã®ãã£ãŒã«ããè¿œå ããã ãã§ãæçµçãªãã©ã¡ãŒã¿ãŒãååŸã§ããŸãïŒ ä»®æ³åŒã³åºããããŠã³ãã£ã¹ãã¯ãããŸãã-ã«ãŒãå ã®åçŽãªæäœã+ = "ãã 第äžã«ãã²ãŒã ãã¶ã€ã³ã®æè»æ§ãåŸãããŸããã ããšãã°ãã²ãŒã ã«ã¯ä»»æã®ããã€ã¹ã«ã€ã³ã¹ããŒã«ã§ãããããããããHPãæäŸããŸãã ãã®ãããªã¡ã«ããºã ã«ãããã²ãŒã ãã¶ã€ããŒã¯ããã€ããŒããã¹ãã³ã°ããã€ã¹ã«åé¿ããŒãã¹ãèšå®ã§ããããã«ã«ããªã¯ãè¿œå ããŠãã ããããªã©ã®å°ããªããšããšã«ããã°ã©ããŒãåŒãè£ãå¿ èŠã¯ãããŸããã
ããã ãã§ã¯ãããŸããã ä»»æã®ããã€ã¹ã®ãã©ã¡ãŒã¿ãŒãæã€1ã€ã®ã¯ã©ã¹ãããããããã©ã¡ãŒã¿ãŒã®ã©ã³ãã åãšã·ã£ãŒããã³ã°ãéåžžã«å®è£ ã§ããŸããã TStaticParamsã¯é åãªã®ã§ãã²ãŒã ãã¶ã€ããŒã¯ç®¡çããã«ã§æ倧3ã€ã®ãã©ã¡ãŒã¿ãŒïŒé åå ã®ã€ã³ããã¯ã¹ïŒãšããã€ã¹ã®äœææã«ãããã®ãã©ã¡ãŒã¿ãŒã®åºããã®å²åãæå®ã§ããŸãã ã¢ã€ãã ãäœæãããšããTDeviceã¯äž»ã«TPrototypeMod.TStaticParamsããTStaticParamsã®ã€ã³ã¹ã¿ã³ã¹ã«ããŒã¿ãã³ããŒããŸãã 次ã«ã圌ã¯æ£åžã€ã³ããã¯ã¹ã確èªããèšå®ãããŠããå Žåã¯ããã€ã¹ãæ¯ã£ãŠãã©ã¡ãŒã¿ãŒãã©ã³ãã åããŸãã ãã¥ãŒãã®å€ã¯TDeviceãã£ãŒã«ãã«æ ŒçŽããããããããŒã¿ããŒã¹ããããŒãããåŸããã©ã¡ãŒã¿ãŒã¯å€æŽãããŸããã ã·ã£ãŒããã³ã°ãåæ§ã«å®è¡ãããŸãã管çããã«ã§ãã²ãŒã ãã¶ã€ããŒã¯ããã€ã¹ã®MainParamã瀺ããŸãã ã€ãŸããããã€ã¹ã¯ãã©ã¡ãŒã¿ã€ã³ããã¯ã¹ãèªèããŠãããã·ã£ãŒãåãæåãããã³ã«+ 10ïŒ ãã€å¢ããå¿ èŠããããŸãã
ãã ããæŠåšã®ãã©ã¡ãŒã¿ãŒãèšç®ããéã«ã¯1ã€ã®æ³šæç¹ããããŸããä»ã®ããã€ã¹ã®ãã©ã¡ãŒã¿ãŒãšåçŽã«åèšããããšã¯ã§ããŸããã ç°¡åã«ãŸãšãããšãè€æ°ã®æŠåšãã€ã³ã¹ããŒã«ãããŠããå ŽåãæèŒãããŠãããã¹ãŠã®éã®WeaponRangeãªã©ã®ãã©ã¡ãŒã¿ãŒãå«ããŠåèšããããšã«ãªããŸãããããã¯ãã¹ãã§ã¯ãããŸããã äžæ¹ãæŠåšã®ç¯å²ãåºããã®ãã¢ãŒãã£ãã¡ã¯ãã§ããå ŽåãæŠåšã®WeaponRangeã«è¿œå ããå¿ èŠããããŸãã ãã®åé¡ã次ã®ããã«è§£æ±ºããŸããããŸããTStaticParamsã«ã¯2ã€ã®é åãå«ãŸããŸããåžžã«å®å šã«æããããããšãã§ããäžè¬çãªãã©ã¡ãŒã¿ãŒïŒããšãã°ãHPãScanningRangeãªã©ïŒãšãäžè¬ã«æããããããšãã§ããªãããããWeaponParamsã§ãã ããã€ã¹ãæŠåšã§ã¯ãªãå Žåã«ã®ã¿ããã®ãã©ã¡ãŒã¿ãŒãæŠåšã®ãã©ã¡ãŒã¿ãŒã«è¿œå ããå¿ èŠããããŸãã ãã¹ãŠæ¬¡ã®ããã«ãªããŸãã
void TShip::Recalc() { m_xStatic.Set(0); TDevice* dev = NULL; for(unsigned i=0;i<m_vSlots.size();i++) { dev = m_vSlots[i].Device(); if( !dev || !dev->IsOnline() ) continue; if( dev->IsWeapon() ) { m_xStatic.AddDevice( dev->Static() );// HP } else { m_xStatic.Add( dev->Static() ); } }//for i if(m_pStaticModifier) m_xStatic.Add( *m_pStaticModifier );// , , // - , for(unsigned i=0;i<m_vSlots.size();i++) { dev = m_vSlots[i].Device(); if( !dev || !dev->IsOnline() || !dev->IsWeapon() ) continue; dev->SetWeapon( &m_xStatic ); }//for i }
æåã®ãµã€ã¯ã«ã§ã¯ããã¹ãŠã®ãã©ã¡ãŒã¿ãŒãè¹ã®æçµãã©ã¡ãŒã¿ãŒã«ãŸãšããŸãããæŠåšã«ã€ããŠã¯ãæŠåšã§ã¯ãªãäžè¬çãªãã©ã¡ãŒã¿ãŒã®ã¿ãè¿œå ããŸãã 次ã«ãã¹ãã«ã®ãã©ã¡ãŒã¿ãŒãè¿œå ããŸãã ãããŠæåŸã«ãæŠåšã«TStaticParamsãžã®ãã€ã³ã¿ãäžããããããæŠåšãã©ã¡ãŒã¿ã®ã¿ãè¿œå ããå¿ èŠããããŸãã
ã·ã§ããèšç®
TShipã¯ã©ã¹ã¯ãããã€ã¹ã®ãã©ã¡ãŒã¿ãŒã®èšç®ãšã¹ããããžã®åãä»ãã®å¯èœæ§ã®ç¢ºèªã«å ããŠãã·ã§ããã®ãã©ã¡ãŒã¿ãŒã®èšç®ãšããå¥ã®æ©èœãå®è¡ããŸãã ããã¯ãSFireResult TShip :: FireïŒNSlotPlaceã¹ãããïŒã¡ãœããã«ãã£ãŠè¡ãããŸãã ãã®æ¹æ³ã¯ãã·ã§ããã®å¯èœæ§ïŒæŠåšãã©ãããããã€ã¹ã®ã¯ãŒã«ããŠã³ãçµäºãããã©ãããã·ã§ããçšã®ã«ãŒããªããžããããã©ããïŒããã§ãã¯ããäžãããããã¡ãŒãžãçºå°ãããã·ã§ããã®æ°ãèšç®ãã蚱容å¯èœãªã·ã§ãããã©ã°ã«ãã€ã¹ãæ¯ããŸãïŒã¯ãªãã£ã«ã«ããããªã©ïŒã ãã¹ãŠã®ãã©ã¡ãŒã¿ãŒã¯SFireResultæ§é ã«æžã蟌ãŸããããã€ã¹ã¯ã¯ãŒã«ããŠã³ç¶æ ã«ãªãã匟è¬ã¯æžã蟌ãŸããªããªããã·ã§ããã®çµæãè¿ãããŸãã åæã«ãTShipã¯ãå°æããŠãããªããžã§ã¯ãã®ç¯å²ããã©ã¡ãŒã¿ãŒããã§ãã¯ã§ããŸããïŒããšãã°ããªããžã§ã¯ãã«ä¿è·ãããããã¡ãŒãžãæžããå¿ èŠãããå ŽåïŒã ããã«ãããå¿ èŠãªãã¹ãŠã®ããŒã¿ãå«ãã¹ããŒã¹ã®äžäœã¬ãã«ãäœæãããŸãã
Shipã¢ãžã¥ãŒã«ã®ä»ã®ã¯ã©ã¹
TProtoBaseã¯ã©ã¹ã«ã¯ãImageIDãNameãLevelãªã©ãããããã¢ã€ãã ã®äžè¬ããŒã¿ãå«ãŸããŠããŸãã
ICargoã«ã¯TProtoBaseãžã®ãã€ã³ã¿ãŒãå«ãŸãããã®ããŒã¿ãå€éšã«ãããã·ããã¢ã€ãã ãäœæããããã®ãã¡ã¯ããªãæäŸããŸãã TDeviceHandbookã·ã³ã°ã«ãã³ã¯ã©ã¹ã¯ããããæ¯æŽããŸããããŒã¿ããŒã¹ãããã¹ãŠã®ãããã¿ã€ããããŒãããããããžã®ãã€ã³ã¿ãŒãå«ã¿ãŸãã
TCargoBayã¯ã©ã¹ã¯ãã¿ã€ãICargoã®ãªããžã§ã¯ãã¹ãã¬ãŒãžã§ãã 圌ã¯ããŒã¿ããŒã¹ã«èªåã®ç¶æ ãä¿åããæ¹æ³ãç¥ã£ãŠããã次ã®ãããªå€ãã®ãµãŒãã¹æ©èœãæäŸããŸãïŒæãè¿ã空ãã¹ãããã®æ€çŽ¢ãäºææ§ã®ããç©ã¿éãå¯èœãªã¢ã€ãã ã®æ€çŽ¢ïŒããšãã°ãä»ã®ã«ãŒããªããžãšçµã¿åãããã«ãŒããªããžïŒãªã©ã ãã®ã¯ã©ã¹ã®åå«ã¯ãä¿ç®¡ã¢ã€ãã ã®ã¿ã€ãã«å¶éã課ããŸãïŒããšãã°ãè¹ã ããæ ŒçŽåº«ã«ä¿ç®¡ã§ããè¹ä»¥å€ã¯ãã¹ãŠå庫ã«ä¿ç®¡ã§ããŸãïŒããŸããå¿ èŠã«å¿ããŠãä¿ç®¡å¯èœãªã»ã«ã®æ°ã«å¶éã課ããŸãã
IShipNotifyReciverã¯ã©ã¹ã¯ããã³ããšã³ãã§ãããããé«ãã¬ãã«ã®ãªã³ã¯ãæäŸããŸãã ããšãã°ã察å¿ãããã±ãããã¯ã©ã€ã¢ã³ãã«éä¿¡ã§ããããã«ãåçæã®éå§ã«é¢ããã¡ã€ã³ã¬ãã«ã®ã¡ãã»ãŒãžãéä¿¡ããŸãã
å®å®ã¢ãžã¥ãŒã«
ãã®ã¢ãžã¥ãŒã«ã¯ãå®å®è¹ãå°ææãææãªã©ã®å®å®ãªããžã§ã¯ãïŒKOïŒã§åäœããŸãã ãã¹ãŠã®KOã«ã¯ã空éå ã®çŸåšã®åº§æšãšåãã®ãã¯ãã«ããããŸãã ã¯ã©ã¹å³ãå³3ã«ç€ºããŸãïŒããããããããããã«ãå³ã¯å€å°ç°¡ç¥åãããŠããŸãïŒã

ã¢ã«ãŽãªãºã ã®è€éãã«ãããããããã¢ãŒããã¯ãã£ã®èŠ³ç¹ããããã®ã¢ãžã¥ãŒã«ã¯éåžžã«åçŽã§ãã 空éå ã®ãã¹ãŠã®ãªããžã§ã¯ãïŒè¹ãå°ææãææãã³ã³ãããæïŒã¯TSpaceObjectã®åå«ã§ãããTSystemåã®ãªããžã§ã¯ãã«ãããŸãã TSpaceObjectã«ã¯ãçŸåšã®åº§æšããµã€ãºãããã³ãã®åäœãå¶åŸ¡ãã2ã€ã®ãªããžã§ã¯ãããããŸããããã¯ãFlyCommandïŒISpaceFlyToã®åå«ïŒãšActionïŒISpaceActionã®åå«ïŒã§ãã FlyCommandã¯ããªããžã§ã¯ãã®çŸåšã®åº§æšãšçŸåšã®é床ïŒç¹å®ã®æéïŒãèšç®ããŸãã èšç®ã¢ã«ãŽãªãºã ã¯ã³ãã³ãã®ã¿ã€ãã«äŸåããŸããè»éäžã移åããå Žåã¯ã1ã€ãããäžæ¹ãçŽç·çã«ç§»åããå Žåãã¹ã ãŒãºã«å転ããå Žå-3çªç®ã§ãã ã¢ã¯ã·ã§ã³ã¯ãããè€éãªãªããžã§ã¯ã移åã¢ã«ãŽãªãºã ãæ åœããŸãã ããšãã°ãTFollowShipActionã¯æå®ãããç®æšãè¿œæ±ããŸãã ãããè¡ãã«ã¯ãUpdateãåŒã³åºããã³ã«ãã¿ãŒã²ããã®åº§æšãå€æŽããããã©ããã確èªããå€æŽãããå Žåã¯ãOwnerã®FlyCommandã³ãã³ããïŒæå®ãããæ°ããã¿ãŒã²ãã座æšã§ïŒçœ®ãæããŸãã Actionã®å®è£ ã«ãããAIã®äœæãå€§å¹ ã«ç°¡çŽ åãããã³ãŒãã®éè€ãåé¿ã§ããããã«ãªããŸãããActionã«å®è£ ãããæ©èœã¯ããã¬ã€ã€ãŒã®è¹ãšãããã«å¿ èŠãªããã§ãã
FlyCommandã®ååšã«ããã空éå ã®ãªããžã§ã¯ãã«å¿ èŠãªã¢ãŒã·ã§ã³ã®ã¿ã€ããç°¡åã«èšå®ãããã®ã³ãã³ããã¢ãŒã·ã§ã³ã®æ¹çšåŒã®ä¿æ°ã®åœ¢åŒã§ã¯ã©ã€ã¢ã³ãã«éä¿¡ã§ããŸãã ããã«ããã転éãããããŒã¿ã®éãå€§å¹ ã«åæžãããæ°ãããµãŒããŒåŽã®åäœã®å®è£ ãç°¡çŽ åãããŸãã
ãã¡ãŒãžãäžãã
TSpaceObjectã¯ã©ã¹ã«ã¯ãCorrectDamageãšApplyDamageã®2ã€ã®ä»®æ³ã¡ãœããããããTSystemã¯ã©ã¹ã«ã¯DoDamageã¡ãœããããããŸãã ãªããžã§ã¯ããå¥ã®ãªããžã§ã¯ãã«ãã¡ãŒãžãäžãããïŒããšãã°ãå°ææãå¥ã®ãªããžã§ã¯ãã«è¡çªããïŒå ŽåãTSystemã«ãããäŒããŸãã ã·ã¹ãã ã¯CorrectDamageãåŒã³åºãããã¡ãŒãžããŒãã§ã¯ãªãå ŽåïŒããšãã°ãææãããããçš®é¡ã®ãã¡ãŒãžãåããªãå ŽåïŒããã¡ãŒãžãupãã«é¢ããã¡ãã»ãŒãžãéä¿¡ãïŒã¯ã©ã€ã¢ã³ãã«éä¿¡ããïŒãApplyDamageãåŒã³åºããŠãåä¿¡è ãç¹å®ã®ã¢ã¯ã·ã§ã³ãå®è¡ããããã«ããŸãHPããã³HPããŒãã®å Žåãè¹ã¯ã³ã³ãããå®å®ã«æããŸãïŒã
TSpaceShipã¯ã©ã¹ã«ã¯FireSlotã¡ãœãããå«ãŸããŠãããããã¯ç¹æ®ãªæ©èœãåããã·ã¥ãŒãã£ã³ã°ãå®è£ ããŸãã 蚱容è·é¢ã確èªããTShip :: FireãåŒã³åºããèœåã®ã¿ã€ãã«å¿ããŠãããã«ã¢ã¯ã·ã§ã³ãå®è¡ããŸãã ããšãã°ãMissileLauncherã¯ãã±ãããäœæããŸãã
Spaceã¢ãžã¥ãŒã«ã®ä»ã®ã¯ã©ã¹
ISpaceShipNotifyReciverã¯ã©ã¹ã¯ãTSpaceShipã§ãæ»æãããŸããããã殺ãããŸããããããã€ããŒãã©ã³ãžã·ã§ã³ã®æºåãã§ããŠããŸãããªã©ã®ã¡ãã»ãŒãžãäžäœã¢ãžã¥ãŒã«ã«éä¿¡ããããã«äœ¿çšãããŸãã
ISpaceSystemNotifyReciverã¯ã©ã¹ã¯ãTSystemã§äœ¿çšãããã¹ããŒã¹ãªããžã§ã¯ãã®è¿œå /åé€ãæ°ããFlyCommandãããã³æå·ã®çºçã«é¢ããã¡ãã»ãŒãžãéä¿¡ããŸãã
TGalaxyã¯ã©ã¹ã¯ã·ã³ã°ã«ãã³ã§ãããGalaxyã®ãã¹ãŠã®TSystemsã®ãªã¹ããå«ãŸããŠããŸãã
ç¶ã
ã·ãªãŒãºã®æ¬¡ã®èšäºã§ã¯ãAIãã¯ãšã¹ããã¡ã€ã³ã¢ãžã¥ãŒã«ãããã³ããŒã¿ããŒã¹ãæäœããããã€ãã®åŽé¢ã«ã€ããŠæ€èšããŸãã ãããŠããã¡ãããããšã«ãã«ã€ããŠããšããã²ãŒã ãžã®çŽæãããé©å¿ã