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

2011年2月18日金曜日

魔王なんてたおしちゃうから!2ndリリースしました



この度「魔王なんてたおしちゃうから!2nd」をAndroidMarketにリリースしました。
開発期間が長かったのでリリース前は結構しんどかったです。

リリース後の微調整もだいぶ終りまして、やっとブログも記事を投稿できるぐらいの余裕ができてきました。

かなり作り込んだので面白いゲームに仕上がったと思います。是非お試しください!

魔王なんてたおしちゃうから!2nd

2010年7月11日日曜日

面白いゲームについての考察 1



ゲーム開発は設計云々より、想像力と根性と感情移入が大事なのかなと感じました。これはいろいろ意見が分かれそうではありますが。

数ヶ月前にシステムに感情移入するなみたいなことをTwitterに書いたんですが、ゲーム開発は真逆ですね。「問題なく操作できる」ではなく「面白くて手放せない」というものを作らないといけない訳ですし。普通のシステム開発とは違う貴重な体験でした。

「ゲーム開発とは」みたいな書籍をずっと読みあさっていた時期があるのですが、ゲームの面白さは思いつく限りあげると「パズル」「スリル」「感情移入」「コレクション」「ソーシャル」に分類されるのかなと思えて仕方が無いのです。

『「おもしろい」のゲームデザイン』 http://j.mp/96fiJk 
と言う本があるのですが、一番印象に残っているのは「新しいパターンを学習するときに脳が活性化して面白いと感じる」というような内容です。これはまさにパズル的な面白さだと思います。

初めてグアムに行った時、空港についただけで楽しくなりますが、次の年に再びいっても、単なる移動作業みたいな感覚にとらわれます。こういう感覚にとらわれた事がある人は大勢というかほとんどの人がそう感じると思うのです。

いかに複雑なパターンをプレイヤーに提供し続けるかは、ゲーム開発の鉄則だと個人的に思います。さらにこの「新しいパターンで脳活性」の理屈で究極のAI、NPCとは何かということも妄想するのですが、結局それは人間だと思うのですよね。つまりオンライン対戦です。

対戦ゲームは相手がいろいろ学習して、予想できない動きをしてくる訳でして、人間以上に複雑な動きが出来る NPCはちょっと思いつきませんし。

次に「スリル」なのですが、安全欲求とか基本的な感情をいかにゲームで刺激しようか模索してまして、夜中に大学の心理学の教科書を引っ張りだして、内容を確認しながら調整していました。今思うとよくこんな事一人でやってたなと思うのですが。

極端に強い「中ボス」をランダム出現させる機能を実装した事があってこれはプレイヤーを理不尽に倒すためです。語弊があるかもしれませんが、安全な環境でヌクヌク過ごすよりも突然変異種に急に追いつめられるスリルが大事かなと思いました。

あと「感情移入」なのですがこれはミラーニューロンが関係していると思うのです。僕は茂木健一郎さんの『脳と仮想』という本に感銘をうけて一時期読みあさっていたのですが、ある書籍でミラーニューロンの記述がありました。

専門でないのでざっくりと書くのですが「他人がしている行動を自分の脳の中で同じ事をしたようにシュミレートする」ような機能が脳にはあるようです。逆にこの機能があるから「鏡に映った自分が他人ではなく自分と認識できる」ような記述があったように思えます。

諸説あると思うのですが、シナリオに感情移入する本質的な原理は「ミラーニューロンが働きすぎて錯覚を起こしている状態」と個人的には思えるのです。

いかに錯覚を起こさせるかは、まずゲームの世界に引きずり込むような導線が必要だと思うのですよね。これはゲームニクス http://j.mp/duUlDC という本がとても参考になりました。とにかく引きづり込むことをしないと次が始まらないですし。

次にキャラに感情移入させるにはどうするかなのですが、これは2chの萌え板を見た方が早そうです。ただ「ツンデレ」はアメリカの心理学の研究で有効だとデータがあるそうです。ゲイン・ロス効果というらしいです。

魅力的なキャラクタはつまり現実世界で他人に魅力を感じる心理だったりするので、広範囲に及ぶので割愛しますが、もう一つ別角度から考えると「どう記憶に定着させるか」も大事だと思えます。

キャラに感情移入が出来て長期記憶に定着させる事に成功したらたぶん開発者としては成功なのですよね。一番分かりやすい手法は強烈な事件を起こす事ですよね。いろいろな映画でもよくある方法ですし。これ以上書くとネタバレになるのでゲームが発売中は書けませんが。

次に「コレクション」「ソーシャル」は、これから実装しようと考えているので、まだ調査不足で深い知識も無くかけません。分野的には社会心理学が関係しているかとおもって大学で受講したのですが、多岐にわたるので要点をまとめづらいですね。

あれこれ考えていた事を吐き出してスッキリしました。移植作業に戻ります。ほんとに独り言です。

2010年6月28日月曜日

NexusOne, Droidでテクスチャがでない問題




「魔王なんて!」発売後、かなり悩まされた問題があります。特定の端末で「テクスチャが全く表示されない」という現象です。発生端末は海外の端末全てのようで、主にNexusOne, Droidで発生すると申告が来ていました。
(バグ修正にご協力頂いたGoogle Chris Pruettさん、kerieruさん、ありがとうございました。m(_ _)m)

まったく同じプログラムなのにどうしてこういうことが起きたかというと、OpenGLESの仕様が違うかららしいです。具体的には何が違うかというと、「2の累乗以外のテクスチャをサポートしているかどうか?」です。日本用の端末のDesireとXperiaはてきとうなサイズの画像ファイルを読み込んでも簡単にOpenGLのテクスチャとして使用できますが、海外の携帯は「2の累乗サイズ」でないと全く表示できません。

また、最後に悩まされたのが下記の関数です。これは海外の端末では全く機能しませんでした。


gl.glTexImage2D(GL10.GL_TEXTURE_2D, 0, GL10.GL_RGBA, tex.w, tex.h, 0, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, null);
gl.glTexSubImage2D(GL10.GL_TEXTURE_2D, 0, 0, 0, tex.w, tex.h, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, bb);


どうもこの関数は引数にサイズを指定できるようで、こういう関数を使用してもいけないみたいです。うまくいったのは下記の関数をつかって2の累乗サイズの画像ファイルを読み込んだときだけでした。


GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);


この問題は実機テストがかなり大変なので、横着せずに2の累乗でテクスチャを用意するような実装を最初からした方が良さそうです。

2010年6月25日金曜日

Xperiaのandroid.os.HandlerのsendMessageDelayedが不正確な問題

「魔王なんて!」をリリースしてから2週間と少し経過して、やっとバグ修正も一段落してきました。Xperiaについてかなり重要な事が分かったので情報シェアさせていただきます。

私はXperiaユーザーではないので正確なアップデート日付は分かりませんが、2010年6月中旬ぐらいのアップデートをきっかけにTimer処理がおかしくなりました。具体的にいうとandroid.os.Handlerクラスで処理しているキーリピートの間隔が急にバラバラになった事です。そのため、java.util.Timerやjava.lang.Threadに処理を置き換えましたが全くダメでした。具体的には下記のような実装をしているゲームアプリはいまごろ全てダメになっているような気がします。また、GC(ガベージコレクション)が重たくなりキーリピートがスムーズに動きません。


public class TickHandler extends Handler {
long before = 0;
long delay = 200;
public TickHandler(){
this.sleep(1000);
}

@Override
public void handleMessage(Message msg) {
long current = SystemClock.uptimeMillis();
long x = current - before;
if(x > delay){
before = current;
if(ControllerView.repeatNative)
pushRepeat(true);
}
this.sleep(10);
}

public void sleep(long delayMills) {
removeMessages(0);
sendMessageDelayed(obtainMessage(0),delayMills);
}
}



どうやって回避したかというと、下記二つの修正を行いやっと回避が出来ました。

* 「リアルタイムのインスタンス生成を(new)をとにかく減らす」
* 「GLSurfaceView.RendererのonDrawFrameのイベントでタイマー処理を統一」

2つ目の修正なのですが、どうやらOpenGLのタイマー処理だけ何故か正確だったのでこれに統一しました。どうしてもXperiaでタイマー処理がガタガタになったらこの修正を試す事をお勧めします。

2010年6月10日木曜日

レビューサイト「アンドロイダー」様に「満点+熱+一押し」最高評価頂きました!


Androidアプリレビューサイト「アンドロイダー」様サイト上にて「魔王なんてたおしちゃうから!」のレビューをしていただき、「満点 + 熱」の最高評価をいただきました。

ついに登場 2.5Dのトルネコ風ファンタジーRPG
魔王なんてたおしちゃうから!Lite


きっとゲームのキャラクター達も喜んでいると思います!ありがとうございました!

修正版1.3リリース報告

「魔王なんてたおしちゃうから!」のバージョン1.3を無料版、有料版ともども
リリース致しました。下記2点の不具合が修正されております。

1. 無料版で「ブラウン少佐」が不自然にゲーム世界以外の話(商品の説明)をしていた
2. カメラワークが不完全で視点が小刻みにぶれ、画面がみづらい不具合

ご迷惑おかけしました。
今後とも「魔王なんてたおしちゃうから!」をよろしくお願い致します。

2010年6月8日火曜日

Desire実機確認



Desireをやっと購入できまして、実際に動かしてみました。Xperiaで起動したときよりテクスチャの読み込みが圧倒的に早く、起動時間も倍速ぐらいの印象です。
たぶんこれはAndroidOS1.6と2.1の差じゃないかと思うのですが、Android2.2にあがったらさらに早くなるらしいですし、これからが楽しみです。

2010年5月30日日曜日

「魔王なんてたおしちゃうから!」不具合報告ページ



このページは「魔王なんてたおしちゃうから!」の不具合報告フォームです。
不具合やお気づきの点がございましたらコメント欄にご記入ください。
連絡がない場合は直接メールやtweetしていただいてもかまいません。
よろしくお願いいたします。