2016年3月6日日曜日

ハッスルスクラッチ、テストプレイヤーのご意見


ゲーム第三弾「ハッスルスクラッチ」は、画面の部品は仮ですが、ゲームとして遊べるようになってきたので、相方にやってみてもらって意見をいただきました。


  1. 制限時間が迫っていることをわかりやすくしてほしい
  2. ランダムな文字ではなく、単語になっているほうが予測できておもしろい

1.は、確かに現状のは特に夢中になっていると、唐突に時間切れになる感じはあるので、時間が迫っていることを視覚的に知らせるようにしよう。

さて、2.はどうしようか。
ランダムな文字は、予測できないなりに遊べるので、それとは別に単語モードを設けるとして、


  1. 文字単位で制限時間を設けているのを単語単位にする?
  2. 単語を完成するのにどれだけ時間がかかるかを競う?
ただ、2.は、一つの単語を完成した後、次に展開させにくいような気がする。単語をひとつのゲームの単位とすると細切れすぎる?


また、ランダムな文字は出題データを持たなくてよいが、単語の場合は、単語データをもっておかなくてはならないな。いくつぐらいとか、どういったジャンルの単語にするかとか。


などといったことを検討中です。


2016年3月5日土曜日

ゲーム第三弾、ハッスルスクラッチ制作進行中


少しずつですが、すすめています。




タテタテヨコヨコ


ゲームを作るとき、いまはすっかり「タテ画面+タッチ操作」で考えるのになれました(とはいえ、まだ2本しか完成してません)が、MSXから入門した身としては、「方向+ABボタンなし」には少々とまどっていました。

タテ画面も、いまはすっかり慣れてしまい、ヨコ画面で考えなくなってしまっています。

しかし、こういうのを見ると、androidだからといって、タテ画面+タッチ操作だ、と固定的に考えてはいけないんだな、と。

これを買う人は、本気のゲーマーだろうから、自分が作るようなゲームはやらないんでしょうけど、なんか、こういうので動かしてみたくなります(←単なる、いつもの物欲...)。


タテ画面といえば、昔のアーケードゲームはタテ画面がよくあって、パソコンなどに移植するときに画面がヨコになって、違和感があったりしました。
一方で、PC-9801のギャプラスとか、X68000のドラスピのようにディスプレイをタテにして遊ぶものがありましたが、その光景にはなんとなく違和感はありました。

PCのディスプレイは、以前よりはタテで使われているのを見かけるようになった気がしますが、タテヨコ比が4:3から16:9になったので、昔のアーケードゲームのタテ画面というのとはちょっと違う感じがします。


制約が何もないと、逆に作りづらいというのもありますが、「タテ画面で作らねば」みたいな縛りは作らないようにしないといけないなと思いました。


2016年2月14日日曜日

ゲームアプリ第三弾「ハッスル・スクラッチ」


以前、ゲームアプリ第三弾は「(仮称)スクラッ字」などと予告していました。

これを英語表記にするとき、たぶん"scradge"なんかにしてしまうのですが、
これをググってみると、なんかよろしくない意味が出てくるので、考え直しました。

その結果「ハッスル・スクラッチ」ということにしました。
AndroidStudioでのアプリケーション名もHastleScratchにしちゃいました。

「ハッスル」というのが、今風でないというか、かえって脱力してしまいかねない感じですが、
自分の作るアプリは、うすうす「クール < 脱力」と思っていたので、それを前面に出してみました。

しかし、よろしくない意味かどうかはググればわかりますが、
昔は、OutRunの「passing wind」とか、X68kの「Sol-Feace」とか、いろいろありましたね。

一方で、ググればすぐわかるからということで、似たようなアイデアとかデザインとか名前がないかを先にきっちり調べておかないといけなくなったとも言えます。

java.lang.IllegalStateException: Surface has already been released.でハマる


一ヵ月以上ブログの更新が滞ってしまいました。

その原因は、タイトルに挙げた例外とそれに関連する以下の不具合対策に時間をとられていたためです。


アプリの描画はSurfaceViewを使っているのですが、アプリ動作中に「アプリ履歴ボタン」を連打すると、以下の9行目で、

 java.lang.IllegalStateException: Surface has already been released.

という例外が発生することがあります。
問題は、よくサンプルコードとして目にする以下の個所です。

 1: SurfaceHolder holder = getSurfaceHolder();
 2: Canvas c = null;
 3: try {
 4:     c = holder.lockCanvas();
 5:     if (c != null) {
 6:         :
 7:     }
 8: } finally {
 9:     if (c != null) holder.unlockCanvasAndPost(c);
10: }

9行目で例外が発生しているといことは、lockCanvasはできたけど、unlockCanvasAndPostしようとしたら、すでにSurfaceはreleasedだ、ということで、だれかがlockしていても、releaseされてしまうことがあるということですね。

さらにしつこく連打し続けていると、「戻る」ボタンで終了しなくなってしまう等の不具合が発生したりします。

ということで対策方法をいろいろ探っているのですが、後者の不具合は自作アプリ以外でも発生することがあるので、もしかしたらOSにも問題があるのかなぁと思うようになってきました。

ということで、対策方法の検討もしつつ、ゲームアプリ第三弾の開発も再開しています。

2016年1月11日月曜日

続・「残り」はrestかleftかとか


ゲーム画面での残機数表示をどう表記するかの件の続きです。

なんとなくRESTとかLEFTが多かったなー、と記憶していたのですが、
改めて昨年の11月ごろにMSXマガジン88年1月号付録のMSX SOFT CATALOGを見てみると、
RESTを使っているソフトは見つからず、LEFTが3本でした。

どっから「REST」の印象があったのだろうかと思っていたら、ありました。

MSXの「魔城伝説」と「キャベッジ パッチ キッズ」では残機を「REST」と表示していました。
記憶違いではなくてスッキリしました。


2015年12月30日水曜日

宇宙から飛んでくる四角をやっつけろ


昔読んだパソコン雑誌(Oh!Xだったかな?)で、「初期のゲームには、『宇宙から飛んでくる四角をやっつけろ』みたいなのが多かった」といった記事がありまして、すごく印象に残っています(その割には、なんの雑誌のどういうコーナーか全くおぼえていませんが)。

黒い画面を宇宙、きれいなドット絵が出せない(パソコンの能力か作者の限界かは知らんが)ので、とりあえず、■で表現、みたいなのが目に浮かびます。

自分で作るゲームにも、思わずツッコミを入れたくなるような不条理さをもっと入れんとあかんな、と思いまして、次の次の次の次のゲーム(つまり第六弾)は、タイトルが先で、『大宇宙お手玉』とすることにしました。

ゲームの内容は、これからボチボチ考えていきます。