ラベル INVADER BLOCK2 の投稿を表示しています。 すべての投稿を表示
ラベル INVADER BLOCK2 の投稿を表示しています。 すべての投稿を表示

2014年3月9日日曜日

始まりはいつも、Invader Block

昨日(8-Mar-2014)、GameDaddy(Android)版Invader Block 3をリリースしました。
GooglePlayでダウンロード(無料)
iPhone版についても、近日中に公開予定です。

SUZUKI PLANのゲーム開発の歴史を振り返ってみると、
・大人になってからゲーム開発を再開した時 → Invader Block
・VGS(Android版)を作った時 → Invader Block 2
・GameDaddy(Android版)を作った今 → Invader Block 3
という具合に、始まりはいつも、Invader Blockです。

SUZUKI PLANの代表作といっても過言ではないでしょう。
SUZUKI PLANの一番人気は東方VGS売上げトップはNOKOGI Riderですが、Invader Blockには、人気でも売上げでも、これらを抜き去る潜在能力があると思っています。

難易度を調整

しかし、Invader Blockの評価はそれほどではありません。
そこで、GameDaddy版を作るに当たって、評価を阻害し得る要因を取り除くことにしました。

Invader Block 2をリリースしてから2年。
「爆発的なヒット」こそしませんでしたが、2年も経てば、結構色々な方々からご意見を頂く機会がありました。
ポジティブな意見としては、(本業の)取引先の会社の課長さんに半ば強引に買って貰ったのですが、その課長さんの息子さんが至極気に入ったみたいで、延々とゲームをプレイし続けていたようです。また、マレーシア辺りでは非常に反応が良く、ただ一言「Very good!」と書かれたメールを送って頂いたりしました。
Android版Invader Block 2(Free)の国別分布
(マレーシアが3位!)
ネガティブな意見としては、「難易度が高すぎる」という感じのものが多かった印象です。(私自身、サクッとプレイできるInvader Block 2ぐらいの難易度がほど良いと思っていますが)

以前、会社の同僚やそのご家族にプレイしていただき、その様子を観察したところ、どうも、アクションゲームが苦手な人は、ボールの軌道などを「先読みして行動」していない事に気付きました。例えば、ボールが一定の低さまで落ちて来るのを視認してから初めて回収行動に入ったりとか。それでは、反射神経or運に頼ってプレイすることになるため、自然とミス率が高くなり、「難しい」と感じてしまうのではないかと分析しました。(逆に、ゲームが上手い人は、先読みするポイントを適確に早く理解できるから、すぐに上手くなる)

Invader Block 3では、その辺りのことを考慮して、ゲーム性が無くならない程度に、難易度を引き下げるバランス調整を施しました。具体的には、玉の速度を遅くしたり、雷撃をしないようにしてみたりしています。これらの調整は、「Invader Block 2との差別化」という意味でも良い感じになったかも。

広告とモノクロ+インタレースの相性

Invader Block 3は、GameDaddyのゲーム第一弾ということで、GameDaddyの一番の特徴である、モノクロ+インタレースのグラフィックを全面的にプッシュしてみました。例えば、アイコンにもソレ(モノクロ+インタレース)がにじみ出てます。
Invader Block 3のアイコン
実は、このモノクロ+インタレースの描画には、単なる雰囲気的なものだけでなく、重要なポイントがあります。それは、「広告が浮く」ということです。
広告が「浮く」様子
インタレースの画像の上に、非インタレースの画像を載せると、後者が浮き立つ視覚効果があります。シューティングゲームなどではこの「浮き立つ」効果を利用して、背景BGはインタレース、プレイヤや空中の敵キャラ等のスプライトを非インタレースで描画するCG作成技術があります。(PC-98のBurning Dragon Plusというシューティングゲームで、その表現方法が採用されていました)

同じ理屈で、ゲーム画面(インタレース)の上に広告(非インタレース)を乗せれば、広告が浮き立ち目立つから、広告が単なる背景の一部として認識されてしまうことを防ぐことができます。(こうすることで多分、CTRが高くなります)

ただし、「浮いている」だけに、ゲームプレイ中に表示されていると視覚的に(かなり)邪魔な存在になってしまうから、広告を表示するのはタイトル画面のみで、また、誤タッチが発生しないようにするため、画面上部への表示にしています。(3.5インチのiPhoneだと、画面下部へ表示せざるを得ないですが)

私自身、少額ですが幾らか広告出稿の経験があるので、広告主サイドの視点から見て、Invader Block 3は、理想的な媒体になるようにしてみました。GoogleのAdMobチームあたりから、「理想的な広告掲載アプリの例」みたいな感じで取り上げて貰えたりしないかな?w

2013年2月25日月曜日

海外向けプロモ(レビュー依頼) - update#6

海外向けのプロモーション活動として、いくつかのレビューサイトに依頼を出してみました。
対象物は、NOKOGI Rider、NOKOGI Rider(Lite)、Invade Block 2(Free)で。
海外のレビューサイトは探すだけでも大変だと思うので、とりあえず纏めておきます。

【今日依頼を出したサイト】
http://www.pocketgamer.co.uk/
http://www.androidrundown.com/
http://mobileapps4biz.net/
http://www.whatsmyapp.com/
http://mikel305.jimdo.com/
http://www.androiddoes.net/

一番載りたいのはPocketGamer。(1番上)
恐らく、最大手だと思います。
# というより、PocketGamer以外は、ゲームに特化している訳ではなさそう。
その次はAndroidRunDown。(上から2番目)
ゲーム寄りという意味で。

PocketGamerについてはNOKOGI Riderのみ、他は両方の依頼をしました。
NOKOGI Riderは、基本的に有償版で依頼を出しましたが、AndroidRunDownの場合、APKの送付も必要だったからLite版で。

PocketGamer以外は、フォームに入力していくタイプです。
メッセージを書く必要があるものや、フリーフォーマットのものも幾つかあります。
その場合、英作文しないといけないのでちょっと大変かも。
PocketGamerの場合、メールで依頼しなければならないので、フリーフォーマットよりも大変。

参考までに、PocketGamerに送信した依頼内容(メール)は、以下のような感じです。
Hello,

I will introduce "NOKOGI Rider" that I developed.

NOKOGI Rider is a vertical-scrolling danmaku STG (hell-barrage shooting game).
It features '90s arcade-style graphics and complex music based on wave memory sounds.
The game itself has a rather retro feel, but the controls are designed specifically for the touch screen of a smartphone.
For example, unlike many games that have been ported from arcade games, there are no difficult to use software buttons on the screen.
The game can be played easily with one hand.

More detailed information:

Regards,
Yoji Suzuki

私は英語が得意な訳ではないので、英文が適切かどうかは分かりません。
基本的には、「https://googledrive.com/host/0B7c8xPyv4KQWMm8yaXFKdG5TU0E/index.html」で書いている説明書の概要部分に対して、英文メール文書の一般的な枕詞と結語を加えただけです。
だから、多分大丈夫なハズ。

なお、英語版の説明書については、Gengo(の一番安いプラン)で翻訳しました。
(私が幾らか内容を書き換えてますが)


25-Feb 追記(update#1)

どうやら、「http://www.askyourandroid.com/」は金を取るっぽいですね。
返信は一番早かった。
「通常価格25$のところ、20$でやってあげるよ」という、微妙なディスカウント。
割引せずとも安価ですが、狙い目ではないので放置で。
ついでに、PayPal決済だと言われたのですが、現状、アカウントへ入金するには解除手続きを取る必要があるっぽいから、面倒。


26-Feb 追記(update#2)

レビュー依頼先に以下を追加。
http://www.androidpolice.com


26-Feb 追記(update#3)

http://www.whatsmyapp.com/」から返信到着。
依頼はちゃんと受け付けられたっぽい。

ついでに、有償レビューの案内が添えられていた。価格は25$。
この辺りが相場なのだろうか?
そもそも、日本だと有料レビューというのを少なくとも私は見た事が無いのですが、向こうでは普通?
とりあえず、よく分からないので有料での依頼は保留。

【現在の状況】
①自動返信の連絡あり http://www.pocketgamer.co.uk/
②連絡なし http://www.androidrundown.com/
③連絡なし http://mobileapps4biz.net/
④エントリ http://www.whatsmyapp.com/ (有料案内は保留)
⑤連絡なし http://mikel305.jimdo.com/
⑥×有料のみ? http://www.askyourandroid.com/
⑦連絡なし http://www.androiddoes.net/


27-Feb 追記(update#4)

掲載率を高めるための工夫は必要なんじゃないかと思います。
無意味かもしれないけど。
例えば、
・SNSアカウントはフォローしておく
・ユーザ登録(無料)が可能なサイトはユーザ登録しておく

PocketGamerを狙っていたのに、上記2点を失念していたので、今実施。
2営業日程度のラグが発生してしまったか...
そういえば、イギリスではNOKOGI Riderの購入率が高いので、実はすでに紹介済みという可能性もあるかもしれません。


27-Feb 追記(update#5)

http://www.androidrundown.com/ から好感触なメールがktkr。
1行のメールでした。これは期待できるかも。
長いメールは概ねテンプレートだと判断できますが、短い(&好感触な)メールの場合、ちゃんと内容がチェックされた上で返信してきたのだろうと思うので。もちろん、カンですが。

【現在の状況】
①自動返信の連絡あり http://www.pocketgamer.co.uk/
好感触? http://www.androidrundown.com/
③連絡なし http://mobileapps4biz.net/
④エントリ http://www.whatsmyapp.com/ (有料案内は保留)
⑤連絡なし http://mikel305.jimdo.com/
⑥×有料のみ? http://www.askyourandroid.com/
⑦連絡なし http://www.androiddoes.net/
⑧連絡なし http://www.androidpolice.com


28-Feb 追記(update#6)

好感触な返事をいただいたAndroidRunDownさんからのメールを、英語が得意な知り合い(TOEIC満点の人)に確認して貰ったところ、「前向きにレビューするための評価をしてみるよ。うぃーす☆」という感じのようでした。

要するに、レビュー掲載の確約ではなく、審査対象になった状態だと判断できます。
NOKOGI Riderは、内容さえチェックして貰えれば大丈夫だと思います・・・たぶん。

ちなみに、「うぃーす☆」という部分は「Cheers」です。
乾杯の時とかの掛け声でよく使う言葉らしい。
英国では、友人間のメールの結語として使ったりするようです。

そこで、「ありがとうございます。楽しみにしてます。」的な感じの返事を送信。
こちらがフォームで入力したメールアドレスが「ちゃんと連絡が取れるもの」だということを先方に知らせる為にも、良い感じの返事を頂いたサイトの担当者さんには、なるべく早く折り返しメールを出しておいた方が印象が良いと思います。
コミュニケーションは基本。

2013年2月19日火曜日

広告アプリの成果が良い地域についての分析経過

InvaderBlock2の無料版(広告付き)をリリースして6日目になります。
過去5日間のインストール実績@GooglePlayは、下表のような形です。
# date install uninstall u率 有効数 前日比 総数
1 14-Feb Thu 1 0 0% 1 - 1
2 15-Feb Fri 13 3 23% 11 1100% 14
3 16-Feb Sat 21 10 48% 22 200% 35
4 17-Feb Sun 35 14 40% 43 195% 70
5 18-Feb Mon 23 10 43% 56 130% 93

恐らく、この成果の大半は15-Feb以降に開始した、Tap for Tapの有償広告によるものです。

Tap for Tapの有償広告による成果については、下表のとおり。
imp tap tap/imp install 構成比 total ins/tap CPI Cost CPC
- - - - - - - - - -
29455 328 1.11% 14 108% 14 4.27% $0.40 $5.60 $0.02
42206 1029 2.44% 30 143% 44 2.92% $0.40 $12.00 $0.01
95382 1992 2.09% 33 94% 77 1.66% $0.40 $13.20 $0.01
27381 619 2.26% 28 122% 105 4.52% $0.40 $11.20 $0.02
※「構成比率」というのは、GooglePlayのinstallに占めるTap for Tapの有償広告によるinstallの割合です。理論上、構成比率が100%を超えることは有り得ないかもしれませんが、GooglePlayにおける有効インストール数は「有効端末のインストール数」に限られるため、GooglePlayにおける無効端末でのインストール数も含まれているのだと思います。(若しくは、uninstall→tap→installということをやる人も居るかもしれませんが、それは流石にレアケース・・・と信じておきます)

そして、収益実績値は、下表の通り。
imp tap tap/imp tap/inst Earned EPI
34 0 0% 0% 0 0.00
51 4 8% 36% 100 7.14
88 6 7% 27% 190 5.43
100 5 5% 12% 130 1.86
66 7 11% 13% 280 3.01
実績値(Earned)の単位はCreditです。
1クレジットに幾ら(何セント)の価値があるのかは、今のところ未確認。

ここからが本題です。

完成した広告アプリで収益を獲得するのに必要なことは、第一にユーザの獲得です。
加えて、「広告をクリックしてくれ易いユーザ」を多く獲得すれば、収益率が高くなります。

もちろん、クリックしてくれ易い広告を出してもらうことが重要ではありますが。
Tap for Tapの場合、表示する広告種別に関する選択肢は、「エッチな広告を出すか否か」の一点。
※私のアプリ(Invader Block 2)では、エロ広告の表示については、OFFにしてます。
つまり、表示される広告に関する選択の余地はありません。

先述しましたが、現時点で獲得したユーザの大半は、15-Feb以降に開始した、Tap for Tapの有償広告によるものです。これを逆説的に捉えると、現時点で獲得しているユーザは、「広告をクリックしてくれ易いユーザ」と考えることができます。

以前、Googleのセミナーに参加した時、「広告のクリックし易さには地域差がある」と聞きました。
現時点で獲得したユーザの地域については、デベロッパーコンソールで確認できます。
現状は、下図のような感じでした。
トップはマレーシア、亜米利加。

アメリカは、ティア1(クリック単価が高い)ので、当然ながらメインターゲットです。

マレーシアがトップなのが意外。
マレーシアは、ティア3の地域なので、若干クリック単価が安いのですが、無視できないかも。
インドについては有名ですね。ただし、ティア4なので、クリック単価が物凄く安い(アメリカの1/4)です。でも、インドでのインストール数が増えて以降、ティア4での成果が少しづつ出てきたという事実もあるので、そこそこ重要な地域だと言えるかもしれません。

まだ、インストール数が少ないので何とも言えませんが。
1000インストールぐらいいけば、結構確定的な傾向が見えてくるんですが。。。
ちなみに、Tap for Tapの有償広告は成果報酬型(ノンインセンティブ型)です。
驚くことに、CPI単価はたったの40セント。
日本のノンインセンティブ型の広告会社の1/3~1/5という驚きの安さです。
まぁ、値段相応の何かがあるのかもしれませんが。。。

なお、上記はあくまでもInvaderBlock2での傾向であり、他のアプリでも同じとは言えません。
しかし、リリース直後に広告出稿をすることで、こういうデータを収集することができる訳です。

2013年2月17日日曜日

VGSでの広告表示(Tap for Tap)

先日、InvaderBlock2のフリー版(広告付き)を公開しました。
広告の実装には、Tap for Tapを採用してみました。
私は、どちらかというと広告ビジネスに否定的な見解を示していたので、その釈明を兼ねて考え&TIPS(VGSのアプリで広告を実装する方法)を記しておきます。

広告会社の概要

Tap for Tapは、カナダ(米国のブリティッシュコロンビア州)に拠点をおく広告会社です。
私のアプリ事業は、北米方面を中心に展開しているので、そっち方面の会社の方が良かろうという判断です。米国本土の方が良いかもしれませんが、サービス内容が興味深かったので、そこにしてみました。デベロッパー数は6,000人前後。(まだ新興企業ですね)

サービス概要

Tap for Tapの場合、プロモーション(ユーザ獲得)と収益化のバランスを、任意に調整できます。
例えば、広告で得た収益の全てをプロモーションに使うことができます。
# 実質的な費用対効果については、まだ十分なデータが集まっていないので未確認。

利用した経緯

NOKOGI Riderの販売を開始してもうすぐ半年ぐらい経過します。
その間の販売実績は、現時点で57本ぐらいと不調です。
ゲームそのものは面白いと思います。
しかし、如何せんプロモが弱すぎることが売れない原因かもしれません。
マネタイズのみの広告アプリというのは、未だにちょっと疑心暗鬼しています。
しかし、プロモ用途でちょっと使ってみるぐらいなら良いんじゃないかと思い始めました。

ただし、広告を入れれば結構沢山のパーミッション要求が必要になります。
NOKOGI Riderに関しては、それで汚したくないと考えました。
そこで白羽の矢が立ったのが「InvaderBlock2」です。

「InvaderBlock2」は、GooglePlayでの販売テスト用にリリースしたアプリです。
ゲームそのものの面白さは中々だと思ってます。
しかし、やはり実質的に有償販売だけなので、サッパリ売れません。
(一応、1年で10本ぐらい売れましたが)

ついでに、InvaderBlock2は、広告アプリで成功するために必要な要素を持っています。
恐らく、広告アプリとしての潜在能力は、NOKOGI Rider以上です。
そう思っていた矢先、Tap for Tapの担当者から「InvaderBlock2に広告を載せてくれ」というeメールがあり、サービスを確認したところ私の方針(プロモーション強化)にマッチしていると思ったので、それを利用してみることにしました。

VGSアプリでの広告の実装方法(基本編)

とても簡単です。以下、InvaderBlock2のソースコード(Java側)の抜粋で説明します。
    @Override
    public void onCreate(Bundle savedInstanceState) {
        try {
            ~VGS関連の初期化(中略)~
            } else {
                // View の設定
                mMainView=new VgeSurfaceView(this);
                mLayout=new FrameLayout(this);
                mLayout.addView(mMainView);
                getWindow().setContentView(mLayout);
                TapForTap.initialize(this, "自分のAPIキー");
                mAdView = new AdView(this);
                DisplayMetrics metrics = getResources().getDisplayMetrics();
                int width = metrics.widthPixels;
                int height = (int)(50 * (width / 320.0));
                LinearLayout.LayoutParams myLayoutParams = new
                                        LinearLayout.LayoutParams(width, height);
                mAdView.setLayoutParams(myLayoutParams);
                mAdParam=new FrameLayout.LayoutParams(
                    FrameLayout.LayoutParams.MATCH_PARENT,
                    FrameLayout.LayoutParams.WRAP_CONTENT,
                    Gravity.BOTTOM);
                mLayout.addView(mAdView,mAdParam);
                mAdPut=true;
            }
        } catch(Exception e) {
            Log.e(LOG_TAG, "AN EXCEPTION DETECTED.", e);
        }
    }
前半の初期化処理は、VGS固有の初期化処理なので中略しました。
ポイントは青色の網掛け部分です。
広告の処理は、ゲームとは別のビューで実装します。
大まかに、VGSのプログラムに広告を実装する場合、次のような実装をすればOKです。
(1) FrameLayoutクラスのオブジェクト(mLayout)を準備
(2) ゲーム本体のビュー(mMainView)を作成し、mLayoutに追加。
(3) 広告表示用のビュー(mAdView )を作成し、mLayoutに追加。
なお、実装中の緑色の網掛け部分は、広告ビューのスタイルを設定する処理です。
この部分は、レイアウトのxmlでも良いかもしれません。(サンプルはその方式でした)

メイン処理(C言語)との連携処理

広告を表示しっぱなしのアプリであれば、上記の実装でOKです。
ただし、ゲームの場合、ゲームのプレイ中に広告表示がされるのはハッキリ言って邪魔です。
そこで、広告の表示をON/OFFできる仕組みの実装方法を解説します。

VGSの場合、C言語で実装しているメイン処理に広告のON/OFFなどのオペレーションを要求するためのインタフェースを実装する必要があります。下記のような感じで良いと思います。
    /*
     *------------------------------------------------------------------------
     * Java側への要求を取得する (JNI)
     *------------------------------------------------------------------------
     */
    public static native int getRequest();
※数値(jint)でオペレーションを返す仕様にします(0 = None / 1 = put ads / 2 = delete ads)

そして、VgeSurfaceViewのスレッドでオペレーション(0以外)を取得した場合、アクティビティクラスでそれを処理できるようにするために、アクティビティクラスにハンドラ関数を実装します。
    public Handler handler = new Handler() {
        public void handleMessage(Message msg) {
            switch(mRequest) {
                case 1: //広告を表示
                    if(!mAdPut) {
                        mLayout.addView(mAdView,mAdParam);
                        mAdPut=true;
                    }
                    break;
                case 2: //広告を削除
                    if(mAdPut) {
                        mLayout.removeView(mAdView);
                        mAdPut=false;
                    }
                    break;
            }
            mRequest=-1;
        }
    };

VgeSurfaceView側の実装はこんな感じでOKです。

    public VgeSurfaceView(Context context) {
        super(context);
        act=(IBLOCKA)context;
        vram=Bitmap.createBitmap(XSIZE,YSIZE,Bitmap.Config.RGB_565);
        vram.setDensity(Bitmap.DENSITY_NONE);
        vramRect=new Rect(0,0,XSIZE,YSIZE);
        getHolder().addCallback(this);
    }


    @Override
    public void run() {
        SurfaceHolder holder=getHolder();
        Canvas canvas;
        int rc=0;
        int rq;
        while (isAttached) {
            canvas=null;
            try {
                rc=IBLOCKA.setVram(vram);
                canvas=holder.lockCanvas();
                if(null!=canvas) {
                    canvas.drawBitmap(vram,vramRect,screenRect,screenPaint);
                }
            } finally {
                if(null!=canvas) holder.unlockCanvasAndPost(canvas);
                if(rc!=0) break;
            }
            rq=IBLOCKA.getRequest();
            if(0!=rq) {
                IBLOCKA.mRequest=rq;
                act.handler.sendEmptyMessage(0);
            }
        }
        if(0!=rc) {
            System.exit(0);
        }
    }
getRequestで0以外を取得した場合、値をアクティビティクラスのメンバ変数にセットして、sendEmptyMessage関数でハンドラ関数を実行して、1(広告を表示)または2(広告を削除)を実行します。
実は私はJavaが苦手なので、あまりJavaっぽくない作り方かも。
この辺りは、お好みでアレンジしてください。

概ねこんな感じの実装を使えば、VGSのアプリに広告を実装できます。
広告の実装方法については、AdMobなどの他の広告会社のものでも、基本的なことは概ね同じじゃないかと思います。





2012年9月16日日曜日

InvaderBlock2 version 2.08

長らく、アップデートをしていなかったInvaderBlock2を、久々にバージョンアップ(2.08)しました。
2.08では、ポーズ機能の実装や、非フルスクリーンモードの採用など、NOKOGI-Riderの基盤部分の仕様と合わせる形にする仕様変更をおこなっています。

私見では、NOKOGI-Riderよりも、InvaderBlock2の方が「スマホらしいゲーム」ではないかと思っています。たとえば、電車の待ち時間などの2~3分程度の暇つぶしをする場合なら、NOKOGI-Riderよりも、InvaderBlock2で遊ぶ率の方が高いです。新幹線で2時間移動する場合ならNOKOGI-Riderをやりますが。「スマホらしいゲーム」=「短時間でサクッと遊べるゲーム」というイメージ。

ちなみに、InvaderBlock2ですが、取引先の会社の課長さんに頼んで買ってもらったところ、息子さんが結構気に入ってくれたらしく、延々とやり続けていたようです。スコアランキングが埋まっていくのが楽しいとか。私も昔はそういうタイプ(スコア稼ぎゲーが好き)だったので、将来が楽しみです。

なお、Lite版はありません。
Lite版が無いから1本も売れないと思っていましたが、日本と米国のDLサイトでWindows版を無料で配る宣伝形態で宣伝してみたところ、10本弱の販売成果がありました。それでも、その半分程度は知り合いなどに買ってもらったものですが。(やはり、Androidでゲームを売るならLite版は必須です)

Android上での動作については、NOKOGI-Riderと全く同じエンジン(VGE)で作っているので、NOKOGI-Rider(Lite版を含む)が正常に動作する環境であれば、概ね正常に動作すると思います。


2012年4月26日木曜日

Invader Block 2 was uploaded in SOFTPEDIA

Invader Block 2(Windows版)が、SOFTPEDIAさんという海外サイトで配布開始されたようです。
http://games.softpedia.com/get/Freeware-Games/Invader-Block.shtml

Download.comの紹介文は私が書いたのですが、上記はSOFTPEDIAのライターさんが紹介文を書いてくれました。意思疎通する程度の英語を書いたり読んだりするのは概ね問題無いのですが、英語圏の方の感覚にマッチした書き方は分からないので、助かります。
「アルカノイド&スペースインヴェーダーにインスパイアされたファンゲーム」
とのこと。
なるほど。

アップロードから数分程度しか時間が経っていないのですが、もう、15本ぐらいDLされたようです。
これで、ちょっとは海外でも(Android版が)売れるかな。
まぁ、売れる売れないは別として、色々な国の人に遊んで貰えるだけでも嬉しいものです。

2012年4月11日水曜日

Invader Block in CNET Download.com

Windows版の「INVADER BLOCK 2」が無事、公開されました。
http://download.cnet.com/Invader-Block/3000-2095_4-75699783.html?tag=main;dropDownForm

CNETのスタッフ(?)により、表示タイトルが「Invader Block」へ修正されてしまったようですが。
- 全部大文字というのは、ヘン。
- タイトルに2が付いてないやんか?
あたりの事情かな。
まぁ、大した問題ではありません。

申請~アップロードまでに掛かる時間は、概ねVectorと同じぐらいといった感じのようです。
ダウンロード数がデイリーかリアルタイムかは不明ですが、Web上で確認できるのが良いです。
ただ、CNET側に独自のインストーラが組み込まれるのがちょっとアレですが。

Vectorの場合、月次でメールで報告という方式 or 申請して報告を貰う方式なので、面倒。ついでに、例のクラッキング問題で、月次メールが来ないらしいので、国内では果たして何本ダウンロードされたのかが不明です。

あと、Vectorは、アップロード申請もできない状態だったので、CNETの方が最新版になります。

2012年3月28日水曜日

自動消灯の抑止

Android用のゲームプレイ中に気になることは殆どないのですが、INVADER BLOCK 2では、リプレイデータを再生中、一定時間が経過すると勝手に画面が消灯してしまうことに今さら気付く・・・

デバッグ機(タブレット)は消灯OFFなので気付かず、スマホではリプレイを再生したことが無かったので気付きませんでした。やっぱり、無駄機能でしたかね?(リプレイ)

消灯設定OFFにするには、何か許可(permission)が必要だと思っていたので、ちょっと微妙な気分だったのですが、どうやら、特別な許可を設定しなくても良いようです。

Javaのコードであれば、
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
とやるだけ。

もちろん、4/8に公開するバージョン2.05には入れておきます。

海外向けの公開先確保

海外向けのWindows版(無料版)の公開先として、CNETのupload.comにユーザー登録しました。

会社概要(company description)を200字以上の英文で書かなければいけないのが厄介でしたが、何とかなりました。登録申請から数時間後に、「内容をレビューするから3/31(予定)まで待ってくれ」という内容(英語)の返事があったので、結果は不明。(多分、問題無いと思いますが)

一応、Android版のバージョンアップ(4月8日)後、同時にWindows版「INVADER BLOCK 2」をupload.comへ登録申請をしようと思っているので、3/31でも全く問題は無いですが、問題あった場合はどうしようか。。。

とりあえず、INVADER BLOCK 2のREADMEを英訳する作業を済ませました。
その英訳が違和感無く読めるかどうかが微妙ですが。
たぶん、意味は通じると思いますが、所々、おかしな表現があるのは否めません。
商業とIT分野の英語なら割と普通に読めるのですが、書くのは難しい。。。

しかし、gmailの方に届くメールの英文率が高い・・・
仕事でも英文でやりとりすることが稀によく有るのですが、中々慣れることができません。

2012年3月27日火曜日

Windows版INVADER BLOCK 2(2.05)先行配信

無償版(Windows版)のINVADER BLOCK 2バージョン2.05を先行配信しておきます。
http://www.k2.dion.ne.jp/~ysuzuki/IBLOCK2.ZIP
※プレイには、DirectX End User Runtimeが必要です。

ご意見・ご要望等を頂けると嬉しいです。
4月7日までにご連絡いただいたものは、可能な限り製品版(Android版)に反映させます。

耐久床

「INVADER BLOCK 2」に耐久床を付ける改造が完了。
タイトル画面はこんな感じにしました。
ボタン式にしました。
(アイコンだと、押せるのかどうかが分かり難かったので)

で、本編のゲーム画面は下図のような感じです。



軌道の表示(GUIDE)は、バージョン2.03(公開中の最新版)よりも、若干見易い色に変更。
床の耐久力は、ボールの衝突を1回だけ耐えられる程度にしました。
当初、3回にしようとしましたが、ゲームバランスが悪かったので、1回だけ。

ちなみに、GUIDEをONにすると、ラウンドクリア時のボーナスが1/2になり、FLOORをONにすると、ラウンドクリア時に累計ボーナスアイテム数がリセットされる形になります。(スコアペナルティ)

あとは、前回(2.03)のように焦ってリリースせず、早くとも4月8日以降にリリースする方向で、デバッグしまくっておきます。ついでに、このバージョン(2.05以降)をリリースするまでに、海外でWindows版の「INVADER BLOCK 2」を売り込むため、海外のダウンロードサイト(登録先)を幾つか物色しておこうと思います。(ついでに、日本のダウンロードサイトも、Vector以外の配布チャネルを増やす方向で検討中)

2012年3月26日月曜日

破線表示のON/OFF機能(2.04)

とりあえず、破線表示をON/OFFする機能を実装してみました。

※このバージョン2.04は非公開です

先ほどの記事に書いたように、破線表示のON/OFF状態もリプレイに記録される形になります。
更に、旧バージョンのリプレイデータも問題無く、再生可能。
ただし、旧バージョンのリプレイデータは常に、破線非表示の状態で再生される形になります。。。

もちろん、このまま公開しても良いのですが、流石にそれだと芸が無さ過ぎるし、次のアップデート間隔までの猶予もあるので、このバージョンは非公開にします。

リプレイデータの空き領域に結構余裕があるので、更に、画面の下に3回程度、ボールの落下を耐える床のモードとかを追加すると楽しそうじゃないかと思ったりしています。

問題はタイトル画面がゴチャゴチャしてきたということ。
やっぱり、文字項目は5項目以下じゃないと、見栄えが悪い。。。
ガイド表示、耐久床、サウンド(=ON/OFFで設定するもの)は、アイコン表示っぽい感じの方が良いのかも。

「近日」とは

昨日、「INVADER BLOCK 2」のバージョン2.03をアップロードしたのですが、いきなり有効インストール端末数が2つ減ってしまったことに心を痛めています。やはり、仕様変更=オプション化は必須という風に真摯に受け止めて対応しようと思います。

で、あわてて「近日中にオプション化したものを公開します」という一文を追加しておきました。

ただ、その一文を追加してふと思ったのですが、先日の不具合対策(バージョン2.01)から1週間も間を空けずにバージョン2.03をアップロードしてしまったため、ウザッたらしく思われてしまったのではないか・・・とも考えました。

という訳で、(不具合の対策を除く)急を要さないアップデートに関しては、今後、直前のリリースから2週間以上の間を空けてアップデートしようと思います。(もちろん、明確な要望があれば、それを優先しますが)
なので、オプション化対応のものは、(ある程度脳内で仕様は固まっているので、ほぼ完成しているのですが、)来月8日前後を目処にアップロードすることにします。

現状の脳内仕様としては、次のアップデートでは、タイトル画面で軌道を表示するか否か選択できるようにして、且つ、リプレイデータ再生時に、プレイした時の設定でリプレイを再現する感じにします。もちろん、リプレイデータの互換性を保った状態で。(ただし、現状公開しているバージョン2.03以前のリプレイデータは、全て軌道が表示されない形で再生される形になると思います)
ジックリとデバッグする期間を確保するのも目的の一環なので、速く具現化はしておきたいところ。

2012年3月25日日曜日

Windows版INVADER BLOCK2(2.03)

先ほどにGoogle Play(Android Market)で公開した、「INVADER BLOCK 2」バージョン2.03と同一の修正を行った、Windows版(@Vector)を差し替える手続きをしました。
一応、Vectorで公開予定のバージョンでは、Android版で行った細かい修正を幾らか取り込んでいるので、先ほどの記事でアップした先行公開版とは、若干異なるものになります。(殆ど誰も気付かないレベルのものですが)

しかし、このブログを始めてそろそろ一ヶ月ちょっとになりますが、ちゃんと見られているのやら。
一応、ページビューのカウントが3,000ぐらいなので、私以外に誰も見ていないということも無いと思いますが。ただ、米国からのアクセスがやたらと多いから、恐らくロボットの巡回カウントが結構含まれている筈なので、生身の人間のアクセス数はPVの1/10ぐらいかな。

一応、そこそこ有用な記事はGoogle検索でも引っ掛かるっぽいので、有用な情報を配信すれば、自作ソフトの宣伝効果にもなるのかな・・・と、思ったり、思わなかったり。私が作った、Android/Windows共用のVG-Engineの仕組みについて、ポイントを絞って解説記事を載せたりすれば、結構有効かもしれないと思っています。

ただ、技術系情報を載せる場合、ライトなものの方が良いという噂をよく聞きますが。
レベルが高いと折角記事を書いても、読まれる可能性が低いとか。
一定の技術力が有る人なら、公式の情報+Androidのソースを直接解析してモノ作りをするものなので、そもそもニーズが無いとか。

まぁ、私は物書きではないので、記事で宣伝とかは考えず、ゲームのラインナップを増やしていく方が堅実だと思います。折角宣伝しても、商材が「INVADER BLOCK 2」一本というのは弱すぎるので。やはり、本格的な宣伝活動に動くのなら、10本ぐらいは商材が欲しいです。そのために、開発効率よく、Android用ソフトウェアを開発できる仕組み(VG-Engine)を作った訳ですし。

結論(バージョン2.03)

INVADER BLOCK2バージョン2.03をリリースするか否か・・・結論は、リリースする方向です。
先ほど、マーケット上でアップデートを行いました。
この変更が受け入れられるか否か・・・ちょっとしたギャンブルかもしれません。

【蛇足】
あと、VGS Chiptune Musicをアップロードした時にも気になったのですが、個人情報の保護方針のURL入力を求められるようになったようなので、策定&公示しておきました。
http://hp.vector.co.jp/authors/VA040196/privacy.htm

ズラズラと色々書いてありますが、要するに個人情報の利用目的はプログラム製品の販売管理及び当事者との保守連絡(不具合への対応や要望事項に関するやりとり等)のみです。これまで、Windows用の他製品に関しても、同様の規定で対応していて、第三者への提供などは行ったことがないので、ご安心ください。

あまりにも常識的過ぎるし、法律(個人情報の保護に関する法律)でも規定されていることなので、敢えて明文する必要性を感じなかった(というより、書くと逆に「やましいことでもあるのか?」と思われてしまうと思った)のですが、求められる以上はあった方が良いと判断しました。
まぁ、しっかり意思表示しておくことは重要だと思います。

難易度論

前の記事で公開したWindows版INVADER BLOCK 2のバージョン2.03ですが、Android版をビルドして、スマホ端末(RAZR)の方にもインストールして遊んでみたんですが・・・やはり、面白さが2.56倍ぐらい大きくなった気がします。(まだ、マーケットには流してませんが)

恐らく、2.01以前は2面までしか行けなかった人も3面、4面まで行けるようになる感じになり、ゲーマーならクリアも目指せるようになったと思います。(ボーナスアイテムを無視して、とことん安全にプレイすることが容易に可能になったので)
また、ハイレベルなプレイヤーなら、より高度な戦略を組み立てられるようになったので、ライト~ヘビーの水準に関係なく、楽しめる内容に仕上がったんじゃないかな。結果として難易度が落ちたのですが、これは良い落ち方(上級者にも受け入れられる落ち方)だと思います。

本題からかなり脱線しますが、昔、将棋ゲームのドキュメントに、「弱く作る方が難しい」と書いてありました。
弱くするために、わざと悪手を打ったりしてしまうと興醒めだとも書いてありました。
まさにその通りだと思います。

実は、将棋が上手くない人の方が、将棋を上手い人よりもコンピュータで表現するには高度な思考をしていて、その熟慮の上で導き出した一手だから、対戦していて面白い・・・という事だと思います。それは、プロでも同じ(多分)。プロの対局の場合、決着が付いた後に検証みたいなことをやっていて、NHK教育の将棋番組なんかでは、放送時間が余っていたらその検証場面も流してくれる事があるのですが、それがかなり面白いので、一度は見てみることをオススメします。棋譜からは読み取れない、色々なものが分かります。要するに、コンピュータの場合、只管強くしていくことは容易なんですが、その「棋譜からは読み取れない、色々なもの」を全て表現することは不可能な訳です。将棋の、上手 or 下手に関係なく。(上手 or 下手の違いは、その部分の量と質のみ)


私は、「最近のゲームには簡単なものが多い」と感じているのですが、それは、先の例に倣えば「悪手を打つ」ような簡単さだから興醒めしてしまったのかもしれません。そうならないように、バランスを保った上で難易度を落とす工夫は必要。

今回の教訓から私が学ぶべきことは、リリースを焦り過ぎないこと。
リリース前だったら、この2.03相当の機能は即採用できたので。

あと、リプレイ機能はルールが完全に安定後の後バージョンで追加した方が良いかもしれません。
初期バージョンでつけてしまうと、ルール自体には手を入れられないので。
ただ、そうそうルールが変えられてると、プレイヤが困ってしまう可能性が高いので、その抑止機能として初期バージョンから付ける方が正解かもしれませんが。(INVADER BLOCK 2のテストプレイをやってもらった取引先の方に言わせれば、リプレイ=無駄機能とのことですが)

反射軌道も表示

どうせ、軌道を表示するのなら、反射後の軌道も表示した方が良いんじゃね?
という天の声が聞こえたので、その対策も実施。(バージョン2.03)
http://www.k2.dion.ne.jp/~ysuzuki/IBLOCK2.ZIP

恐らく、この仕様変更は、現状ご購入頂いているヘビーなゲーマーさんにも歓迎される筈。
跳ね返り角度も認識できることで、運の要素(Ninjaなら目測できなくもないかもしれませんが)をより減らすことができるから、戦略的性質(=ゲーム性)が高くなるので。

色々な議論があることかもしれませんが、ゲームにはエンターテインメント性とストラテジ性というものがあって、前者の要素が強いものが世間一般の人が持っているゲームに対する印象だと思います。
しかし、私が作るゲームを気に入っていただけた方というのは、ゲームに対してストラテジ性を求めている方に違いない・・・という楽観的な観測を信じることにしてみようと思います。

最終的な結論は、明日(今日)、よく考えてから決めますが。
睡眠不足の状態ではロクな判断ができないので。

でも、初期バージョンだったら迷わず2.03の仕様でいくのは確か。
少なくとも私にとっては、現状のINVADER BLOCK 2よりも2.5倍ぐらいは楽しくなったので。

2012年3月24日土曜日

予定軌道を表示する機能

「INVADER BLOCK 2」が難し過ぎるということで、入り口を広げるための工夫として、ボール落下時の予定軌道を表示する機能を入れてテストしているんですが、これなら、ゲーム本編の方に入れてしまっても問題無いんじゃなかろうか・・・という案が浮上してきました。

この「予定軌道を表示する機能」というのは、分かり易くいうと、下図のように落下時(ボールのY方向ベクトルが正の時)に、壁の跳ね返りのみ考慮した形で軌道をドットで表示する・・・というもの。
上図では、分かり易くするために実線で示していますが、実際のゲーム画面では破線で示した形になっています。実際にプレイして貰った方が分かり易いので、この機能を入れたバージョン(2.02)のWindows版をアップしておきます。
http://www.k2.dion.ne.jp/~ysuzuki/IBLOCK2.ZIP

これなら、互換性に影響しません。
また、既購入者(=難しいゲームが好きなゲーマーのみと想定)からも、文句言われないんじゃないかなぁ・・・と、思っています。というのも、平均よりはゲームが上手い人の場合、(このゲームでは)ちゃんと予定軌道を目視で測ってプレイしている(その上で、可能な限り得点アイテムを回収しつつ、ボールを落とさないバー運びをする戦略の組み立てを楽しんでいる)なので。

ただ、「既購入者うんぬん」の内容は、想像の域を出ません。
そして上記の想像は「楽観的な観測」なので、鵜呑みにするのは一般的に危険です。
欧米の会社は、楽観的な観測だけでとんでもない仕様変更をよくしてきますが。
しかし、私は、欧米人ではないので、最低限、オプション化(表示・非表示の切り替え)は必要かな。
しかし、設定系の操作を複雑にはしたくないので、中々厳しい。

とりあえず、マーケットに流してみて反応を伺うというのもアリかな?
・・・という、楽観的な観測もあります。
しかし、「一度追加した機能を文句を言われて外すという失態は信用問題だ」という、昔ながらのお役人さんみたいな意見もあります。(@私の脳内でのこと)

2012年3月23日金曜日

難易度の対策(予定)

INVADER BLOCK 2の難易度に関して、マーケットのコメントでは特に意見は無い(というよりコメントは未だ無い)ですが、やはり、難し過ぎるというのものが多いです。

ただし、ゲーム本編の難易度については、変更するつもりは無いです。
数人とはいえ買ってくれた人が居る訳だし、(私のように)現状の難易度で満足している可能性もあるので、ゲーム本編の難易度に手を入れる事は、出来ないと思っています。(ついでに、リプレイデータの互換性も保ちたい)

しかし、入り口を広げる努力はしておきたい所です。
具体的には、練習モードというのを追加しようと思っています。
練習(プラクティス)というよりは、訓練(トレーニング)的な要素の方が強いものになるかも。

ボールの予定軌道のガイドを表示するモードや、落ちる(落ちそうになる)前にボールの速度をスローダウンさせるモードなど。それらのモードで繰り返しやれば、ゲーム本編のプレイ時間を長くする効果が得られそうなものを考え中。
とりあえず、今思いついているのはその2モードですが、3モードぐらいは欲しいです。
あと、練習モードはステージ1限定+スコア・リプレイ保存無しとするつもり。
(本編はあくまでも現状のまま)

ただ、時間が足りないので、時間が若干掛かるかもしれませんが。
まぁ、そこは何とかするしかない。

2012年3月10日土曜日

広報活動(INVADER BLOCK2)

INVADER BLOCK2の広報活動として、フリーゲーム夢現さんにWindows版の記事を投稿。
フリーゲーム夢現さんは、リンクの少なさに定評がある私のホームページ(http://hp.vector.co.jp/authors/VA040196/)のリンクに載せているゲームレビューサイトです。
「リンクが少ない」っていうより、現状、フリーゲーム夢現さんしか載せてませんが。

フリーゲーム夢現さんは、去年SHOT03を販売した時にも利用させていただきました。
SHOT03は、今になって思えば、フリーで出しておけばそこそこ遊んで貰えたかも。
それでも、300本ぐらいはダウンロードされたので、「フリーじゃないから売れなかった」のではなく、純粋にツマらなかったのであろう・・・と、反省しておきます。(フリーだとそもそも売れませんが)

幸い、INVADER BLOCK2は現時点で数本、売れました。
ご購入いただいた方々は本当にありがとうございます。
正直な所、「1本も売れないんじゃないか」と思っていたので、最初の1本が売れた時は驚きました。

ちなみに、INVADER BLOCK2が売れ始めたのは、VectorでWindows版を無償公開後。
Windows版を無償で公開するというやり方は、中々良かったかもしれません。
それをやるのは、技術的に少し大変かもしれませんが。
(エミュレータを作れる程度の技術力があれば、簡単に作れます)

合理的ではないものを作りたい

ここ最近、実機版の東方VGSの開発が忙しくて、東方VGSの曲追加が滞っています。 東方VGS(実機版)のデザインを作りながら検討中。基本レトロUIベースですがシークバーはモダンに倣おうかな…とか pic.twitter.com/YOYprlDsYD — SUZUKI PLAN (...