RetroWeb ~iPhoneとAndroidでハイブリッドゲームアプリ開発~

AIR for iOS+AndroidでSmartPhone Game ハイブリッドアプリ開発

最近作ったアプリ
100億本の抜け毛 100億匹のモナー DQ3闘技場アプリ モナーペット(進化)

Adobe AIRで開発したアプリが、ランキング1位になりました。

仕事で開発したFlashAdobe AIR)ゲームが、Androidストア1位になりました。Appleストアは確かベスト10くらい。
f:id:hisashi_vc:20141001164219p:plain

特に狙っていたわけでもなく、ノー有料プロモでした。ランクインした原因はおそらく、「ちょwwwこのキャラがこれやったら滑らないよね」にあるかと思います。

ランキングのグラフ遷移
f:id:hisashi_vc:20141001164350j:plain


●最近公開したゲームはこちら→モナーハンター(PC体験版あり) 

開発したゲームアプリの動画を公開しました(モナーハンター)

モナーハンターのプレイ動画?を公開しました

モナーハンター スマフォ向けゲームアプリ プレイ動画 - YouTube

キャプチャは下記のアプリを使用しました。
高画質ビデオキャプチャーBandicam


●公開したゲームはこちら→モナーハンター(PC体験版あり)
 

GameFeatのane公開

もはや半年前の物ですが、アプリ広告ゲームフィートのAdobeAIR用aneを公開しました。

http://hisapo.sakura.ne.jp/dl/GameFeat20140411.ane

iOSAndroidで、アイコン広告と、おすすめゲーム一覧が表示できた気がします。
使い方は、コード保管とかで何とかなるに違いない・・!

キャプチャ画面のある、過去のエントリー

AIRアプリで、ハイブリットGameFeat広告を実現 - RetroWeb ~iPhoneとAndroidでハイブリッドゲームアプリ開発~


最近公開したゲームはこちら→モナーハンター

Adobe AIR for iOSのiOS8アップロードエラー対応(iPhone6アップロードエラー対応)

下記zipと交換したらなおりました。
使用中のair sdkフォルダ内の、/lib/aot/bin/ld64と交換。

http://hisapo.sakura.ne.jp/dl/ld64_hisashi.zip

AIRSDKは最新版にしてからやった方が良いかも。
iPhone6が発売されてから、itunes connectアップ時にエラーが出るようになってしまいましたが、これでなんとかなりそうです。

なおアップ時のエラーは下記です。

ERROR ITMS-9000: "Invalid Segment Alignment. This app does not have proper segment 
alignment and should be rebuilt with the latest version of Xcode. Please contact Developer  
Technical Support if you need further assistance.

なお今まではipaアップロードすれば完了でしたが、アップロード後にitunes connectで最終設定してはじめてレビュー待ちになりました。順番が逆になったのかな。


●最近公開したゲームはこちら→モナーハンター(PC体験版あり) 

超久々に更新&新アプリ公開しました。

超久々の更新ですみません&アプリゲーム公開しました。

f:id:hisashi_vc:20141001152115p:plain

モナーハンター☆モナーたちを罠であつめよう

ひとまずAndroid版&PC体験版です。iPhone版は申請を本日15時にしました。
図鑑UI、ショップUI、収穫ゲームロジック、アイテム課金、1ソースでトリプル同時展開(Android版、iPhone版、PC体験版)に挑戦しました。
図鑑は250体くらいのボリューム 

11連ガチャを公開しました。

魔法石10個で11回できますw
また、上から下に書いてたプログラムがさすがに厳しくなってきたので、全体をクラス化しました。これで拡張や修正や使い回しがし易くなります。

あとはショップやマップや新ステージやフレンドランキングや服装アイテムやGPU処理最適化や分割ダウンロードや課金実装したいなあ。

f:id:hisashi_vc:20140530195926p:plain

ヘルプページの公開

ファンレター(?)が100通くらいきたので、ヘルプページというか、よくある質問の回答ページを作りはじめました。アプリからもWebViewで見れます。

http://hisapo.sakura.ne.jp/pazumona/page/help.php


作ってるゲームアプリ… http://goo.gl/knd4G8

エンタープライズ版のプロビジョニングファイルの罠回避法

iPhone開発するとき、社員が400人以上いる場合は、エンタープライズ版のprovisioningファイルを使うと便利です。
http://plus.vc/iphone/3355/

しかし最近クライアントから、ipa配布用のHTMLからアプリがダウンロードできなくなったという知らせが。。原因を調べたところ、iOS7.1にアップデートすると、https越しじゃないとダウンロードできなくなるようです。さくらインターネットの場合は下記設定ですぐhttps使えます。
http://support.sakura.ad.jp/manual/rs/web/ssl_shared.html

注意点としては、Download用のページのみならず、そのHTML内のhttp記述と、その先のplist内のhttp記述もみんなhttpsにする必要があるという点でした。

しかしエンタープライズ版のプロビジョニングファイル、ベンチャーやインディーズにも公開して欲しいなあ。


個人で作ってるゲームアプリ→ http://goo.gl/knd4G8

ゲームアプリプレイヤーの方の反応 アイコン作ってもらいました

ダイレクトメッセージやツイッターで日々感想を頂き、それを元に(糧に)パワーアップのPDCAサイクルになってきました。

申し訳ないほどありがたいことに、ツイッターの自分のアイコンにしてくれた女子高生の方も現れ、日々予想外の展開。
f:id:hisashi_vc:20140519110042j:plain

アプリ:http://goo.gl/knd4G8

ガチャUIを新たに開発開始

ユーザーからオーダーもあったので、ガチャを改めて開発開始
上の禿げ頭から出てくるのは、ノリで作ったけどボツ案wで、下のブタ貯金箱で完成目指す予定です。

f:id:hisashi_vc:20140509162323j:plain

f:id:hisashi_vc:20140509162332j:plain

https://itunes.apple.com/jp/app/kong-feibushimamurakun/id825465264
https://play.google.com/store/apps/details?id=air.retroweb.flappysimamura.production

iPhoneアプリの審査スピードが速くなる裏ワザ

審査速度が速くなる裏ワザが判明しましたが、こういうのは知ってる人は知ってて、かつ人に話すわけにもいかないので、ネット上にも流れないのでしょう・・w
存在するという情報は共有できるのでメモ。

https://itunes.apple.com/jp/app/kong-feibushimamurakun/id825465264
https://play.google.com/store/apps/details?id=air.retroweb.flappysimamura.production

デバッグ処理が残っていると、リジェクト

デバッグトレースや、デバッグボタンが目に見えて存在していると、Appleからリジェクトされることが判明しました。 リジェクト検定アプリとかあっても良いとおもったw

https://itunes.apple.com/jp/app/kong-feibushimamurakun/id825465264
https://play.google.com/store/apps/details?id=air.retroweb.flappysimamura.production

毎日自動でPHPプログラムにPHPプログラムを書かせるようにしました。

PHP連想配列変数くらい、PHPに毎日自動で更新してもらうことにしましたw
デイリー過去ログランキングのリンクと、1位の名前の配列更新。

画面キャプチャと、役に立つか謎なプログラムはこんな感じです。includeするphpを自動で更新してます。自動イベント運用も夢じゃない!
f:id:hisashi_vc:20140508005035j:plain

include_once "rankerInfo.php";

$mod = filemtime("rankerInfo.php");
//print "最終更新日:".date("Y/m/d H:i",$mod);

$isYesterdayUpdate = date("d") != date("d", $mod);

//PHPファイルを更新する。
if($isYesterdayUpdate){
	function get_filename_arr($dir, $ext0){//$match) {
	    $filename_arr = array();
	    $dh = opendir($dir);
	    while(($filename = readdir($dh)) !== false) {
			$ext = substr($filename, strrpos($filename, '.') + 1);
	        if($ext === $ext0){
	            $filename_arr[] = $filename;
	        }
	    }
	    return $filename_arr;
	}

	$logNames = get_filename_arr(".", "log");

	$todayStr = date('y')."d".date('z').".log";
	$thisWeekStr = date('y')."x".date('W').".log";

	$dailyArrayStr = "";//14d122.log
	$weeklyArrayStr = "";//14x18.log

	for($i=0; $i < count($logNames); $i++){
		$fileName = $logNames[$i];
		if($todayStr !== $fileName && strpos($fileName, "d")){
			//ファイル名先頭から名前取得?
			//echo $fileName."@日間<br>";
			//ロード
			$fp = fopen($fileName, 'r');
			if ($fp){
			    if (flock($fp, LOCK_SH)){
					$rank1Name = fgets($fp);
					$rank1Name = substr($rank1Name, 0, strpos($rank1Name, "\t"));
			        flock($fp, LOCK_UN);
			    }else{
			        //print('ファイルロックに失敗しました');
			    }
			}
			fclose($fp);
			$dailyArrayStr = "'".str_replace(".log", "", $fileName)."'=>'".$rank1Name."',\n".$dailyArrayStr;

		}else if($thisWeekStr !== $fileName && strpos($fileName, "x")){
			//ファイル名先頭から名前取得?
			//echo $fileName."@週間<br>";
			//ロード
			$fp = fopen($fileName, 'r');
			if ($fp){
			    if (flock($fp, LOCK_SH)){
					$rank1Name = fgets($fp);
					$rank1Name = substr($rank1Name, 0, strpos($rank1Name, "\t"));
			        flock($fp, LOCK_UN);
			    }else{
			        //print('ファイルロックに失敗しました');
			    }
			}
			fclose($fp);
			$weeklyArrayStr = "'".str_replace(".log", "", $fileName)."'=>'".$rank1Name."',\n".$weeklyArrayStr;
		}
	}


	$phpTxt = "<?php\n".
		"\$dailyRank1Array = array(\n".
		$dailyArrayStr.//"	'14d125'=>'あんっー',\n".
		");\n".
		"\$weeklyRank1Array = array(\n".
		$weeklyArrayStr.//"	'14x18'=>'(ま゜ー゜さ)ノ'\n".
		");\n".
	"?>";

	//phpでまるごと保存
	file_put_contents("rankerInfo.php", $phpTxt);
}

https://play.google.com/store/apps/details?id=air.retroweb.flappysimamura.production&0508