NinaLabo

個人ゲーム開発者の技術メモ

Unity 5.3 で Application.LoadLevel が Obsolete になりました

シーンを遷移するときに呼び出す Application.LoadLevel が、Unity 5.3 から非推奨になったんですね。MonoDevelop で Application.LoadLevel を呼び出している箇所に警告が出ていました。

`UnityEngine.Application.LoadLevel(int)' is obsolete: `Use SceneManager.LoadScene'

`UnityEngine.Application.LoadLevel(string)' is obsolete: `Use SceneManager.LoadScene'

SceneManager に置き換えるだけなので簡単でしたが、SceneManager すら知らなかったので、ちょっとびっくりしました。対応をまとめておきます。

シーン名でのシーン遷移

シーン遷移で、よく使うのはこれですね。遷移したいシーン名をパラメータで指定する方法です。

Unity 5.2

Application.LoadLevel ("BattleScene");

Unity 5.3

SceneManager.LoadScene ("BattleScene");

 ※ SceneManager を使用するには、名前空間 (UnityEngine.SceneManagement)が定義されている必要があります!!

using UnityEngine.SceneManagement; 

シーン番号でのシーン遷移

シーン名での遷移があれば、シーン番号(インデックス)での遷移はあまり使わない気もしますけどね。Application.LoadLevel でも SceneManager.LoadScene でも int型を引数にもつ オーバーロードメソッドが用意されています。

Unity 5.2

Application.LoadLevel (0);

Unity 5.3

SceneManager.LoadScene (0);

現在のシーン名を取得

現在表示されているシーン名の取得です。

Unity 5.2

string sceneName = Application.loadedLevelName;

Unity 5.3

string sceneName = SceneManager.GetActiveScene ().name;

 

参考資料

たしかに、ググっても情報があんまり見当たらなかったです。とても参考になりました。

qiita.com 

SceneManager の公式APIドキュメント。

docs.unity3d.com

Application.LoadLevel のAPIドキュメントも念のため。

docs.unity3d.com

 

 

なぜ、副業のゲーム開発はエターナるのか

エターナる (えたーなる、エターナル)とは、作者が諸般の事情により、ゲーム制作を途中で放棄すること。わたしも、エターナったゲームがいくつもあります!

完成させて売らないと、お金が底をついてしまう個人ゲーム開発者は、エターナったりはしないでしょう。本業が別にあって、副業または趣味でゲーム制作している、わたしのような個人開発者が危ないです。

ゲームはたいてい完成しません。

とくに、知り合いと対等の立場で始めたプロジェクトは完成したことがありません(汗

 少し視点がエンジニア寄りですが、個人ゲーム開発がうまくいかない 7つの原因 をあげてみました

個人で大規模な開発は難しいのに、風呂敷広げすぎ問題

  • 企画するのがエンジニアでない場合、開発工数がイメージできないので夢見がち
  • ゲーム開発の経験が浅いエンジニアもハマる可能性あり

そもそもモチベーションの維持が難しい問題

  • 最初はゲーム開発に対して楽しそうなイメージを抱いているが、実際やってみたら想像以上に地味で辛い
  • あくまで趣味なので、辛いとみんなやめてしまう
  • お金稼ぎ目的であっても、途中で報酬が労力に見合わないと思いはじめて、やめてしまう

プロマネがいなくて、なあなあ になりがち問題

  • 他の人が何をどこまで進めているかがわからない、そのうち音沙汰がなくなる
  • 誰にも急かされないので、緊張感がなくなっていき、みんなのゲーム開発に対する優先度がどんどん下がる
  • 締め切りもなくダラダラやってしまい、最終的には自然消滅または音信不通

開発に飽きてしまう問題

  • エンジニアに起こりがち
  • 同じ場面を何度も起動してデバッグするので、自分の作ってるゲームが面白いのかどうかが、わからなくなってくる
  • 面白くなさそうなゲームに膨大な時間を費やすのは、わりに合わない気がしてやめてしまう

プロト作ってみたら意外に面白くない問題

  • 頭の中で思い描いてたときはすごく面白そうに思えたのに、いざプロト作ってみたら意外に面白くない
  • 理想と現実のギャップに心が折れてやめてしまう
  • プロト後のプロジェクトの方向性が迷走してしまい、疲弊してやめてしまう 

だんだん進捗が感じられなくなる問題

  • それなりにゲームが動いたところから、リリースまでの間が想像以上に長くて大変
  • 裏の処理を一生懸命つくっても、見た目が変わってないと努力を理解してもらえない
  • 自分でも自分が進捗していないように思えてきて、嫌になってやめてしまう

仕事が忙しくなった問題

  • ほとんどの場合、モチベーションが低下したところに、仕事がいつもより多くふってきたので、自分を正当化する言い訳として使用
  • 時間は工面すれば少しずつならなんとかなるはず
  • 仕事が忙しいという理由だけで、エターナることはほぼないと個人的には思っている

あとがき

それでも、自分が好きなゲームを全部自分で決めて作れるのは楽しいです。作業が膨大で吐きそうになったり、がんばって実装したものが全部無駄になって発狂しそうになったり、時給換算すると10円以下で泣きたくなったり、クソゲーができあがって絶望したりしますけどね。

仲間と一緒にゲーム制作するのも楽しいです。ときには音沙汰がなくなったりもしますが、自分一人では思いつかなかったであろう新しい視点をくれたり、素晴らしいデザインを仕上げてくれたり、雑談して気分転換になったり、がんばってるメンバーを見て逆にやる気をもらったりします。

もう少しがんばってみようかなあ。

参考記事

dic.nicovideo.jp

www.slideshare.net

 

 

2015年 面白かったスマホゲームまとめ

書いている最中に年を越してしまいましたが・・・・

2015年に発売されたスマホ (iPhone) のゲームの中で、個人的に面白かったもの、ハマったものをまとめてみました。まだやっていないものがあれば、お正月休みの暇つぶしにでも!!

スバラシティ シンプル街作りパズル

開発: Ryuji Kuwaki (無料)

2015年版の Apple ベストゲーム にも選ばれていましたね!最初は運ゲーかと思って1回離脱したのですが、他の人のプレイを見て、どうもそうじゃないらしいとわかってからが、とても面白くなりました。起動も速いし、サクサク動くので、スキマ時間にやるのにちょうどいいです。ルールもシンプルなので誰でも楽しめるパズルゲームだと思います!

 

Don't Starve: Pocket Edition

開発: Klei Entertainment (¥360)

奇妙な無人島で、科学と魔法の力で生き残るサバイバルゲームです。周りにあるものを拾い、道具を作って、生き延びようとするのですが、夜になると死に、食べ物が見つからなくて飢え死に、気が狂って幻覚が見えて死に、変な生き物に攻撃されて死に、冬になって死に・・とにかく死んで覚えていくゲームです。ろくなチュートリアルもなく放り出されますし、ちょっと鬱ゲーっぽいところもあるので、人を選ぶゲームだと思いますが、やり出したら時間を忘れて夢中になります。

Don't Starve: Pocket Edition

Don't Starve: Pocket Edition

  • Klei Entertainment
  • ゲーム
  • ¥360

 

Tap Titans

開発: Game Hive Corp. (無料)

タップして敵をどんどん倒していくというシンプルなゲームなのですが、何故かすごく中毒性があります。少しやればタップしなくても、仲間が攻撃してくれるようになり、どんどん強くなっていくインフレ感がとても爽快です。絵もかわいくて、演出もとてもよく出来ているので、クリッカー系ゲームの中ではこれが一番好きです。

Tap Titans

Tap Titans

  • Game Hive Corp.
  • ゲーム
  • 無料

 

ここまでが、2015年発売のゲームなのですが、昔リリースされたゲームで面白かった、おすすめゲームもついでに紹介しようかと思います。

Cave Quest HD (Full)

開発: By Big Fish Games, Inc (¥360)

周りにも全然知ってる人がいないマイナー(?)なゲームなのですが、RPG要素の入ったパズルゲームです。ある日、行方がわからなくなった両親と弟を探しに冒険に出かけます。様々なパズルをクリアしながら家族を探す旅をするのですが、この途中のパズルがとても斬新で衝撃を受けました。3マッチパズルも工夫次第でこんなにバリエーションが出せるのかと。パズル自体はそんなに難しくないのですが、360円分は十分に楽しめると思います。

洞窟クエスト HD (Full)

洞窟クエスト HD (Full)

  • Big Fish Games, Inc
  • ゲーム
  • ¥360

 

ゴースト トリック 

開発: CAPCOM (無料)

数年前にリリースされたゲームなのですが、シナリオ推しのゲームでは未だにこれが1番です。主人公は、謎の死を遂げた幽霊なのですが、何故自分が死んだのか、簡単なパズルをクリアしながら、真相を追っていきます。主人公は数分だけ過去に戻ることができ、物に取り憑いて少しだけ動かすことで未来を変えていきます。ストーリーとパズルゲームがうまく融合されていて、本当に素晴らしい出来だと思います。

 

Smash Hit

開発: Mediocre AB (無料)

個人的にアクションゲームはあまり得意じゃないのですが、このゲームは本当に爽快でハマりました。ボールをぶつけてガラスをパリンパリンと割っていくのがすごく快感です!ボールはちょっとだけ重力に影響されるので、個人的には簡単すぎず、難しすぎずちょうど良かったです。

Smash Hit

Smash Hit

  • Mediocre AB
  • ゲーム
  • 無料

 

Slay

開発: Sean O'Connor (ライト版は無料)

シンプルな戦術シミュレーションゲームなのですが、バランスがよく完成度が高いゲームだと思います。いわゆる陣取りゲームで、兵士を雇って領地を広げて、島を制覇するとクリアなのですが、AIが良くできていて絶妙のタイミングで降参してくるのでテンポよく進めます。有料版は、500弱のステージがあるのですが、全部クリアしてしまいました!起動も速く、動作もサクサクなので、空き時間にちょうど良いです。難点なのが、チュートリアルもなく、UIもわかりにくいので、レビューサイトなどで補足しないと、面白いところに行く前に離脱しちゃうかもしれません。

ローグライクゲームのUIパターンまとめ

ローグライクゲームを開発していて、一番悩むところは実はUIだったりします。大きくは以下の2点がUIデザインを難しくさせているのではないかと思います。

・ユーザーに操作させたいことが多い

以前の記事「ローグをスマホで遊ぶための最適なUIが浮かばない」にも記載しましたが、他のゲームに比べ、ユーザーに操作させたい必須項目が多く、何も考えずに全部並べるとごちゃごちゃしてしまいます。

  • 8方向への歩行(キー長押しで歩き続ける)
  • 4方向へのダッシュ(高速移動)
  • 8方向への向き変更
  • 攻撃(モンスターへの攻撃)
  • 素振り(罠を発見するのに使える)
  • 休憩(ターンを消費してHPを回復する)
  • アイテム操作(閲覧・使用・投げる・置くなど)
  • 矢を放つ(よく使うのでショートカットがほしい)

・1回の操作ミスが命取りになる

ゲームの特性上、1度の操作ミスが命取りになってしまうこともあり、UIの出来次第では、たびたび起こる誤操作で、それまで積み重ねてきた数時間が全て無駄になってしまうという理不尽なゲームになってしまいます。

そこで、スマホでリリースされているローグライクゲームが、それぞれどのようなUIになっているのか、特に違いが出やすいキャラの移動方法に着目してまとめてみました。

パターン1: すべての方向キーをボタンで並べる

ユーザーに入力させたい行動をすべてボタンで表現するやり方。ボタンが多くてごちゃごちゃした印象にはなりますが、変にこねくりまわしてないので不思議のダンジョンシリーズが好きな人にはむしろ遊びやすいのかもしれません。

f:id:ninagreen:20151017143808j:plain f:id:ninagreen:20151017144050j:plain f:id:ninagreen:20151107030325j:plain

ローグライフ

ローグライフ

  • Kan Kikuchi
  • ゲーム
  • 無料

 

パターン2: スマホ特有の操作で方向キー入力する

長押し、フリック等のスマホ特有の入力操作をうまく活用して、キー入力するやり方。最初はちょっと戸惑いますが、ハマればむしろ快適なのかもしれません。

f:id:ninagreen:20151017175939j:plain

 最初は画面に十字キーは出ておらず、画面のどこかをタップすると、タップした場所に十字キーが出現して、左の画像のようになる。

歩行:タップしたまま、すぐに8方向に指を移動(フリック)。個人的には誤って後述の向き変更になることもあり、若干操作しずらい。

ダッシュ無い模様。ただし、メニューの設定から歩行速度や通路速度を変更できる。

向き変更:タップして長押しした後に、8方向に指を移動。

攻撃:タップして、すぐに指を離す。

 

 

パターン3: 方向キーを廃止し、画面タップで移動する

方向キーを廃止し、タップした位置にキャラが移動するやり方。指でキャラが隠れることがありますが、初見のスマホユーザーには直感的でわかりやすいのではないかと思います。また、タップした位置までキャラが自動で最短ルートを移動してくれるので、ユーザーが入力しなければならない回数が減り、ストレスなくプレイできるかもしれません。

f:id:ninagreen:20151214230401p:plain f:id:ninagreen:20151226155217p:plain

 

Unity 5.3 に アップデートした感想まとめ

Unity 5.2.1 を 5.3 にアップデートして、いま開発中のゲームを動かしてみました。
 

アップデート方法

以下のリンクからインストーラーをダウンロードして実行すればインストールできます。

https://unity3d.com/jp/get-unity/update

変更点の詳細は、以下の記事が詳しいです。

blogs.unity3d.com

tsubakit1.hateblo.jp

感想まとめ

1. インストールするコンポーネントを選べるようになってました!

今までは明らかに使わないプラットフォーム(Tizen向けのビルドサポートとか)もすべてダウンロードしていたので、Unityのアップデート作業に時間がかかっていました。今回からインストールするコンポーネントを選べるようになったので、アップデート作業がいつもより短い時間で済みました。携帯向けゲームを作成するつもりなので、今回は「Android Build Support」と「iOS Build Support」を選択。他に、進捗をブログで公開するために、「Web Player」も選択しています。

f:id:ninagreen:20151211020101p:plain

 

2. MonoDevelop でついに日本語を入力できるようになりました!

Macユーザーが待ちに待った日本語対応!これで、ソースコードに日本語のコメントが書きやすくなります!!
 

 3. 不具合が修正されていました!

以前の ブログ記事 で書いた不具合が修正されていました。正しく動作します!

 4. Unity Editor上での動作が速くなりました!(たぶん)

以前のバージョンでは、Awake内で

Application.targetFrameRate = 60; 

 と定義しても、何故かUnityEditor上では反映されず、FPSの上限が 30 のままだったのですが(端末では設定が反映されてました)、UnityEditor上でも FPS 60 が出るようになってました!

 

その他、気になっている追加機能

1. マルチシーン編集

個人開発では必要ないかもしれないですが、大規模開発では使えるかもしれません。1つのシーンを分割して管理することで、シーン切り替えのロード時間を短縮しつつ、複数人でも開発しやすくできそうです。

2. カスタムコルーチン

コルーチンに独自のyield条件を追加できるというもの。まだよくわかってないところもあるのですが、処理が簡単に書けそうなところがあれば使ってみたいです。

3. JSONの公式サポート 

Unityが公式にJSONをサポートしました!前までは JSONの読み書きに MiniJson か LitJson を使っていたのですが、せっかくだし乗り換えてみようかなと思います。

4. デバッグ実行の簡易化

デバッグ実行のプロセスを UnityEditor にアタッチするのに数クリック必要だったのが、1クリックでアタッチできるようになったようです。いままではデバッグ実行すると処理が重くなるイメージを勝手に持っていて食わず嫌いなところがあったのですが、やっぱり便利そうなので使ってみようかなと思いました。さらば、Debug.Log を埋め込む日々!

5. 課金対応

開発中のゲームはまだ課金処理を実装するところまで進んでいませんが、いずれお世話になりそうです。 

さいごに

Unity 5.3 へのアップデートですが、いまのところ開発中のゲームも特に問題なく動作しています。なんといっても日本語が入力できるようになったし、今回のアップデートは個人的にはとてもポジティブな印象を受けました!
 

 

【進捗】個人開発の開発期間はどれぐらいが適正なのか?

ローグライクゲームの開発も3ヶ月が過ぎようとしていますが、まだ完成までにはほど遠いですね・・だらだら開発しているのがいけないのですが、世の中の個人開発のみなさまは、1ゲームにどれぐらいの時間を費やしているのか、ふと気になったので調べてみました。

製作期間を公表している個人開発のゲームの中で、個人的に「よくできてる!」と思うものをピックアップ!!ジャンルは、パズル、 放置ゲーム、シミュレーション、そしてローグライクゲームと、自分が今後開発する可能性のあるジャンルに絞りました。

『すばらシティ』約3ヶ月 パズルゲーム

tamagoloop.blog.fc2.com

『a[Q]ua約4ヶ月 パズルゲーム

『君の目的はボクを殺すこと。』約2ヶ月 放置ゲーム

『生きろ!マンボウ約6ヶ月 放置ゲーム

『大繁盛! まんぷくマルシェ』約7ヶ月 シミュレーション

『王国の道具屋さん』約4ヶ月 シミュレーションゲーム

『ローグクリエイター』約5ヶ月 ローグライクゲーム

『ローグライフ』約2ヶ月 ローグライクゲーム

app.famitsu.com

 
みんな、はやっ!!もちろん、チームの人数とか、専業か副業かとか、過去の技術的な積み上げがあるかとか、様々な要因で期間は前後するとは思いますが、このクオリティのゲームをこれだけ早くつくれるのはさすがですねー。

わたしも数年前にパズルゲームを製作したことがあるのですが、

発狂するかと思うぐらい根詰めてやったのに、結局リリースまで4〜5ヶ月ぐらいかかりましたよ・・・

今開発中のゲームはいつ完成するのかなあ。元からあんまり急ぐ気もないのですが、とはいえ最近特にだらだらしてるので、もうちょっとがんばろう・・・

今週の主な進捗

  • プレイヤータップでプレイヤーの詳細を開く
  • モンスターハウスの追加
  • 斜め移動の追加
  • FPS表示の追加

 

 

 

 

六角形(HEX)マップの座標系まとめ

戦略/戦術シミュレーションによくある、六角形(HEX)マップの座標の持ち方ですが、かなり悩みました。結論としては、下記の3つの方法がありそうです。
 

《1》交互にずらす

まず一番初めに思いついた方法がこれです。見た目はわかりやすいですが、2点のHEX間の距離を求めるのが若干面倒そうです。

f:id:ninagreen:20151114192512p:plain

 

《2》階段状にずらす

2点間の距離の計算はしやすそうですが、右上の座標をマイナスにするか、左上を(0, 0)以外から始めることになるのが、ちょっととっつきにくいです。あと個人的には、x方向に移動するとy座標も再計算しないといけないのがミスりやすそうです。

f:id:ninagreen:20151114192558p:plain

《3》飛び飛びにする

規則性が高く、2点間の距離も移動先の座標も計算しやすそうなので、現時点ではこの方法が良さそうな気がしてます。

f:id:ninagreen:20151114192647p:plain 

 

参考リンク

猫とゲーム HEXマップ(マスが六角形のマップ)

各方法を画像付きで丁寧に説明していて、一番わかりやすかったです。

とある地味なブログ: ヘックスなシミュレーションゲーム

この方は、パターン1の座標系で実装したようですね。