FreelyApps

個人によるアプリ開発の日記です。アプリの収入だけで生活できるようになるのが目標です。UnityでAndroid向けのゲームアプリを作成しています。


    アプリ『トランプ・ジン・ラミー』を公開しました。
    Android/iOS https://goo.gl/PYKFYG

    2015年10月

      このエントリーをはてなブックマークに追加 Clip to Evernote
    『トランプ・ナポレオン』に通信対戦機能を入れようとしています。

    元々トランプゲームなので、人が集まらないとできないゲームです。しかもナポレオンは5人で遊ぶのが一番バランスが良く面白いので、5人専用といっても良いです。ナポレオンのルール自体が複雑で分かっている人は少ないでしょうから、同じくらいの力量の人を5人集めるというのはかなり難しいです。
    トランプ自体は人と遊ぶのが当然楽しいですが、実際に人を集めて遊ぶというのは簡単なことではありません。

    そんなわけでインターネットを介して通信対戦するというのが手軽になります。通信の遅延とか切断などの問題も起こってしまいますが、自分がどこかへ行く必要はないので手軽です。(現在の通信の問題はどうしようもないです。)

    この通信対戦機能というのは作るのが難しいものになります。離れた場所で実行されているアプリケーション同士が通信して整合性を保ちながら、実行されていかなければならないからです。うまく作らないと、あるプレイヤーだけが進行しすぎてしまいおかしくなるようなことは簡単に起こります。
    トランプゲームの場合は誰が何のカードを持っていて、今誰が番なのか、何を出したのかということが重要になります。このタイミングがずれてしまうと全員が進行できなくなってしまったりするバグが生まれます。

    ナポレオンではプレイヤーが操作するタイミングが4つあります。
    宣言、副官指定、カード交換、トリックでの手札決定です。これらを全て行えるようになると一応ゲームができるようになります。
    少し前に宣言部分の動作をツイッター上にあげたので以下に載せておきます。

    現在は全ての操作ができるところまできていますが、ゲームに参加するという部分がありません。これはオンライゲームでいうルームを作る、ルームに参加するといったものになります。当然、これがないとオンラインでのゲームが始まらないので作る必要があります。
    アプリのバージョンが違えば、一緒に遊ぶとおかしくなることが普通なので、バージョン違いで接続ができないようにした方が良いです。
    UnityのNetworkMatch.CreateMatchでルームを作る時にCreateMatchRequestのmatchAttributesにバージョンの情報を入れておき、NetworkMatch.ListMatchesでルームを取得するときにListMatchRequestのmatchAttributeFilterEqualToにバージョン情報をいれ比較するようにすれば実現できそうです。

    人が集まらないと対戦できないので、人が集まってくれることを期待したいです。できれば記事の拡散やアプリ『トランプ・ナポレオン』の拡散をお願いしたいです。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    Unity Multiplayerを紹介している公式サイトを見ると有料とも無料とも言い難いようになっています。

    サイトの上部にある画像をとったものです。
    fr
     
    サイト下部にある画像をとったものです。
    bu

    リレーサーバとマッチメーカーについて上の画像は無料で使えると書いてあり、下の画像では購入された場合というように有料ととれる書き方がされています。
    この文章を見ただけではどうなるのかわからないのです。


    考えてもわからないので、Unityの公式ページから問い合わせを行いました。

    回答としては上の画像の訳が間違っていて、「今後は無料」ではなく「プレビュー版は無料」ということでした。
    また、将来Unity Multiplayerのリレーサーバとマッチメーカーの使用は有料なのかということについては、プレビュー版のため答えられないということでした。

    結論としては現時点で料金は不明です。

    現在、アプリにUnity Multiplayerを組み込んでリリースすることは良いようです。プレビュー版でリリースして良いのか気になったので一応聞きました。


    英語のサイトのUnity Multiplayerの画像には回答で得た内容が載っていました。

    eup

    edo

    上の画像にはプレビュー時には無料で使えるとあります。下の画像では近い将来サービスが購入できるようになるとあります。
    つまり、有料になるということです。
    全サービスというのが非常に引っかかる言い回しで、全とはどういう意味かということが知りたいところです。おそらくはUnity Cloud Buildのように段階的な課金なのではないかと思います。 

    総合的に考えてみると、CCU(同時接続ユーザー数)の 量とか、秒間データ量の制限といったことを課金で増やせるということが予想されます。
    無料で使えるプランもおそらく用意されるでしょう。そうしないと既に作ってしまったアプリで使わなくなってしまう恐れがありますし、普及しないでしょう。
    Photon PUNというUnity用のアセットがあり、これが無料でも使えます。Photon PUNもネットワークを利用したマルチプレイヤーなゲームを作るためのものであり、Unity Multiplayerのリレーサーバとマッチメーカーと同様の機能を持ちます。Photon PUNとUnity Multiplayerは競合していると思われるので、料金について差をつけることは難しいと予想されます。(Unity Multiplayerの方が安いと期待したいです。)


    正式版になったので利用料金が公表されました。詳細はこちらの記事をご覧ください。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    5.2以前ではVisual Studioを使うにはどうなっていたかというと、非常に手間のかかるものでした。
    Visual Studioは使いたい人は自分でVisual Studio Tools for Unity(VSTU別名UnityVSらしいです。)をインストールし、専用のアセットをインポートします。Preferenceの設定が変わってしまうために他のプロジェクトを使う時にいちいちPreferenceの設定を戻したり、アセットをインポートしてVisual Studioが使えるようにしなければならなく面倒です。
    大したことのないことですが、忘れるとうまく動かず「あ~設定し忘れた~」 みたいなことになります。不便なところがあると使いたくなくなるものですし、大勢で開発しているなら結構大きな問題になるでしょう。

    5.2になりVisual Studioが標準的なエディターになるようです。(MonoDevelopは相変わらず付属しています。MacとかLinuxとかありますしね……)これにより改善されていることがあります。
    連係のために必要だったアセットのインポートが不要になります。つまり、インストールするだけで使えるということです。(古いプロジェクトで既にVisual Studioを連携させていた場合アセットのインポート時にUnityVSというフォルダができていたはずです。これは不要になったので消してください。)インポートがなくなったことにより自分の好きなエディターを簡単に使えるようになり、切り替えも自由に行いやすくなりました。(2013と2015の切り替えがPreferenceの設定だけでできます。)
    これについては英語のドキュメントに言及されています。プロジェクトフォルダ内のVSTUではなくVSTUのインストールフォルダから自動で読み込むようになっているらしいです。

    Visual Studioをエディターとして使うにはPreferenceの設定を変更します。External Script Editorの設定を使いたいVisual Studioにします。(下の画像では2013を設定しています。2015でも構いません。)Editor Attachingのチェックをつけておきます。Unityでの設定は以上です。
    v2013
    デバッグの方法は以前と同じですが、うまくいかない場合は「Unity5.2でVisual Studioでデバッグする」の記事を参考にしてみてください。

    Unity Project Explorerがいつのまにか追加されました。
    upe
    Unity Project Explorerを表示に追加することができます。これによりUnityのフォルダ構成をVisual Studioでも表示できるようになりました。Solution ExplorerだとEditorフォルダやPluginsフォルダ等があるといくつかの(Visual Studioの意味で)プロジェクトにわかれてしまい見にくくなります。Unity上と同じように見えると違和感なくVisual Studio上でも作業できるでしょう。
    VSの機能のSolution Explorerでの表示だといくつかのプロジェクトにわかれて表示されます。ビルドしたときのdllごとにプロジェクトがわかれているようです。下の画像だと、Unity.CSharpがC#のスクリプト、Unity.CSharp.EditorがC#のEditorスクリプト、Unity.CSharp.Pluginsがプラグインになります。
    sol

    下のようにUnity Project Explorerの見た目はUnity上のプロジェクトブラウザーの構成と同じです。フォルダが同じになったことでどこにスクリプトがあるのかわかりやすくなります。
    upes

    デバッグ時にブレークポイントで自動的にVisual Studioに移り、処理を抜けるとUnityに戻るというようになっていました。これはいちいちツールを選択しないで流れるように作業ができるので楽です。 たまに反応しないことがありますが……

    今やUnityのスクリプト用の言語はC#ですね。メニューに表示されるボタンにもC#と書いてあるようになりました。 
    opc

    Unity Script(Unity用にJavaScriptを拡張したプログラミング言語)は消えていく運命にありそうです。IL2CPPがあるのでむしろC++が使えるようになる気もしますね。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    10/1に「トランプ・ナポレオン」を1.2にアップデートしました。

    使っているテクスチャをすべて無圧縮にしてみました。圧縮フォーマットによっては対応できない端末がありそうなので、無圧縮にしてどのような端末でもテクスチャが正しく表示できるはずです。
    このあたりは機種依存(というかGPU)によって、読み込めないフォーマットがあるようで簡単には見つからないバグです。簡単にはというのは端末を持っていなければわからないという意味です。起動すれば確実に発生するバグなのですが、その端末でないと起こらなかったりして前もって防ぐことは難しいです。

    ユーザーから表示がされないUIがあるとの連絡があったので、わかる範囲で調べてみました。 該当の端末を買うのが最も簡単に調べられる方法ですが、コストがかかりすぎるのでそれは行えません。

    表示されていないUIを調べると、ある特定のテクスチャを参照しているプレハブだということがわかりました。その時点でテクスチャが非常に怪しいわけです。
    テクスチャをインスペクタで見ると圧縮フォーマットがETCになっていて、もしかしたらこれが原因なのではないかという気になりました。 (ETCはAndroid 2.0以降の端末であれば、全て使えるはずなのですが……)

    使っているテクスチャの量はそれほど多くないので、全て無圧縮にしてもほぼAPKサイズに影響はありませんでした。(数十KB程度)  

      このエントリーをはてなブックマークに追加 Clip to Evernote
    9月のPVは3636でした。
    9pv

    約1600程増加しています。 増加のペースが上がっているので非常に良いことだと思います。次は4000を超えたいですね。

    今月はアクセス数の多かったページが変化しました。
    1位 「Unity5.2でVisual Studioでデバッグする
    2位 「Unity5.2にアップデート
    3位 「Unity Acountの登録
    というようになりました。

    Unity5.2の関心が高いためだと思います。Unity Acountの登録に関してはUnityをはじめる最初の関門ということもあり、今後もそれなりのアクセスを集めることが予想されます。
    Unity5.2にアップデートすると、Visual Studioで今までできていたデバッグすることができなくなりました。その解決方法はやはり需要が高くアクセスを集めたのは予想通りでした。1位になるほどとは思いませんでしたが、標準エディターとしての期待が大きいのでしょう。

    このページのトップヘ