石像備忘録

モアイ像がいろんなメモを書き残す場

unity1week「10secSUSHI」制作ログ

お久しぶりです、しもむ~です。

2018-11-19~2018-11-24にunityroomで開催された1週間ゲームジャムに
参加しました。
お題は「10」でした。

作ったもの

タイトルは「10secSUSHI」です。

大量の寿司をサラリーマンに食らわせるゲームです
完成したものはこちらで遊べます。
https://unityroom.com/games/ten_sec_sushi

また、今回初の試みとしてAndroid版をGoogle Playにて公開しています
https://unityroom.com/games/ten_sec_sushi.google.com/store/search?q=10secSUSHI

ゲーム内容決め

「10」で最初に思いついたネタは

  • n進数の10(0b10、0x10等…)

でしたが、ゲームの形にするまで詰められなかったので断念

そこでふと
「10の文字列、横にしたら寿司に見えるのでは」

と思い

f:id:simomuuu:20181126222658g:plain:w300

こんなものを試作、これがそのままタイトル画面になりました

また、今ちょうどFactorioという生産ライン構築系のゲームをやっていて、
何か大量生産したい欲があったので、
「寿司をできる限り量産するゲーム」
という形になりました

モデル作成

f:id:simomuuu:20181126223011p:plain:w300

寿司の3DモデルをMagicaVoxelで制作
ボクセル作品は前々作以来ですね

f:id:simomuuu:20181126223229p:plain:w300

奥にいるサラリーマンですが、開発後半で作ったもので、
時間短縮のために前しか作ってないです

実装

今回の実装は全体的に凝ったことはしていないです。シンプルです

f:id:simomuuu:20181126223558p:plain:w300

当初は下の寿司の選択肢もゲーム毎にランダムに変わるようにしていましたが、
スコア差が出にくくなってしまいそうだったのと、
正直あまりいい難易度の上げ方とは思えなかったで公開直前で廃止しました
上のボクセルに本編では出てこないやつがあるのはその影響です

f:id:simomuuu:20181126223803g:plain:w300

また、ゲーム開始前に成功例2回、失敗例1回を見せるチュートリアルを導入しました
これはマリオパーティーのミニゲームでも開始前にこんな感じのチュートリアル
が入るゲームがあったと思うのでそれを参考にしました

発生したトラブル等

今回は今までと比べてトラブルが多めでした

f:id:simomuuu:20181126223943p:plain:w300

まずはこれです。
WebGL出力したらSpriteが描画されない現象が発生しました
Unity組み込みのデフォルトUIのSpriteは描画されたり、
SpriteをReimportし直したあとにビルドしたら表示されるようになったりと
よくわからん挙動でした

また、近いものにAndroid版をビルドしたときに
一部の音が鳴らなくなったりしたものあり、
こちらもReimport -> ビルドでとりあえず解決

どうもUnity2018.2.16にビルドインアセットの
構築周りでバグがあるんじゃないかと勝手に予想しているんですが、
謎です
Unityなんもわからん

あとはAndroid周りだと、ビルドしたアプリを起動したら
Made with Unityの画面でフリーズする現象もありました
これはUnity再起動してビルドしたら直りました、謎

11-25 09:07:51.871 12200 12265 E Unity   : Error: Cannot create FMOD::Sound instance for resource sharedassets1.resource, (Unsupported file or audio format. )  
11-25 09:07:51.871 12200 12265 E Unity   :  
11-25 09:07:51.871 12200 12265 E Unity   : (Filename:  Line: 877)  
11-25 09:07:51.871 12200 12265 E Unity   :  
11-25 09:07:51.871 12200 12265 E Unity   : Function SoundHandle::Instance::~Instance() may only be called from main thread!  
11-25 09:07:51.871 12200 12265 E Unity   :  
11-25 09:07:51.871 12200 12265 E Unity   : (Filename:  Line: 21)  
11-25 09:07:51.871 12200 12265 E Unity   :  

また、いわゆる「アプリが落ちる」現象も起こりました
自分が書いたプログラムが吐く例外等はUnityが勝手にキャッチされるはずで、
落ちることはあまりないはずなので:thinking_face:でしたが、
adb logcatでみると上のログで死んでることが判明
これは拡張子の違う音源ファイルを入れていた?あたりが原因だったかと

反省点

前作ほどゲームの勢いというか、
非現実性が少なかったため微妙な仕上がりな気がします
無難と言うか、ありがちなゲームというかそんな感じですね

また、知人にプレイしてもらったところ、最初の3回が自動チュートリアル
であることが認識されにくかったです。
マリパだと「プレイ可能前のチュートリアル」が理解できるのは
なぜなんだろうと思った次第です

いつのもの、参考にならないソースコードはこちらになります
(最初の5コミットぐらいまでは真面目に設計する気がありました)
https://bitbucket.org/simomu-/ten_sec__sushi