
éçº
cocos2d-swiftãã¬ãŒã ã¯ãŒã¯ã䜿çšããŸããã 圌ã¯ãšãŠã人æ°ãããå¿«é©ã§ãã SpriteKitãšæ¯èŒããå Žåã®å©ç¹ã¯ã7æªæºã®iOSããŒãžã§ã³ã®ãµããŒãã§ãã ãã®ã²ãŒã ã¯ãiPhoneãšiPadçšã«åæã«äœæãããŸããã iOS 6以éã

ã¬ã³ãŒããå ±æã§ããããã«ããããã«ãUIActivityã䜿çšãããŸãã ããã©ã«ãã§VKontakteã«å ±æãè¿œå ããæ¹æ³ã¯ããã®èšäºhabrahabr.ru/post/214637ã§è©³ãã説æãããŠããŸãã
åã©ãŠã³ãã§ã¯ãæµã¯ã©ã³ãã ãªé床ãšåãã®æ¹åãæã¡ãŸãããé床ã®åèšã¯åžžã«åãã§ãããããã©ãŠã³ãããšã«è€éãã¯æµ®ãäžãããŸããã ã©ãŠã³ãäžã®æµã®é床ã¯åŸã ã«å¢å ããŸãããäžå®ã®å¶éãããããããã¬ãŒã€ãŒã®æ倧çµæã¯ç¡å¶éã§ãã
競æå Žã®äžã®ã¹ã³ã¢ããŒãã«ã¯ãåžžã«ãã¬ãŒã€ãŒã®äžçã©ã³ã¯ã衚瀺ãããŸãã Game Centerã«ç»é²ãããŠãããã¬ãŒã€ãŒã«å¯ŸããŠã®ã¿è¡šç€ºãããŸãã çµæèªäœã«å ããŠãGame Centerã¯çµæã®ããã·ã¥ãæ¥ä»ãã³ãŒãã«çž«ãä»ããããæååã䜿çšããŠå¶åŸ¡ããŒã¿ãéä¿¡ããŸãã ããã·ã¥ã¯ã³ã³ããã¹ãå€æ°ã§éä¿¡ãããŸãã ã¯ããããã¯äžèœè¬ã§ã¯ãªãããšãç解ããŠããŸãããç§ã®æèŠã§ã¯ãåœã®çµæã®å€§éšåãç¹å®ããŠåé€ããã®ã«åœ¹ç«ã¡ãŸãã Game Centerã§ã®åœã®çµæã«å¯Ÿãã100ïŒ ã®ä¿è·ã¯äžå¯èœã§ãã ããã¯ãªã³ã©ã€ã³ã²ãŒã ã§ã¯ãªãããµãŒãããŒãã£ã®ããã€ã¹ããåä¿¡ããããŒã¿ãä¿¡é ŒããŠããŸãã
貧ãããã¥ãŒãã移åããããã®ã³ãŒãïŒ
- (void)touchMoved:(UITouch *)touch withEvent:(UIEvent *)event { if (_gameStatus == kGameStatusStarted) { CGPoint currTouchLocation = [touch locationInNode:self]; _hero.position = ccp(_hero.position.x + currTouchLocation.x - _lastTouchLocation.x, _hero.position.y + currTouchLocation.y - _lastTouchLocation.y); _lastTouchLocation = currTouchLocation; } }
ãã¬ã€ã€ãŒãç»é¢äžã§æãåãããšãäž»äººå ¬ã¯ç«¶æå ŽãåãåããŸãã ãã¬ãŒã€ãŒãç»é¢ã®ä»»æã®éšåã§æã1ã»ã³ãã¡ãŒãã«äžã«åãããšãç«æ¹äœã1ã»ã³ãäžæããŸãã å®éããã¬ã€ã€ãŒã®åãã«å¯èœãªéãéãåå¿ããããã«ããã¥ãŒãã¯åããããã®ã§ã¯ãªããå³åº§ã«ãã¬ããŒããããŸãã æãéåžžã«ãã°ããåããããšãã§ãã競æå Žå šäœã60ãã¬ãŒã /ç§ã§1-2ãã¬ãŒã ã§é£ã°ãããšãã§ããŸãã ããã§ããã³ãã«å¹æãçŸããŸãã è¡çªã¯1ç§éã«60åãã確èªãããªããããæµãããæããããšãã§ããè¡çªã¯çºçããŸããã ç§ã¯æãç°¡åãªæ¹æ³ã§è¡ã£ãã ãã¹ãŠã®åããã·ãã¥ã¬ãŒãããè¡çªããã§ãã¯ããé »åºŠã6åã«å¢ãããŸããã ãªã6æã«ïŒ ãã®ä¿æ°ãè©ŠããŠã¿ããšããã1ç§éã«360åãã¹ãŠã®äœçœ®ãæŽæ°ããã°ããã¹ãŠãæ£åžžã§ããããšãããããŸããã CPUãªãœãŒã¹ãç¡é§ã«ããã ãã§ãããã«é »ç¹ã«å®è¡ããŸãã ä¿æ°ã6ã®å ŽåãCPUè² è·ã¯10ïŒ ã ãå¢å ããŸãã iOSã§ã¯ãç»é¢äžã®æã®çŸåšã®äœçœ®ã1ç§ããã60åçºè¡ãããŸããã¿ããã¹ã¯ãªãŒã³ã®ããŒãªã³ã°ã¬ãŒãã«åœ±é¿ãäžããããšã¯ã§ããŸããã ãŸããè³¢æã§ã¯ãªããçŸåšãšåã®äžéç¹ã5ã€ã ãèŠã€ããŸãã
for (i = 1; i <= kPositionsUpdatesPerFrame; i++) { currNewHeroPosition = ccpAdd(_lastFrameHeroPosition, ccpMult(heroStartAndNewPositionsDifference, i / kPositionsUpdatesPerFrame)); ⊠}
ãã³ãã«å¹æïŒ

ã°ã©ãã£ãã¯ã¹
åã®å³ã¯ãç§ã®èžè¡çå¯èœæ§ã®éçã§ãã ããªãŒã©ã³ã¹ã§ãã¶ã€ããŒãèŠã€ããŸããã åªããæ¥åœããã®è¯ãçµµãæããå°å¥³ã 倧ããªãã©ã¹ã¯ã圌女ããã¯ã¿ãŒã§æãããšã§ããã®ã§ãiPadãšiPhoneã®ç°ãªã解å床ãšå°ããªç·šéã§åé¡ã¯ãããŸããã§ããã è²»çšã¯21,500ã«ãŒãã«ã§ãã ããã«ã1ãæéã®Adobe Illustrator CCã®900ã«ãŒãã«ïŒ30æ¥éã®è©Šçšæéãçµäºãã誀ã£ãŠããã°ã©ã ãçµäºããŸããïŒã

æŽè¡ã®ããªãšãŒã·ã§ã³ïŒ

å±±ã®ãªãã·ã§ã³ã¢ã€ã³ã³ïŒ

幟äœåŠçãªæ°åïŒ

é³æ¥œãšé³
ãã®ãããªåçŽãªã²ãŒã ã§ã¯é³æ¥œãå¿ èŠã§ããïŒ ç§ã¯ããã¯æããŸããã ããããç§ã¯ãŸã é³æ¥œã®äŒŽå¥ãè¿œå ããããšæ±ºããŸããã æ°çŸäžã®äºç®ã§ã¯ãŒã«ãªãããžã§ã¯ãã§é³æ¥œãèŽããŸãããé³æ¥œã奜ããªããã²ãŒã ã®äœæ²å®¶ãæ¢ããŠããŸããã ç§ã¯2人ã®äœæ²å®¶ãéžã³ãŸããã 1ã€ã¯åœŒãåããŠããäŒç€Ÿãšã®å¥çŽã®ããã«æåŠããä»ã®ã¢ãã€ã«ã²ãŒã çšã®é³æ¥œãæžãããšã¯ã§ããã2ã€ç®ã¯ïŒããæèã§ã¯ãªãïŒåæããŸããã é³æ¥œã®è²»çšã¯çŽ14,500ã«ãŒãã«ã§ãã
ç§ã¯ç¡æãšææã®ãµãŠã³ãã¹ããã¯ã§é³ãæŸããŸããã freesound.orgãšpond5.comããå§ãããŸãã freesound.orgã§ã¯ãMinecraftãŸãã¯Flappy Birdã§äœ¿çšãããŠãããµãŠã³ãã«å¶ç¶åºãããããšããããŸãã ãŸããpond5.comã«ã¯ãå°é¡ã®ãéã§å€§éã®åªããé³æ¥œãšãµãŠã³ãããããŸãã
èšå®ã«ã¯ãé³æ¥œçšãšãµãŠã³ãçšã®2ã€ã®ã¹ã€ããããããŸãã ä»ã®ã²ãŒã ã§ãã®ãªãã·ã§ã³ãæ±ããŠãã人ãããèŠãŸããã

åçå
åºåã¯åçåã«äœ¿çšãããŸãã 1ãã«ã§ãªãã«ããããšãã§ããŸãã ã²ãŒã äžã«ãããŒãããã«æåŠããŸããã ç¹ã«å€ãããã€ã¹ã§ã¯ãç»é¢äžã®è²Žéãªã¹ããŒã¹ãå æããã²ãŒã ã«ãã¬ãŒãããããŸãã
ã²ãŒã ã§ã¯ãiAdãAdMobãChartboostã®ãã«ã¹ã¯ãªãŒã³åºåã䜿çšããŠããŸãã ç§ã®æèŠã§ã¯ããããã¯çŸæç¹ã§æãåçæ§ã®é«ããããã¯ãŒã¯ã§ãã Googleãè³Œå ¥ããAdMobã¯ãåºåãããã¯ãŒã¯ã ãã§ãªããAppleã®iAdãå«ã12ãè¶ ãããµãŒãããŒãã£ãããã¯ãŒã¯ããµããŒãããŠããŸãã ã€ãŸããAdMobãå®è£ ããã°ååã§ãããAdMobãä»ããŠæ¢ã«ä»ã®ãããã¯ãŒã¯ãæ¥ç¶ããŠãããããäœæéãããã¥ã¡ã³ããç解ããå¿ èŠã¯ãããŸããã æ®å¿µãªããChartboostã¯ãµããŒããããŠããŸããã æ¥ç¶ããããããã¯ãŒã¯ããšã«ãGoogleããã¢ããã¿ãŒãããŠã³ããŒããããã«ããã§ãŒãº->ã©ã€ãã©ãªãšãã€ããªããªã³ã¯ã«è¿œå ããå¿ èŠããããŸãã

ããŒã«ãªãŒãŒã·ã§ã³
ã²ãŒã ã¯14èšèªã«ç¿»èš³ãããŠããŸãã Real Racing 3ã®èšèªã®ãªã¹ããååŸãããã«ã³èªãè¿œå ããŸããã åœç¶ãããã¯æåŸã®ã¹ãããã§ããå¿ èŠããããŸããããããªããšãã²ãŒã å ã§äœããå€æŽãããå Žåããã¹ãŠã®ç¿»èš³ãä¿®æ£ããããã«èŠãããããŸãã äžè¬çã«ã¯ãå¯èœã§ããã°ã翻蚳ããã«ãã¹ãŠãæ確ã«ããããšããå§ãããŸãã ã¢ã€ã³ã³ã¯ç§ãã¡ã®ãã¹ãŠã§ãã
onehourtranslation.comã§ç¿»èš³ã 翻蚳è ã«åè¡ã«åŸ¹åºçãªã³ã¡ã³ããå ããã¹ã¯ãªãŒã³ã·ã§ãããšãããªãæäŸããããšããå§ãããŸããããããã°ããã¹ãŠãã¹ã ãŒãºã«é²ã¿ãããã§äœãæå³ããã®ããäžåœäººã«é·ãèŠçãªã説æããå¿ èŠã¯ãããŸããã 翻蚳ã¯4,000ã«ãŒãã«ããããŸããã
ããŒã«ã©ã€ãºåŸãå°ããªåé¡ã衚瀺ãããŸãã ã¹ã¯ãªãŒã³ã·ã§ããã®å±±ãäœæããå¿ èŠãããïŒç§ã®å Žåã¯210ïŒãiTunes Connectã§ããããã¹ãŠãåããå¿ èŠãããããŸãã ïŒiPhoneã®2ã€ã®è§£å床+ iPadã®1ã€ã®è§£å床ïŒ* 5ã€ã®ã¹ã¯ãªãŒã³ã·ã§ãã* 14ã®èšèª= 210ã®ã¹ã¯ãªãŒã³ã·ã§ããã 30çªç®ã®ã¹ã¯ãªãŒã³ã·ã§ããã§ç§ã¯æ®ºããããšæãã UI Screen Shooterã¯ããã¹ãŠã®èšèªã®ã¹ã¯ãªãŒã³ã·ã§ãããèªåçã«ã¯ãªãã¯ããã®ã«åœ¹ç«ã¡ãiTC Localized Screenshot Uploaderã¯ãiTunes Connectã«ã¹ã¯ãªãŒã³ã·ã§ãããèªåçã«ã¢ããããŒãããŸãã äž¡æ¹ã®ãããžã§ã¯ãã¯githubã§å©çšã§ããŸãã ã¹ã¯ãªãŒã³ã·ã§ãããã¯ãªãã¯ããããã®ç¹å¥ãªã²ãŒã ã¢ãŒããäœæããŸããããã®ã¢ãŒãã§ã¯ããã¹ãŠããè»éã«ä¹ã£ãŠãè¡ããç»é¢ãæŒããŠã¹ã¯ãªãŒã³ã·ã§ãããæ®ããåŸ æ©ããŠããããäžåºŠæŒããªã©ã®UIã¹ã¯ãªãŒã³ã·ã¥ãŒã¿ãŒçšã®ç°¡åãªã¹ã¯ãªãããæžããŸããã 210æã®ã¹ã¯ãªãŒã³ã·ã§ããã«ã¯30åããããŸãã ããããäž»ãªããšã¯ããã¹ãŠãå®å šã«èªåçã«è¡ããããšããããšã§ãã UIã¹ã¯ãªãŒã³ã·ã¥ãŒãã£ã³ã°ã®ã¹ã¯ãªããïŒ
#import "capture.js" var target = UIATarget.localTarget(); var window = target.frontMostApp().mainWindow(); var model = target.model(); var delayFactor = 1.0; if (model.match(/iPad/)) { delayFactor = 3.2; } target.delay(2.5 * delayFactor); target.tap({x:100, y:200}); target.delay(2.0 * delayFactor); captureLocalizedScreenshot("screen1"); target.tap({x:100, y:200}); target.delay(2.0 * delayFactor); captureLocalizedScreenshot("screen2"); âŠ
iPadã®delayFactorä¿æ°ã¯å®éšçã«ååŸãããŸãã Retina iPadã·ãã¥ã¬ãŒã¿ãŒã¯ç§ã®MacBookã§éåžžã«é ãããã¹ãŠã®é 延ãå¢ããå¿ èŠããããããç§ã¯ãããå°å ¥ããŸããã

åºç瀟æ€çŽ¢
次ã®åºç瀟ã«ã²ãŒã ã«é¢ããæ å ±ãéä¿¡ããŸããïŒChillingoãFDG EntertainmentãFingersoftãWoogaãKamaGamesãG5 GamesãApps MinistryãPocket GemsãRenatusãBig Fish GamesãGame Insightã äžéšã¯çãããããªãã£ãã ããã€ãã®åºç瀟ã¯ããã¹ãçãéä¿¡ããããã«äŸé ŒããŸããã
ããåºç瀟ã¯èå³ãæã¡ããã®ã²ãŒã ã¯ããã€ãã®åœã§ããã10ã®ç¡æã¢ããªã«ææ Œã§ãããšè¿°ã¹ãŸããã ãã¹ãŠã®åå ¥ã¯ååã
ã²ãŒã ã®åçã¯ãæ¥äžã«ã²ãŒã ã«åå ãããã¬ã€ã€ãŒã®æ°ã«äŸåããŸãïŒDAU-Daily Active UsersïŒã Flappy Birdã1æ¥50,000ãã«ã皌ãã ããšã¯èª°ããç¥ã£ãŠããŸãã ã²ãŒã ã®æ¯æ¥ã®èŠèŽè ã¯200äžäººã®ãã¬ãŒã€ãŒã§ããã ãã·ã¢ã®ãããã«ãªã£ãåŸãã²ãŒã ã®èŠ³å®¢ã¯1æ¥ããã2äžäººã«ãªããåºåãã1æ¥ããã300ã400ãã«ãç²åŸããŸãã ããã«ãã¢ããªã±ãŒã·ã§ã³ã«æªãã¬ãã¥ãŒãé åã®ãªãã¢ã€ã³ã³ãŸãã¯ã¹ã¯ãªãŒã³ã·ã§ããããããã¢ããªã±ãŒã·ã§ã³èªäœã«åé¡ããªãå Žåãææã€ã³ã¹ããŒã«ã®ã¹ããªãŒã ãçµäºãããšãã¢ããªã±ãŒã·ã§ã³ã¯äžããé£ã³åºãããããªãã·ã£ãŒã®æè³ã¯å ±ãããŸããã
1æ¥ããã·ã¢ã®App Storeã§ããã10ã«å ¥ãããšãä¿èšŒããããã«ã13ã2äžãã«ãæäŸããæºåãããŠãã ããã æ°åã¯å€ããå¯èœæ§ããããŸãããããã¯ãã¹ãŠã²ãŒã ã®ãã€ã©ã«æ§ãã€ãŸãã人ã ãã²ãŒã ãã¢ããã€ã¹ããæ¹æ³ã«äŸåããŸãã å人ããã¢ããã€ã¹ãåãã人ã¯ç¡æã§ãã åãŠãŒã¶ãŒã1人ã®æ°ãããŠãŒã¶ãŒãããããå Žåãã¢ããªã±ãŒã·ã§ã³ã¯ççºçãªæé·ãæåŸ ããŸãã å®éããã®ææšã¯ã»ãšãã©åžžã«1æªæºã§ãã ãããã«å°éããããã«ã€ã³ã¹ããŒã«ãè³Œå ¥ããããšã¯é«äŸ¡ãªæèšã§ã¯ãããŸããã 1åã®ã€ã³ã¹ããŒã«ã«ã¯1.5ã3ãã«ããããŸãã ããã§ã¯ããŠã€ã«ã¹æ§ã¯èæ ®ãããŠããŸããããããå®äŸ¡ã§ãã ãªããããã«å°éããã®ãç®æšã§ããïŒ ã¢ããªã±ãŒã·ã§ã³ãé ç¹ã«éãããšã人ã ããããã®é ç¹ãèŠããããèšå€§ãªéã®ç¡æã€ã³ã¹ããŒã«ãæäŸãããããšã¯æããã ãšæããŸãã
ã¿ã€ã3ã®å€§èŠæš¡ã§é«å質ã®ã·ã§ã¢ãŠã§ã¢ã²ãŒã ã®1人ã®ãã¬ã€ã€ãŒã¯ãã²ãŒã ã®ã人çãã®å šæéã«ããã£ãŠ3ã4ãã«ä»¥äžããããããŸãã 1人ã®ã²ãŒã ã§ã²ãŒã å ã®è³Œå ¥ã«æ°çŸãã«ãç°¡åã«è²»ããããšãã§ããããããããã¯ãžã©ãã®åå ãªãã§ã¯ãç¡æã²ãŒã ã§ã®äžäººåœããã®ãã®ãããªé«ãå¹³ååçã¯éæãããŸããã åºåã¢ãã«ã§ã¯ãããã¯éçŸå®çã§ãã æåŸã«ãåºç瀟ã®ä»£è¡šè ã¯ãã¹ãŠã®ååŒãæãããã®ãããªãªã¹ã¯ãåããªãããšã«ãããšè¿°ã¹ãŸããã
èå³æ·±ãäºå®
8æ18æ¥ã®å€æ¹ãã8æ23æ¥ã®å€æ¹ãŸã§ãGame Centerã«éä¿¡ãããçµæã¯ãã¹ãŠãéä¿¡åŸçŽ30åã§æ¶ããŸããã ãã¹ãŠã®ã²ãŒã ã§ã Appleã¯ãã®äºå®ã8æ22æ¥ã®éçºè ãã©ãŒã©ã ã§ã®ã¿èªèããŸããã ãã¬ã€ã€ãŒããã圌ãã®èšé²ããªããªã£ããšãããã£ãŒãããã¯ãåãåããŸããã ç§ã«ãšã£ãŠã¯ãGame Centerããã®æ å ±ãä¿¡é Œããã®ã¯ééãã§ããã ãã®åé¡ã®ãããäžéšã®ãã¬ãŒã€ãŒã®çµæã¯ããŒã«ã«ã§ãªã»ãããããŠããŸãã 8æ18æ¥ãã23æ¥ã«åä¿¡ããã¬ã³ãŒãã®äž»èŠæ°ãçµæããŒãã«ã«è¿ãããŸããã ãããããã¹ãŠã§ã¯ãããŸããã
Apple Developer Forumã®ãããã¯ïŒ
devforums.apple.com/thread/241761?tstart=0
devforums.apple.com/thread/241366?tstart=0