ガンズターン 公式サイト

楽しいことに、まじめです。 ——ガンズターンアプリ研究所公式サイト

アプリ1つ作るのに、たった一人でやらなきゃならなかったことリスト(ぱずもぐ備忘録1回目)

Pocket

もくじ 2/4

4. サーバ側の基本的な構築(FuelPHP & AWS(Amazon Linux))

(1) 工程:約15人日

……めちゃくちゃ大変な作業だったので、正直思い出したくないぐらい。
この時期、実はひっそりと、かなりネガティブな気分に浸っていました。
1日PCの前に立っていて(スタンドデスクなので)、書いたコードが2〜3行ということもあったぐらいです。
ちょうど、全体作業的にも折り返しポイントですので、中だるみの時期だったのかもしれませんね。

(2) なにをしたか

精神的にすり減っていたので作業メモもあまり残ってないですが、ざっと以下のことをしました。

  • AWSへ自前のサーバを立てた(開発用と、本番用。あとデータ配布用にS3とCloudFront)
  • FuelPHPの本格的な勉強(入門レベルの書籍を2冊。あとはFuelPHPの日本語ドキュメントにざっと目を通した)
  • AWSに立てたサーバにFuelPHPインストール(もっとも辛い作業でした……)
  • FuelPHPのmigrationを使って、設計通りのDB構築および管理画面作成
  • 設計通りのAPIの構築
  • サーバ内での問題自動作成機能、及び解答解析機能の作成(これは意外と楽しかった)
  • 作成した問題をクライアントで受信するための仕組みづくり

前半はめちゃくちゃ辛かったですが、後半になるにつれてどんどん楽しくなってきたのが印象的でした。

(3) 苦労したこと

FuelPHPを使った本格的なサーバ構築を1からやるのがまず初めてで、しかもAWS内で構築すると意外と通常のLinuxと違う仕様があったりとかするので、そういったこと一つ一つがまず大変でした。

……どこに地雷が埋まっているのかまったく想像がつかない……(苦笑)

一番想定外だったのは、AWSのEC2でFuelPHPがきちんと動く状態にまで持っていくのに3日ぐらい費やしてしまったこと。
「yum」を使うのも「rpm」使うのも初めてで、正直、今自分が何をしているのかきちんと理解せずにとにかく結果だけを求めて作業していた感があります。これは今思うにめちゃくちゃ反省点。

わからないことがあったら、やっぱりその時点でいくら時間がかかってもいいので調べて、メモに残しておくべきですね。じゃないと何も蓄積されていかない……。

あ、今思い出しましたけど、AWSのEC2で最新版のApache入れるのにめちゃくちゃ苦労した記憶があります。
メモ残ってないので、何にそんなに苦労したのかまったく思い出せません。(超反省)

……なお、作成した「問題自動作成機能」ですが、コンピュータに作らせた問題が想像以上に難しすぎたので、最終的には手作りしたものだけを実装しました。
コンピュータに作らせた問題は、今後のアップデートで徐々に公開していけたらな、と思っています。

5. サーバ連携するモックの作成(Xcode & Objective-C)

(1) 工程:約10人日

この工程に関して10人日かかったのは、まあ今の自分にしてみれば仕方のないことかなと思っています。
なにしろ、サーバ連携するゲームを自作すること自体生まれて初めてなわけで、前の工程で作ったAPIが正しく動作してくれるかどうかもこの時点ではわからなかったわけですから。(もちろん単体テストは実施してましたが)
ただ、それなりに感覚はつかめたので、次にサーバ連携するアプリを作るときはもうちょっと短縮できそうです。

(2) なにをしたか

「3. とりあえず動くモックの作成」で作成したモックに対して、サーバと連携する機能を一つずつ肉付けしていきました。
現時点で実装してあるのは以下の機能です。

  • 新規ユーザーの登録機能
  • ステージ情報の動的な受信機能
  • Eメールアドレスの登録機能
  • パスワードの登録機能(暗号化処理)
  • 端末変更時等のための復帰ログイン機能
  • ステージクリアー時のスコア等の送信機能
  • チュートリアルやゲーム内イベントの進捗状況を送信する機能

(3) 苦労したこと

いずれの機能も、事前にAPIの設計を終えていたのですんなりいくかと思いましたが、意外とUIの設計に穴があって、そこで苦労しました。
例えば入力されたEメールアドレスが正しいかどうか判定する処理なども組み込んでいるのですが、なかなか思っているような処理結果が得られなくて何度も作り直したり……。
未だに、Objective-Cで正規表現を処理する方法がきちんと理解できてません。
(最終的には正規表現ではなく、別の方法でチェックすることにしました。詳細はちょっとここには書けませんが、かなり簡易的な方法です)

6. ゲーム内画像と音素材の作成(Gimp & SAI & FireAlpaca & M01D & DSN12)

(1) 工程:約15人日

……これ、正直、時間をかけた挙句、あんまりクオリティあげられませんでした。
まあ、仕方ない。もともと絵が下手なんだから。

そうはいっても、絵と作曲の勉強をもっとがんばりたいと思います。

潔く外注するという選択肢もあるかと思いますが、とりあえずあと2〜3作は自前の絵と曲でがんばりたいですね。

なぜかといえば、とにかく「まるまる一本、自分で作る」ことが大好きだから、としか言いようがありません。
けれどせっかく起業独立したのだから、なんとなくそういうポリシーはしばらく守っていきたいです。
(あくまで「しばらく」であり、今後何かのタイミングで急に絵とか曲のクオリティがあがるかもしれません。その時は「そういうことか」とでも思っていただければ……)

(2) なにをしたか

「ぱずもぐ!」のチュートリアルに登場するキャラクターのデザインと、ゲーム内の背景で流れるBGMを作成しました。具体的には以下の通り。

  • キャラクターA(女の子)のデザイン 3日
  • キャラクターB(お父さん)のデザイン 3日
  • その他画像素材(背景やもぐら、ゲーム内アイコン、ロゴ)のデザイン 3日
  • BGM(4曲作成、そのうち2曲採用)と効果音作成 6日

実際には各作業併行で進めていたのですが、体感的にはこんな感じです。

ちなみにBGMと効果音については、こちらの記事で紹介した通り、Nintendo-3DSのゲーム「KORG M01D」と「DSN12」を使用しております。(今回、マジでその2つだけ)

(3) 苦労したこと

デザインは、凝り始めるといくらでも時間使えるのですが、かけた時間がクオリティにそのまま反映されるわけでもないのがむずかしいところです。(場合によっては凝りすぎて改悪してしまう時も……涙)

いずれ、短期間でそれなりの素材を作成できるスキルが身につけばいいなあ……。

7. ゲーム内画像とBGMの埋め込みおよび見栄えのバランス調整(Xcode & Objective-C)

(1) 工程:約2人日

これに関しては、すでにベースがあるところに素材を置いていくだけなので、もともとさほど時間のかからない作業です。
ただし、画像に関しては微妙な位置調整をするたびにコンパイルして表示確認の繰り返しだったので、次回以降もうちょっとスタイリッシュ(笑)な方法に変えていきたいと思います。

(2) なにをしたか

「6. ゲーム内画像と音素材の作成」で作成した各素材を、「5. サーバ連携するモックの作成」までで作成したモックに実際に組み込んでいきました。

(3) 苦労したこと

上で述べたように画像素材の微妙な位置調整に時間をとられました。
しかしそれ以外ではとくに苦労した点はありませんでした。

8. デバッグ & ゲームバランス調整(iPhone実機)

(1) 工程:約5人日

正直、デバッグはまだし足りない気分ですが、普通にゲームをしていて致命的なバグが発生しないことは何人かの知り合いにプレイしてもらって確かめましたので、一週間で区切りをつけました。

もし今後なにか見つかったら、可及的速やかに対応していきたいです。
(ただ、AppStoreの承認が必要な場合は自動的に2週間かかってしまうので、その点だけはどうしようもない……orz)

(2) なにをしたか

とにかくひたすら「プレイ」しました。

  • きちんとゲームができるか。
  • ユーザが変な操作しても落ちたりしないか。
  • サーバが落ちてる時に変な動きをしないか。
  • サーバが復旧した時にゲームを続行できるか。
  • パズルが難しすぎないか?
  • 逆に簡単すぎないか?
  • チュートリアルは目的を果たすために機能しているか?
    などなど……

この時点で確認しておくべき項目は山積みです。
……ですが、正直、気になるところを全部潰していたらそれだけで時間が経過してしまいます。

一応、現時点で自分が把握しているバグは全て潰しており、これ以上何も発見できないというところまでは追い込みました。
けれど、テストし足りないところはどうしても残っています。

立派な企業が出すアプリならいざ知らず、個人で作成しているアプリでは、ひとまずこれが限界かな、と……。

一応、何人かのお知り合いの方々にゲームをテストプレイしてもらいましたが、みんな口を揃えて「むずかしい」と言っております……。

これについてはけっこう悩みました。
結論としては、ひとまず今の難易度のままリリースしたいと思います。
理由は、やっぱりそれなりに骨のあるパズルのほうが、ハマった時は楽しいからです。

それに、いずれ今の倍以上むずかしい問題とかもリリースする予定なので、最初のうちにあまりユーザを甘やかしてしまうのもよくないと愚考してみたり……。(という、なぜか上から目線の思考回路。すみません)

(3) 苦労したこと

……というか、苦労すべきだったこと。
もっとたくさんの人にデバッグ(テストプレイ)に協力してもらえばよかったです。

次回以降、ツテを頼ってテストプレイに協力してくれる人を探そうかと思ってます。

その時はこのブログやTwitterを通じて募集する可能性が高いので、どうぞよろしくお願いします。

……おっと。

このページも、もうこんなに長い記事に……。

しかし、なんとまだまだ続くのです。

なぜなら、今のわたしはこうしてブログの記事を書くのが仕事だと割り切っているから。
というわけで、次ページへ続く!
(果たしてここまで読んでくれている人が何人いることやら……)

Pocket

ページ: 1 2 3 4

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

トラックバックURL: http://www.gunsturn.com/2015/07/01/puzzmog_devlog_1/trackback/