【素数ガール】この尊いアプリが出来るまで

どーも、ラディアスリーの中村です。

今回は、加藤と話しているうちに妙に盛り上がってリリースまでしてしまった素数ガールが出来たいきさつを書いてみました。

 

素数ガール

iOS / Android 共に公開されてます~。よしなに。

(ゲームマーケット前にこんなん作っちゃってるから忙しくなるんだっていう。)

 

さて、妙に盛り上がったいきさつというか、そのあたりのことについてつらつら書いてみようかと思います。

 

何の気はなしに休憩時間に話していた流れで、新しい企画についての話になり、「数を素因数分解したいんだよ。(加藤)」という謎の展開に。

そこで少し考えてみたところ、素因数分解していくよりも単純に素数かどうか判定するだけくらいのもののほうがいいんじゃないか?となりまして。

でも、それだけじゃさすがに面白くないよね…と。

 

そこで出てきた案が、「間違えると女の子になじられる」というカオス。

これは……全素数界が震撼するアプリが誕生しそうだぜ…。

 

さらに、

  • リワード広告でもらえるのが素数
  • ゴールド素数、シルバー素数、ブロンズ素数

なんていうキーワードも生まれてきました。

リワードでもらえるのが素数…?な… 何を言っているのか わからねーと思うが…。

ブロンズ素数…?ペガサスローリング…!

 

はい。もうカオスすぎて意味不明ですね。

でもまぁここまでの企画概要だったらすぐ作れるだろうということで、開発に着手。

でも案の定、作っているうちに

  • 正解した素数はリストで確認できる
  • 女の子が2人いる
  • 途中で女の子が増える
  • 女の子には好感度があって、好感度によって言葉が多少変わる

などの欲求が発生してきました。

 

なんだか書いてみたらただの変態おじさんみたいになってるな…。

(私たちは健全なおじさんです!のはず。。。)

私はこれはネタアプリというものに属するんじゃないかと思ったのですが、加藤いわく、素数を扱った真面目で高尚なアプリであるとのこと。

 

結果どんなアプリになったのか気になる方は是非ダウンロードして遊んでみてください!

無料なので…是非。

素数ガール

 

なお、素数って何?な人にはホントに意味不明なアプリだと思います。

焦った時は素数を数えて落ち着くタイプの人には刺さる!…かもしれません。

 

ということで、今回はこれにてッッ!

【おーくしょんパーティ!】アプリ開発の環境とか手順とか

どーも、ラディアスリーの中村です。

今回は、おーくしょんパーティ!のアプリ版の話です。

(ゲームデザインではなく、開発寄りの話になってます。)

 

使っている(or 使う予定)ものをざっと羅列してみると

  • クライアントサイド
    • Unity
  • サーバサイド
    • AWS EC2
    • AWS Cognito
    • AWS Lambda
    • AWS DynamoDB
    • docker

とまぁこんな感じでしょうか。

(もっと詳しい話は多分加藤が書いてくれるんじゃないかと…。)

ちなみに、EC2上で稼働するサーバー側アプリケーションは javascript で記述しています。

DynamoDB は DynamoDB local というのがあるので、それを利用する予定ですが、現時点では Redis を使っています。そのうち DynamoDB に切り替え予定。

 

開発はプログラマが複数いる(現状は加藤と私の2人)という状況なので、EC2上で動作させてデバッグなんてことはできませんし、いきなり EC2 と Unity で通信して動作確認なんてこともデバッグしづらくて大変そうです。

ということで、各開発者のローカル環境でデバッグが出来るように、 docker を使ってローカルにも同じ環境が簡単に作れるようにしています。(私じゃなくて加藤が整えてくれたんですが。)

 

で、実際どんな感じに開発をすすめているの?というのが、こちら。

開発段階1 : サーバアプリの実装

とりあえず javascript でぺこぺこ書いていきます。

開発段階2 : テストクライアントの実装

html + javascript でサーバアプリと通信して簡単な表示と操作が出来るものを作ります。

ここまで進むと、chrome などのブラウザから localhost にアクセスして、ローカル環境で起動したサーバアプリとのやりとりが出来るようになります。

ここで動作確認をしてバグを修正し、一通り機能が揃ったら git で共有できる状態です。

大体こんな画面になってます。

サーバ側

ログがびろびろと吐き出されています。

大半がどんなデータが送られてきて、どんなデータを送ったかのログですね。

まぁこんな画像を見せられてもわけわからないでしょうが、雰囲気だけ…。

 

テストクライアント側

ビジュアルはなく文字ベースのものなので、わかりにくいですが必要な情報は見れるように作られています。

クエストの内容とか、各プレイヤーの所持金や所持キャラクターなどが表示されているのがわかるかと思います。

ちなみに、画像はクエスト中で、1人目のプレイヤーが1つ目のミッションをクリアした状態ですね。

ここを作りこんで時間をかけてもあまり意味がないので、この程度でよしと割り切っちゃってます。

 

開発段階3 : クライアントの実装

Unity を使って、テストクライアントで行っていた挙動を作りこんでいきます。

UI なども載せてわかりやすくしていきます。が、まだデザイナ陣が入っていないのでプログラマが適当に用意した画像になっちゃってます。

まぁ、素材の差し替えは後でいくらでもできるので、気にせず雰囲気を出す程度にしておきます。

こんな感じの画面ですね。

テストクライアントと同じ状況を Unity で表示している画像になりますが、こちらの方がビジュアル的にわかりやすくなっているんじゃないでしょうか。

後は各画面を作りこみつつ、サーバ側に不備があれば修正 → テストクライアントで確認 → Unity で実装 という繰り返しです。

一通り仕上がったら、実際に AWS 上で起動して確認します。こうなると複数のプレイヤーで実際に遊べるようになります。

そして実際に遊んでみて、改修する必要があるところを確認したり、バランス調整をしたりしていきます。

 

まだまだ開発途中でカチッとしたビジュアルが見せられず恥ずかしいですが、プログラマだけで進めている開発初期段階ってこんなもんですよね…?(誰に問いかけているのか自分でもわかりませんが。)

ということで、今回はこれにてッッ!

【おーくしょんパーティ!】アプリ版とアナログ版の違い(2)

どーも、ラディアスリーの中村です。

前回、アプリ版とアナログ版の大きな変更点について書きましたが、キャラクターのスキルについては書けていなかったので、そのあたりを書いてみたいと思います。

 

まずはアナログ版のスキルのおさらい。

  • Fighter : 対戦相手の好きなキャラ1枚を裏返して1ターン無効にする
  • Wizard : サイコロを2つ振って低い方の目を判定値に加える
  • Priest : サイコロを2つ振って7以上出たらミッションをクリアする
  • Thief : 対戦相手を1人選び 50G 奪う
  • Paladin : このキャラを破棄して戦闘系ミッションをクリアする

そして、これをアプリにそのまま適用しようとすると、

  • Fighter → いずれかの対戦相手を選択するという手間がかかってしまう
  • Wizard → そもそもサイコロがないのでどう扱えばいいのかわからない
  • Priest → そもそもサイコロが…
  • Thief → 対戦相手を選択…
  • Paladin → そのまま使えそうかな?

となってしまい、ほぼ使えません。

 

そこで、ガラッと内容を変更してしまうことにしました。

  • Fighter : 他の全てのプレイヤーのステータスを5秒間半減させる
  • Wizard : 5秒間 AGI 以外のステータス を倍にする
  • Priest : 自分にかかった Fighter スキルを打ち消す
  • Thief : 5秒間 AGI (移動速度)を半減する代わりにミッションをパスできる(ミッションクリアとは判定されない(報酬は得られない))
  • Paladin : このキャラクターを消滅させる代わりに、交戦中の戦闘ミッションをクリアする

こんな感じ。狙いとしてはこんな感じ↓。

  • Fighter → 他プレイヤーの邪魔スキルという性質を変えずに、手間を削減
  • Wizard → 自分を強化するスキルの性質を変えずにアプリに適用できるように
  • Priest → 回復役のイメージでスキルを刷新
  • Thief → 隠れてコソコソするイメージのスキルに変更 (ハイド・イン・シャドウ!)
  • Paladin → そのまま

 

でもこればっかりは実装してみてテストプレイしないと狙い通りかわからないですねぇ。

アナログ版もスキルの調整にかなり時間をかけましたし、アプリ版も同じ感じになるんじゃないかな…と。

 

何はともあれ、スキルを大幅に見直すということが必要であることがわかり、スキル変更の方向性も見えてきました。

ということで、今回はこれにてッッ!

【おーくしょんパーティ!】アプリ版とアナログ版の違い

どーも、ラディアスリーの中村です。

前回、アプリ版ではダウンタイムが長過ぎてゲームにならないだろうということで、アプリ版ではかなりルール変更をしたということを書きました。

今回はその続きで、どんなルール変更をしたのか詳しく書いていこうと思います。

 

最大の変更点…それは、クエストフェイズを手番順にプレイする形ではなく、同時進行出来るようにしたことです。

逆にオークションフェイズは、そもそも同時に金額を書いて同時にオープンするルールなので、そこはそのままいけそうだな、と。

そして、ショッピングフェイズ(アイテムを購入するフェイズ)は手番が関係するのでこれも省いてしまい、アイテム自体を無くしてしまう事にしました。

 

もう少し詳しく説明していきます。

こんな感じで、画面下部にパワーメーターを設置することにしました。

メーターをタップすると、その時のパワーと AGI に応じて自分のコマが進んで行く想定です。

例えば、ゾーンとゾーンの間の距離を100として、自分の AGI が 20、メーターが50% だとすると、その時は10進む事になって、ゾーン間の1/10 を踏破したことになります。

そして、ミッションに到達した時は、メーターのパワーと必要なステータス値に応じて達成値が溜まっていき、ミッションクリア値を越えた時にミッションをクリアした事になります。

アクションっぽい感じですね。アナログ版とはだいぶ違いますが、デジタルにはデジタルの良さがあるということで。

 

各ゾーンのミッションはある程度近づくまでは自由に選択可能で、有利なミッションを選択してもいいですし、他のプレイヤーが狙っていないミッションを選択してもいいことにしました。

複数プレイヤーが同じミッションを選択した場合、同時にそれぞれが達成値を溜めていき、先にクリア値を越えた側がミッションクリアしたこととして、クリア報酬が与えられます。

先にミッションをクリアされてしまったプレイヤーはその時点で先には進めますが、クリア報酬がもらえないという仕様にしました。

このミッション周りの仕様により、他のプレイヤーとの駆け引きが生まれる事を期待しています。

例えば、どのミッションも苦手ミッションだった場合、誰かの後をついて行きクリアしてもらうといったプレイも考えられそうです。クリア報酬は貰えませんが、その先で有利な展開が待っていそうならそういう選択肢も生まれるのかな、と。

 

これらの仕様により、絶対にクリア出来ないクエストというのはなくなるので、救済措置であったアイテムがなくなってしまっても問題なさそうです。

 

 

今回は、一番大きな変更点について説明してみました。

次回はスキルの変更点について書いてみようかと思います。

ということで、今回はこれにてッッ!

【おーくしょんパーティ!】アプリ版!

どーも、ラディアスリーの中村です。

今回は、ラディアスリーで開発中の「おーくしょんパーティ!」のアプリ版のことを書いてみようと思います。

 

今までアナログゲームとしての「おーくしょんパーティ!」について書いてきましたが、スマホアプリの開発も同時に進行しています!

 

アプリ開発の場合、私が最初に仕様書として書くのが画面遷移図と各画面の概要です。

このあたりは人によって違うんでしょうが、あくまでも私の場合ということで。

こんな感じで画面のつながりと、各画面に含まれる要素をざっくりと洗い出してます。

ついでにざっくりした仕様なんかも書いちゃったり。

これ、以前紹介した Confluence 上で Draw.io を使って書いてます。

ここで書ききれないような仕様については、別途 Confluence で別ページに記述するようにしています。例えば、データベースの構成とか、通信シーケンスとか…。

 

最初にこれらの仕様書を書いた時には、アナログ版と全く同じ仕様を再現するように書いていました。

しかし…いざ書いてみると、アプリとしては非常にテンポが悪そうだということがわかりました。

こりゃヤバい。。

 

どういうことかというと、アナログでは順番に手番を処理していくわけですが、アプリ版だと、どうしても待っている時間が長くてだれてしまうんですね。

1回の手番(ラウンド)を30秒とかに制限したとしても、自分以外の3人がプレイしているのを最大1分30秒も待つ事になってしまいます。

これはいかにも長い。長すぎる。

 

皆さん、こんなに待たされたらゲームやる気なくなりません??

 

ということで、アナログ版とアプリ版でルールを変更する事にしました。

そしてアプリ用ルールを検討した結果、これが結構ガラっと変わることに…。

 

詳細は次回!

ということで、今回はこれにてッッ!

乞うご期待ッッ!!

開発に使っている周辺ツール

どーも、ラディアスリーの中村です。

今回は、開発に使っているツールについて書いてみようかと思います。

 

開発に使っているツールと言っても

  • Illustrator
  • Photoshop
  • Unity
  • git
  • SourceTree

とかいう話ではなくて、ドキュメンテーションとか進捗管理の話です。

で、今回のメインテーマですが、Confluence と JIRA です。

アプリ開発とかでは使ってるところが多いんじゃないかと思うんですが、これってアナログゲーム開発の世界でも一般的なんですかね?

知っている人も多いと思いますが、知らない人向けに書きますので「もう運用しとるわッ」って方はスルーを…じゃなくて軽くでも目を通してもらえたら嬉しいなぁ…。

Confluence

まずは Confluence から。

https://ja.atlassian.com/software/confluence

これですね。

まぁ、なんでしょう。wikiみたいなもんですかね。それ以外の使い方もできるだろうけど。

 

ラディアスリーではクラウドのサービスを使っています。

自社でサーバーを用意する必要がないので運用が楽です。

それに10ユーザーまでなら 月額10$ なので安い!

10人で使ったら一人当たり 100円/月 くらいですよ!子供のお小遣いでも運用できそうですね。

 

簡単な使い方しかしていないので、wikiっぽい使い方にしかなっていませんが、それでも便利ですよ。

「おーくしょんパーティ!」の開発で使っているのが Roadmap Planner と Draw.io という2つのマクロです。

Confluence ではマクロで機能追加ができます。あらかじめ使えるものもありますし、Atlassian Marketplace for Confluenceで公開されているものもあります。Draw.ioはマーケットからインストールしました。(無料!)

Roadmap Planner では大まかなスケジュールの線を引いています。こんな感じ↓

Draw.io はデジタル版の画面遷移図とか通信シーケンスを書いたりしています。こんな感じ↓

ダイアグラム記述のためのマクロですが PowerPointっぽく使うこともできるので、結構使い出があると思います。

JIRA

https://ja.atlassian.com/software/jira

もう一つの JIRA ですが、こちらはアジャイル開発用のツールですね。

こちらも10人までなら月10$。安ッッ!

普通はアプリ開発とかで使うんでしょうかね。でも今はアナログ版の「おーくしょんパーティ!」の開発で使っています。こんな感じ↓

こういったツールを使わない場合でも、どういった作業が残っているのかリストアップしたりはすると思いますが、どれだけ終わったのか視覚的にわかりやすいのと、メンバー全員がどこでも確認できるというクラウドの便利さがあるので愛用しています。

ホワイトボードに付箋を貼っているのと変わりないですが、場所によらず確認できるメリットがあるのでこっちの方がいいかな、と。

一番左にあるのがこれからやる作業、左から2番目にあるのがやっている作業、3番目が終わってみんなの確認中、一番右に行くと完全に終わった作業、という仕分けです。

各作業 (課題とかチケットと言います)  の列を移動させるのはドラッグ&ドロップするだけなので簡単です。

「おーくしょんパーティ!」の開発では大体2週間で1区切り (スプリントと言います) としています。その間にやるべき作業のリストだけがこの画面に現れるので、今何をすべきかはっきりしてわかりやすく、迷子にならず作業に集中できていい感じです。

あ、ちなみに FUJISAWA ってのはプロジェクトのコードネームです。東海道五十三次を驀進中。ラディアスリーの前身のサークル時代から続いているので途中からスタートしている感じになっちゃってます。

 

 

アナログ版もデジタル版も、こんな感じで周辺ツールを使いながら開発しています。もしこういったツールを使っていないという方は試しに使ってみてはどうでしょうか。

ということで、今回はこれにてッッ!

アプリ開発もしてます

どーも、ラディアスリーの中村です。

今回は開発中のオリジナルアプリについて書いてみようと思います。

 

我々ラディアスリーはオリジナルでアプリも開発しています。(というか、それをメインにしたい。)

でも受託開発も行っているため、なかなか開発に時間が割けないのが現状です。

ですので、いつリリースできるかわからないのですが、少しずつでも情報をお披露目していこうかな、と思います。

 

さて、今回ご紹介するアプリのタイトルは「HamsTime」です!

その名の通り、ハムスターを飼って一緒の時間を過ごそう!というアプリです。

私たちを前から知っている人たちは、「またあれか…」とお思いでしょうね。

でもですね…ちゃんとした3Dのハムスターアプリってなかなかどうして、あんまり存在していないのですよね。

 

ということで、3Dのハムスターアプリ作ってまーす。

開発中の画面ですが、こんな雰囲気のアプリです。

デバッグ用のUIが出ちゃってたりとか、仮置きのUIのデータを私が適当に作ったりしてるのでそこはスルーしていただいて…雰囲気はなんとなくわかっていただけるかな、と。

これから、少しずつ情報を出していきますので、長い目で見てやってください。

ということで、今回はこれにて。