FreelyApps

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


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

    カテゴリ:自作アプリ > 開発中

      このエントリーをはてなブックマークに追加 Clip to Evernote
    『トランプ・ナポレオン』に通信対戦機能を作っていると以前の記事で書きました。

    現在は通信対戦の機能を作り終え、テストを行っているところです。早ければ来週か11月の初旬にリリースできるかと思います。はじめは試験版と銘打っておこうと思っています。
    マッチングをルームの作成、参加で通信対戦を行っているので、少し面倒かもしれないと感じています。全自動で通信対戦を行う機能を追加すると自分の参加したいルームに参加できなくなってしまいます。これだと誰かと遊ぶということが難しくなります。ユーザーの意見があれば対応というところですが、まずはルームの作成・参加という方式でリリースします。

    通信対戦を作っていてわかったことは、進行不能になることや通信の切断への対処が難しいということです。どのような対応をするのが良いかはアプリによるので、以降の話は『トランプ・ナポレオン』についてということになります。

    トランプゲームでは誰かが札を出さなくするだけで進行不能になります。通信対戦ではこれが起こると遊ぶのが苦痛になります。
    対処としては時間制限をかけることで解決します。一定時間が経ったら、自動でカードを出すようにしてしまえば良いのです。
    『トランプ・ナポレオン』では全員の進行を止めるような判断を行うところでは必ずそのように作ることにしました。
    宣言、副官指定、カード交換、トリックでのカード選択のときには時間制限を設けています。時間制限が来たら、AIで勝手に処理を行うことにしています。

    切断の対処は、注意をダイアログで表示して「なるべく切らないようにしてね」とお願いしています。これだけで済めば良いのですが、おそらくそうはいきません。

    お願いしても切断されるでしょうから、その時はなんとかゲームを続けられるようにしています。ホスト(サーバーの役割があるクライアント)がいなくならなければ、クライアントが抜けても通信対戦が継続されます。ホストがいなくなった場合はどうしようもないので、クライアントが個々にゲームを続けられるようにしてあります。

    まとめると、以下のような対応をしています。

    <通信を切った人(アプリの中断も含む)>
    • 通信対戦は終了し、そのままオフラインでゲームを継続する。

    <通信を切られた人>
    • ホストがいなくなった場合は通信対戦が終了し、そのままオフラインでゲームを継続する。
    • クライアントがいなくなった場合はそのプレイヤーはAIで処理されるようになるが、通信対戦は継続する。ただしホストだけになってしまった場合は通信対戦は終了し、そのままオフラインでゲームを継続する。
    書くとそんなに処理が多くないように思います。しかしながら実際にこれを対応するのはかなり骨が折れます。

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

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

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

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

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

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

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

      このエントリーをはてなブックマークに追加 Clip to Evernote
    『Pick Up』というアプリ名で開発してきたアプリを『Pick Up A Diamond』に変えます。Everyplay にゲーム名の登録をしたときにすでにPick Up は存在していたのです。そのため、Everyplay 上のゲーム名がアプリの名前と食い違ってしまうことになっていました。
    わかりにくいし、間違う元なので名前をもう少し長くして既存のものと異なる名前にしました。 

    名前を変えると色々な所に影響が出てしまいました。アプリ名は表示だけでなく結構重要なものなので気軽に変えることはできないと思っていた方が良いです。
    私の場合は広告の申請を再度することやアプリ名を使っているところをすべて修正する必要がありました。タイトル画面も以下のように作り直しました。

    title
     

      このエントリーをはてなブックマークに追加 Clip to Evernote
    YouTubeとニコニコ動画へ動画をアップロードしました。
    『Pick Up』の現在の状況を撮影したものになります。ゲームの流れはできていますが、ステージが少ないのとShare機能ができていません。
    しかし、今までのゲームよりも面白くできているという実感があるので、中途半端に出したくないという気持ちが強いです。遅くても6月中に出したいと思っていますが……がんばります。

    以下はリンクです。
    内容は同じです。画質はYouTubeの方が良いと思います。



      このエントリーをはてなブックマークに追加 Clip to Evernote
    現在開発中のアプリの動画をアップしました。





    このゲームはUnityのチュートリアルを元に作成しています。そのままでも面白いですが、いろいろ改造して見た目が似ている別のゲームになる予定です。

    現時点では遊びの根幹部分の作成しか終わっていません。端末の傾きを利用した操作を気持ちよくするために実験中です。加速度センサーを用いた実装がおそらくは良いのだろうと思います。傾けたときの反応がどれくらいであれば良いのかということが難しいのです。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    Unity5が4/1に更新されたので、アプリ『走れユニティちゃん!』を出し直そうと思っています。
    そのまま出しただけだと、ゲームとしては変わりがないので告知するのも微妙です。
    ゲーム自体に少しは手を入れて出し直すことで、アップデートに対する多少の理由になるはずです。

    具体的にはゲームを少し簡単にするつもりです。
    現在だと敵に当たると操作不能になります。その間に障害物が来ることでゲームオーバーになりやすいということになっています。これ自体は意図したことなのですが、どうやら理不尽と感じられてしまうようです。

    これを解消するために操作不能にならない条件をつける予定です。
    HPのようなものを新たに作り、それが0でない場合は操作不能ではなくHPを減らすという処理に変えるのです。
    これにより、操作不能になるのはHPが0で敵に当たる場合だけになります。
    もちろんHPは回復できるようアイテムを追加します。

    処理を作るのは大丈夫ですが、素材を用意するのに時間がかかっています。
    『走れユニティちゃん!』のイラストはユニティちゃんの公式ページのものを使用しています。
    プレイヤーや敵もその中に含まれるものなので、私がイラストを描いてるわけではありません。
    新しくアイテムを追加しようとすると、そのアイテムの絵が必要になります。
    これを描くには自分で描かなければいけません。ドット絵を描いたことはありませんし、普通のイラストも描いたことはありません。
    現在、調べながらドット絵を描くことをしています。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    以前の記事で開発中のゲームについて書きました。
    タイトルも決まっていなかったので、あまり詳細について話せませんでした。
    タイトルも『走れユニティちゃん!』にすることに決まり、大体の部分が出来上がりつつあります。

    ニコニコ動画に紹介動画をアップロードしてみましたので、これをご覧ください。
    説明を聞くよりもわかりやすいかと思います。


    動画の編集とアップロードをやったことはなかったので、大変でした。
    色々と検索してなんとかできたという感じです。

    次回、備忘録としてアップロードするまでの手順をまとめてみようと思います。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    しばらくゲームと関係ないことが多かったので、今日はゲームについて書きます。

    現在、新しいゲームを作っています。
    一通りの仕組みはできたというところだと思います。

    難易度を3つ用意したのですが、今のところ一番簡単なものしか用意できていません。
    簡単すぎてもつまらないことが作っているときから感じているのですが、簡単なものも必要だという矛盾があるのです。
    そのためにいくつかの難易度を用意して遊んでもらうのが良いということになりました。
    下のスクリーンショットは難易度の選択画面になります。
    UKRdev_select

    今回はユニティちゃんに活躍してもらいます。
    今までのアプリは絵がないという結構致命的な欠点がありました。
    ファミコン風の2Dゲームの絵でとてもかわいらしいです。
    やっぱり、キャラクターが動いているのは楽しいです。
    ボイスは必要だと感じているので入れる予定です。このボイスも色々あってどれにしようか迷います。

    いずれ公開しますので、その時には遊んでいただけると嬉しいです。

    このページのトップヘ