あほげーとは出されたお題に対して大体24時間でアホなゲームを作る企画です。
今回は2月8日に「にわとり」というお題が出され
翌9日にゲームを提出する形でした。
そしてこれが提出したゲーム
「10000円をニワトリで稼ぎたいだけの世界」
この記事ではこのゲームの開発記録なんかを記していきます
で、ここから開発記録
Twitterの情報を引っ張り出しながら話するよ
まずお題を聞いて思ったのは
ニワトリが卵を産んで、それを売って儲けるゲームにしよう
ってことでした
多分、以前のあほげーのゲームを遊んでいた際に
豆苗をひたすら育てるゲームがあって、面白かったから
結構影響を受けたんだと思います。
豆苗を育てるゲームは水道代と売値のチキンレースみたいな感じで
上手く育てて上手く売って儲けてねってゲームだったから
初期思想はかなりこの内容に引っ張られてる
で、とりあえずニワトリのグラフィック用意せんにゃってことで
グラフィックを描き始めました
使用ソフトはいつものEDGEニワトリのベース pic.twitter.com/r9lW8YfMhJ— ロッドメン@RT大歓迎 - コトシロ (@Kotoshiro001) 2019年2月8日
Asepriteも買ったんだけど
速度重視だとどうしても慣れたソフトを使ってしまう
で、卵・ひよこ・ニワトリを制作とりあえず必要そうな素材 pic.twitter.com/lbqsCBhb40— ロッドメン@RT大歓迎 - コトシロ (@Kotoshiro001) 2019年2月8日
この段階で卵を売るのか育ててニワトリにして卵生産力に充てるか
っていうところを遊びにしようと思ってた
あと、餌の概念もあって
餌をあげることで育ったり卵を産んだりするから
餌の工面とニワトリのバランスを考えるゲームにしようとしてた
当たり判定は四角じゃ面白くないからとりあえず当たり判定つける pic.twitter.com/HSfKCArYOT— ロッドメン@RT大歓迎 - コトシロ (@Kotoshiro001) 2019年2月8日
多角形の当たり判定を使ってそれっぽく囲ってます
実際ここにある当たり判定のままいきました
とりあえず物理を乗っけて養鶏させたい pic.twitter.com/4iUJXaxDXC— ロッドメン@RT大歓迎 - コトシロ (@Kotoshiro001) 2019年2月8日
生物は重力影響下、その他は静止オブジェクトとしてます
ツイートでは触れてませんが
掴んだところを動かすのはけっこう大変だった
最初は中心点をマウスと合わせてたけど
それだと箱が思いっきり動くので
掴まれたオブジェクトがマウスの動きを追従するように修正
実はこれでも物理演算が入ると掴んでる座標がずれまくるから正しくはない
ただ、この規模のゲームならまぁいいかなということにしました。
ホントなら掴まれた点がマウスのところに来るように
ベクトルをかけて動かすのが一番いいと思う
このツイートはいいね数が異様に多くてやべぇ— ロッドメン@RT大歓迎 - コトシロ (@Kotoshiro001) 2019年2月8日
やらかしたwww pic.twitter.com/KsNjXARjam
やっぱみんなバグが好きなんすねぇってなった
何が起きているかというと
卵→ひよこと成長する時、
卵がひよこを生成して卵自身が消える
っていうプログラムを書いたつもりが
卵自身が消えるって部分を書き忘れていた
さらに指定時間が経過したらひよこを生成する
になっているもんだから
指定時間以降永遠とひよこを生成し続ける
ひよこ→ニワトリも然りで
時間が進むごとに増える増える
なんていうバグが起きていたんです
で、こっちはちゃんと自身が消えるっていうのを入れた版こっちが正しいやつです pic.twitter.com/tYZdKdrYa6— ロッドメン@RT大歓迎 - コトシロ (@Kotoshiro001) 2019年2月8日
成長時間や卵を産むインターバルは調整してないから
結局ブワーってなるけど
こっちは秩序のあるブワー
この辺りからこのゲームの方向性が決まってきてて
ニワトリがブワーって増える中で頑張って売るゲームにしようということになった
でもこの段階では販売エリアを動かす予定はなくて
その変更が入るのはもうちょっと先のお話
これはもうちょっと秩序をもたせた版でどんどん産んで増えてくれますw pic.twitter.com/NXCkhnzNLn— ロッドメン@RT大歓迎 - コトシロ (@Kotoshiro001) 2019年2月8日
どんな挙動をするかの確認用
で、次にUIとかを揃える必要が出てくる
個人的にuGUIが嫌いなので
自前でGUIを作りたかった
時間もないし今開発しているAegisから素材を拝借することに
それが今実装されている数字の部分
あれ実はAegisの残弾表示用の数字なんです
この辺りで眠気に限界が来て8日の開発は終了しました
翌9日、最終日の開発はGUIの制作からです
buyじゃなくてsellだるるるおぉぉぉぉ!!! pic.twitter.com/d8OCdfVtP4— ロッドメン@RT大歓迎 - コトシロ (@Kotoshiro001) 2019年2月9日
これは販売エリアを作ろうと思って
勢いだけでドットを打った結果
あれ?って思って調べて
売るってSellじゃん!ってなったシーンw
結果的に箱を販売することになったから
両方使うことにはなったけど
正直作ったものが無駄になるかと思って焦った
UIを揃えたあとは
ニワトリのステータス遺伝システムを作って
各ステータスの依存関係を作って
さて、じゃぁどうやってステータスをユーザーに伝えよう
これがほんとに大きな課題だったと思う
シミュレーションゲームって大概のステータスが
全部見えるか全部見えないんだよね
膨大になるニワトリの全ステータス管理は
人間の能力を超えるから無理
見せなかったらなんか違うぐらいの認識になる
ほぼ苦肉の策として
カーソルを合わせたやつのステータスを表示する
という形で収まりました
カーソルにステータスのウィンドウを出させるかとも思ったけど
それだと見た目が迫っ苦しいので却下したり
箱を購入で増やせるシステムも追加して
さてそろそろ完成かなと思いながらテストプレイをしてました
ニワトリを増やして
いらないニワトリを販売エリアに運んで
そんなことしてる間にニワトリが爆発的に増えて
頑張って箱増やしてニワトリを溜めて
また運んで売る
そんなことをしているとふと頭によぎったのが
自動生成施設を作りたい…
つまり売却エリアを動かせれば解決なのでは!?
その考えに行き着くのはすぐでした
早速動かせるようにしてみたところ
思ったより面白い!
もちろん欠点はありました
画面外に持っていってしまうと
取り返せなくなる点
でもまぁあほげーだからいいじゃない
それぐらいあほでも
そう考えさせてくれる点で
本当にいいゲームJAMだと思います
そしてブラウザー上でテストして
Unityroomに登録して
提出じゃー
…
ブラウザ上でマウス操作が効かないんですけど!?
ほんとにこれは困りました
試しにマウスカーソルの座標とマウスボタンを画面上に出してみたら
ちゃんと操作したとおりになるんですよね
つまり
マウス操作は出来る、ゲームも動く
ただしゲームは操作を受け付けない
っていう状況に陥ったわけです
創作仲間の方々にいろいろと質問したり
ネットで似たような事例がないか調べたりしましたが
なにもない
これは本当に困った
Unityの公式ページを10回ぐらいは見直したと思います
で、いろんなブログを渡り歩いていたら
WebGLはデバッグしにくいからCtrl+Jでログ出して
エラーログとか全部見たほうがいいよ
って言われました
そんなもんかねぇと思いつつ
ビルドしたやつを動かしながらログを追いかけると
警告でも注意でもない普通のコメントに
未知のタグが指定されているオブジェクトがあります
的な文面を発見
タグはunTaggedになってたオブジェクトがいくつかあったので
これしかないだろうなぁと思って適当なタグを指定
なんとタグを指定するだけでうまくいきました
悩みに悩んだ4時間は何だったんだ!?
これでやっと完成
一回Unityroomにアップしたあと
一通り遊んでみてバグがないことを確認して
— ロッドメン@RT大歓迎 - コトシロ (@Kotoshiro001) 2019年2月9日
あほげーに作品提出して開発は完了しました!
ちなみに餌要素は
ブワーッと増えるゲームと相性が悪いので
仕様ごとボツりました
はい、ここから後日談
あほげー参加者の方、身内、Unityroom見ている方
様々な方にこの略称「1万ニワトリ」を遊んでいただけました
様々な意見をいただく機会もありましたが
特に多かったのが
・ブワーって増えだしたらめっちゃ面白い
・最初待つのが長い
・ニワトリ売って詰んだ
・タイマーあるならランキングあってもいいかも
という意見
確かに最初は長いし
初めてだからスルーしたけどオレもランキングがほしい
ニワトリを売ってしまって詰むのは仕様です(あほげー要素
ということで
開発に区切りをつけるためにも
Ver.2を作ろうとなりました
まず最初の課題
始まってから面白くなるまで時間がかかる
これは2つの問題を孕んでいると考えました
1.ニワトリが一定数にならないとあふれるほどにならないのでヒマ
2.卵を産む時間分更に待ち時間が発生している
そもそもこのゲームはねずみ算式にニワトリが増える
ニワトリなのにねずみ算とはこりゃ如何に
みたいなところがあるので
最初は数が少ないんですよね
それでもまずは2羽いればオーバーフローまでの時間を
かなり短縮できると考えたので
初期は2羽スタートに変更しました
次に待ち時間問題
最初2羽いようが卵を産むまでの時間が長いと
1羽が成長する分の時間を短縮したに過ぎないので
ニワトリになった直後に卵を産むように調整しました
開始早々に卵を産んで
成長したらすぐに次の卵を産む
ニワトリに成長してから卵を産むまでの時間を縮めることで
プレイ全体でのサイクルを短縮してプレイの高速化に成功
プレイ時間問題は一先ずこれで解決しました。
そして次の課題
ランキング実装について
これについて
ここでは深く語りません
すでに実装方法を素晴らしい方がまとめてくださっているので
そちらを御覧ください。
【Unity、WebGL】なるべく簡単にオンラインランキング機能をつけるサンプル
WebGLからツイートするサンプル
非常にわかりやすく実装もカンタンだったので
ランキングの実装自体は30分もかかりませんでした
仕上げにランキングで日本語が使えるよう
プラグインを追加して完成です
WebGLでIME入力を可能にします
画像つきツイート・オンラインランキングは
先駆者様のおかげで非常に早く実装できました
そしてこれらが正しく動作することを確認して
「10000円をニワトリで稼ぎたいだけの世界」の開発が終了しました
今回の開発を通して
今まで積み重ねてきた経験が
技術として身についていることを実感しました
また、様々な反応をいただいたことで
これからどんなゲームを開発していきたいのか
についても方向性が見えたように思います。
以上
質問等あればTwitterやコメントなどでご連絡ください