Unity1週間ゲームジャム(2017/06/19〜)に参加しました
Unity1週間ゲームジャムとは?
- @naichilab さんの運営する unityroom というサイトで開催されたイベント
- 1週間でお題に沿ったUnity製のゲームを製作する
- 3回目である今回の課題は「積む」
成果物
ツミアゲタワー | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
使用アセット
制作過程
(元気があれば) 99Bricksライクなゲームを作りたいと思ってモック作った #unity1week pic.twitter.com/cgGvyCTZ87
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年6月19日
初日の進捗 #unity1week pic.twitter.com/KEbMojYXAt
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年6月19日
2日目の進捗 #unity1week pic.twitter.com/5J5VKUBP3d
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年6月20日
進捗です #unity1week pic.twitter.com/zwSvn6o60Y
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年6月24日
今回もお疲れ様でした! | ツミアゲタワー | ゲーム投稿サイト unityroom #unity1week https://t.co/qfgEkwIn8I pic.twitter.com/HQoTP4hsMN
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年6月25日
ネタ
好きな積みゲーは99Bricksです
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年6月18日
アナログならキャプテンリノとかブループリントとか
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年6月18日
stackもよい pic.twitter.com/DsiNU7RYq4
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年6月18日
これ面白そう | 街を積み上げる都市開発シミュレーション『BalanCity』深く考えられた物理演算パズルと都市開発の融合 | AUTOMATON https://t.co/SrxPb8w9TJ @AUTOMATONJapanさんから
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年6月18日
事前に色々ネタ漁りをしましたが、自分の好きな99bricksというゲームを元にすることにしました。 FLASHゲー が初出 (という認識) で、99個のブロックを崩さずにいかに高く積むかを競うゲームになっています。現在はAndroid/iOSでもリリースされています。
元ネタはテトリスみたく瞬発的な判断が求められるゲームでしたが、何とか差別化したかったので BalanCity やキャプテンリノみたく「選択する/考える楽しさを強調する」という舵切りをしました。ちょっとこの辺りの評判色々聞いてみたいところです。 (どうでもいい話ですが、2~5マスが繋がったものが出てくるのでテトリミノではなく、ブロックスを参考にした節があります)
仕様
最初は高さを競う予定でしたが、Spriteの特定の回転角におけるpivotの取得方法 (一番高い点はどこか) に悩み、人数で競うようになったという背景があります。 高さなら前作でやったように、他人と高さを比較して競い合う、みたいなことが出来たのですが... 見せ方に悩んでランキングは後回しにしてしまった節はあります。今思えばあまり気にせず、最後にバーン!でも良かったなぁと。
進行
前回より作業時間は短めでした (10時間程度)。 仕様をそこまで複雑にしなかったので何とかゲームサイクルは完成させることが出来て、ちょっと安堵してます。一方で前回良い評判貰ったランキング/BGM/SEを今回実装まで持っていくことが出来ませんでした。ぐぬぬ...。
タイトル
本当はBalanCityみたいに単語被せを狙った、いわゆる「巧いなぁ」と思われるタイトルを考えていたのですが、本当に何も思いつかなかったです。 結局、終わった後に「あー積み上げたわぁ」と言って欲しくてツミアゲタワーになりました(真顔)
コード
UniRxを前回/前々回から使用しているのですが、今回はReactivePropertyを使っていい感じに挙動を分割して、UI更新を含めたマッチョなクラスが出来ないようにしました。
頑張りましょう
STACKや、えれのあさんのTWISTOWERの良く出来ているところは最終的にプレイヤーが積み上げた成果物を最後に見せて、達成感をしっかり与えているところにあります (ブログ記事でも結果をシェアする話が触れられていますが、プレイヤーがシェアしたくなる見せ方は大事)。
一方、自分のゲームは崩れることがゲームの終了地点なので、高く積んだということが残らないのが課題でした。いつ崩れるか分からないので、事前にスクショを撮っておくことも難しい。これが今回一番「やっちゃったなぁ」と思ったことです。以下のような解決策が浮かんでいるので、なんとか時間見つけて、対応出来たらと思ってます。
- スクロール/拡縮できるようにして全体を見れるようにする
- 99Bricksみたいにブロックを固定する仕組みを儲ける
- 全部落ちるまで待つのではなく、Lifeが0になった時点で timeScale = 0 する
- 一番結果が出た時点でのゴーストを背景に残しておく
- Chronos使って巻き戻しつつリプレイを実装する
1週間ゲームジャムへの参加
1週間ゲームジャムへの参加はこれで3回目となります。 1回目はBounceShooterという音ゲー風ブロック崩しを、2回目はDIGROLLという地底を掘り進めて行くゲームを作りました。どっちも個人的には気に入っているので、良かったら遊んで見てください。
自分は、自分の存在を認められたくてこの1週間ゲームジャムに参加しています。更に言えば、(1週間ゲームジャムに限らず) ゲームジャムは飽きっぽくて取り柄のあまり無い自分が、唯一まともに戦える土俵だと思っています。
その土俵で、今回はTOP3に (現時点で) 立てていることは非常に嬉しく思います。コメントもたくさん頂きました、心から嬉しいです。こうした小さな肯定が、自分が生きる/存在し続けるということの励みになっています (自己顕示欲が強くて申し訳ないです...)。
他のゲームも少しずつプレイしています。 上位のゲーム ( ローリングスタック や TWISTOWER ) はどれも完成度高いし、al cielo や ヘカトリスの塔 みたいな世界観を押し出すゲームは自分には作れないので頭が上がりません。良いところはどんどん吸収していきたいと思うし、自分自身も誰かに何かを発信出来る立場になれていたら嬉しく思います。
次回の参加
次回も自分が出来る範囲で身を滅ぼさない程度に頑張ります。
(部分的に誰かの作業に参加させていただくのも興味あります... 音/デザイン/プログラム辺りならチョットダケデキルので、もし興味ある方いましたら、Twitterで良しなにお声掛け頂けますと幸いです)
@naichilabさん、参加者の皆さん、プレイヤーの皆さん、お疲れ様でした!ありがとうございましたー!
Unity1週間ゲームジャム(2017/05/22〜)に参加しました
Unity1週間ゲームジャムとは?
- @naichilab さんの運営する unityroom というサイトで開催されたイベント
- 1週間でお題に沿ったUnity製のゲームを製作する
- 2回目である今回の課題は「転がる」
成果物「DIGROLL」
DIGROLL | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
使用アセット
制作過程
デザインモック作った、気力がキープできればこんなの作る予定 #unity1week pic.twitter.com/B059KTljhT
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年5月22日
掘り掘りごろごろ #unity1week pic.twitter.com/aP3HXNOejT
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年5月22日
2日目進捗 #unity1week pic.twitter.com/r2JgnzfBl4
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年5月23日
3日目進捗 #unity1week pic.twitter.com/346DvA7VVU
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年5月24日
爆発に巻き込まれるとダメージ受けて、アイテム取ると回復する感じの対応まで #unity1week pic.twitter.com/l84jNFz3Cx
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年5月26日
https://t.co/5yZdb2IdQZ (WebGL上の日本語入力)と https://t.co/rAueaRCcGS (SpreadSheetのデータ管理) のおかげでランキングの仕組み出来た! #unity1week pic.twitter.com/pBbqb1ywg9
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年5月27日
明日作業出来るか分からないのでとりあえず投稿予約done. (余力あればツイート機能と音周り足すかな) #unity1week
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年5月27日
ゲームIDをtypoしてたので修正して再ツイート… お疲れ様でした!よろしくお願いします! | DIGROLL | ゲーム投稿サイト unityroom #unity1week #digroll https://t.co/nIvZiJ8Tba pic.twitter.com/bX2gqrhQ9T
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年5月28日
雑記
アイデア
- 月曜日の4時に目が覚めたので、テーマを確認。
- まずやったのはGoogle画像検索でした。どんな転がるゲームが世間にあるのかをインプットする作戦です。脳内で思い付くアイデアは世間に出回っているものが大半なので、あまりパクリという視点で気にせず、そこにどう差別化するルールや世界観を持っていけるか、という風に考えていました。
- というわけで、今回ベースになったのは自分も大好きな「ホルカ×トルカ」であり、そこにご存知「ミスタードリラー」的な進捗要素、荒廃的な世界観を混ぜ合わせ、今回のものが出来上がった感じです (他にも削る表現はそのまんま「ピクロス」だって指摘も貰った)
- 多少コアバリューが被ってでも、他のゲームの良いところを持ってくるのは個人的には大事だと思ってます。
ステージ
- 察しの良い皆様ならお気づきだと思いますが、これはSpriteを使用した2Dゲームです。
- ちょっと立体っぽいSpriteを用意し、Colliderをズラすだけで、2.5Dくらいには見えてリッチに見えるので良いです。着色はUnity上で行なっていました (SpriteRenderer.color)
レベルデザイン
- 今回一番ミスったなぁ、という点です。
- 現在、出現率を決め手のランダムでアイテム/爆弾の出現を行なっていますが、「ゲーム進行に比例して徐々に出現率を狭める」「初めはどこで何が出るかこちらでステージを生成しておき、一定のアチーブメントを超えた地点から (物語の節目を表示しつつ) ランダムでやり込み要素に倒す」というのが、ゲーム説明/学習の観点からも、モチベーションの観点からも受け容れられやすかったのかなと思っています。
ランキング(墓場)
- 一方、こっちは思いつきだったのですが、かなり受け容れられて良かったです。
- 何かしらの目指すべき指標がないと没入出来なさそうだというのは見えていたので、ユーザ目標としてランキングを置くことにしました。だとすると、ゲーム終了後に「実は何位でした!」って言われるよりは、「もうちょっとで届いたのに....!!」みたいなのが視覚的に見える方が目標足り得ると思い、現在の形式になっています。
- あとは個人的にゲーム内で個人を主張できる仕組みが大好きなので、遺言(コメント)を取り入れてみました。最初に指定できるようにするともっとデフォルト以外の文言が増えたのかなと反省しつつ、ユニークな文言を登録してくださる人もいてとても嬉しいです。
- ランキングの実装自体は土曜日にごりっと行なったのですが、以下の記事のおかげでサクッと実装できました。この規模のゲームジャム/ハッカソンであればSpreadSheet使うのはかなりいい感じだと思います。
演出
- 今回もDOTween先生に助けられました。
- 画面のフラッシュや振動、地面の縮小やフェードイン/アウト、ピッケルを動作までDOTweenがいなければしんどくてやってられない感じでした。ユーザの動作に対するフィードバックを設けてることは爽快感に繋がり、一度作ってしまえば、どのゲームでも使い回せるので、どこかで素振りしておくことをおすすめします。
- 以下、手前味噌ですが過去に記載したDOTween周りの記事です。何かの参考になれば....
- あとはタイトルにTypefaceAnimator使いました。uGUIにおけるTextコンポーネントの頂点を時間軸に応じて加工して、フェードイン/アウトや回転等の演出を簡単に実装できるアセットです。これも小さな労力/費用で大きな成果が得られやすいアセットなので推しです!
ブログ用TypefaceAnimatorデモ pic.twitter.com/nqDcQsVyI8
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年6月2日
BGM/SE
- 今回はパズルゲームなので主旋律抑えめで短いループで、作曲初心者ながら聞き減りしない (= 地味で良いの何度聞いても自然に受け入れられる/飽きない) ようなのがいいなぁ、と考えていました... が、結局時間がなくて、提出1時間前に作業開始、30分で出来たのが今回のやつです。個人的には不完全燃焼なんですが、他の人の感想も気になるところ。今回の雰囲気にマッチしているか否か、とか。
- BGM/SEの作成について、魔王魂から一歩踏み出して自分で作りたいと思っている方に、個人的にFLStudioを圧倒的に推します。なぜなら、音楽知識がなくても、適当にドラムループを触ったり、コードにアルペジエーター掛けるだけそれっぽくなるので楽しいから!
- FLStudioに関しては、トライアル版が無料で試せます。プロジェクトの保存が出来ない以外全ての機能が使えますが、如何せん一発で作りきる必要があるので、長期の作曲には向かないかなと (ずっと立ち上げ続けるなら別)
- 以下はWindows向けリンク
他作品について
- ちょいちょい遊んでます... 体調崩して本腰入れては遊べてないですが... (20/150くらい)
- クオリティが高い、独自性がある、爽快感がある、他人との競争が楽しい、頭を使う、どの作品も良さがあって本当に学びになります。1週間でどうやって実装したんだろうって考えるのも楽しい。
次回について
- 体調崩しちゃったり、ちょっと夢中になりすぎて家庭や仕事のことを雑にしてしまった感じもあるので、次回はもうちょっと小さく、コードとアーキテクチャを整えることを意識して参加しようと思います。
- 前回に引き続きの参加ではありましたが、非常に楽しかったです。何よりこの2回の参加でインディー/ゲーム開発周りのフォロワーさんが50名くらい増え、繋がりが出来たのが財産だと思っております。
- @naichilabさん、参加者の皆さん、プレイヤーの皆さん、お疲れ様でした!ありがとうございましたー!
Unity1週間ゲームジャム(2017/04/24〜)に参加しました
Unity1週間ゲームジャムとは?
Unity 1週間ゲームジャム | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
- @naichilab さんの運営する unityroom というサイトで開催されたイベント
- 1週間でお題に沿ったUnity製のゲームを製作する
- 今回のお題は「跳ねる」
- 最近まとまった時間は取りにくい自分もこれなら久しぶりにゲームを作れると思い、参加を決めた
- 脳内的には即決だった
作ったもの「BounceShooter」
バー回転式リズミカルブロック崩し
Bounce Shooter | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
Bounce Shooter | ゲーム投稿サイト unityroom #unity1week https://t.co/RuEXTfBCfH pic.twitter.com/ELbdPmylmx
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年4月30日
使用アセット
製作過程
1日目 (月)
- 会社に着いたあと、定時までの1時間は作業すると決めた
- まずは要件/やりたいことをまとめる
- なるべくシンプルで複雑なことをさせない
- シームレスに遊べる
- 久しぶりに曲も作りたい
- デザインモックを作りつつ、作りたいもののイメージを沸かせる
- 帰宅後、1時間くらい作業して大体デザインは完成
(こんな感じの作ろうって妄想した) #unity1week進捗です pic.twitter.com/IrV0jDdPFD
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年4月24日
2日目 (火)
- 先日同様に、会社に着いた後にちょっとだけ作業を進める
- (多分使うであろう) アセット群をインポート
- UniRx
- DOTween
- Music.cs
- 素材を書き出してUnity内に配置する
- 以下の開発を行う
- 左右を押したらバーが回転する仕組み
- 一定時間ごとにボールが落ちて来る
#unity1week pic.twitter.com/POGOTU86oR
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年4月25日
3日目 (水)
- ブロック崩しやるならブロックが必要
- ということでブロックを生やす作業
- 予め非アクティブな状態で敷き詰めておく
- 一定時間ごとに非アクティブな状態なものからランダムで1つ選び、アクティブな状態にする
- ブロック側の OnEnable で出現モーションを実行する
- DOTWeenでのモーション作りに関しては以前Qiitaに記事を書いたのでそちらを参照
- またバーに当たった時のフィードバックもここで作業
- パーティクルの作成
- 当たった瞬間だけ大きくなる
社内Slackのゲームジャム部のチャンネルでFLASH時代の社風ではないブロック崩しの話題で盛り上がる
#unity1week pic.twitter.com/bzsQekPvmk
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年4月26日
4日目 (木)
- Unity側は結構落ち着いてきた
- ここで他のゲームとの差別化要因として音との連動を考える
- やりたいことにも書いたが、ここ最近曲を作ってなかったので曲を作りたいなーと考えていた
- とりあえずプレイ時間(60秒~90秒)だけ制約にして作りたいように作った
- 一応脳内ではゲームの進行イメージして徐々に盛り上がって後半でピークを持っていけるように ... だけ考えて、後は好きなように作った
5日目 (金)
- 曲との連携を考える
- Unityにおける音の実装に関しても以前Qiitaに記事を書いたのでそちらを参照
- 以前、サウンドゲームジャム で使用した @geekdrums さんの Music.cs が使いやすかったので今回もお世話になることに
- これ使ってリズムに合わせて Scale を変形するだけでそれっぽくなるからすごい
- CSVで譜面を作る
- 拍毎に何個ブロックを出すか管理するようにする
- 実装は大体こんな感じに
6日目 (土)
- 土曜日は開発お休み
- 子供の世話したり出かけたりしてた
7日目 (日)
- 日曜日は妻も子供と一緒にお出かけということでラストスパート
- 譜面が途中だったので調整
- スコア機能作ってなかったので急いで作る
- 各種衝突時にSEが当たってなかったので急いで作る
- FLStudioのプリセットからそれっぽいものを引っ張って来る
- タイトル/結果画面を作ってなかったので急いで作る
- なるべく他の操作させたくない (一貫性) のとチュートリアルの役割も含めて、左右のキーだけでなんとかなるようにした
- 最初はボールを任意のオブジェクトに当てたらスタートとか考えたけど、今考えると結構じれったくて、現状が良かったのかなと
- ツイート機能も急いで作る
- WebGLからTweetを行うデモ のおかげで10分で実装できました!
- WebGLビルドしている間にアイコンとスクショを作成
- 間に合ったーーーーーーーーー!!!!!!!!
- 製作時間約15時間、お疲れ様でした!
ゲーム的には色々不足しててぐぬぬな感じだけど、とりあえず遊べる様になったので上げましたー! お疲れ様でした! #unity1week pic.twitter.com/2BiYpRml9X
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年4月30日
感想
自分のゲームに関して
- 完成度はそこそこ高いけど、ゲームとしては面白くない
- 繰り返し遊ぶためのモチベーションが足りない
- 次はこうしてやろう、というビジョンが湧きにくい
- 爽快感が足りない
- ブロックが残った状態で次に行ってしまうのもやっと
- 自分の考え通りにゲームが動かない
- 角度を変えてもどのあたりに飛ぶか分かりにくく、思った通りに操作しにくい
- 繰り返し遊ぶためのモチベーションが足りない
- 上記を解決するアイデアとして以下の様なものはある
- 配置をランダムではなく、指定する
- 的確なタイミングで的確な位置に飛ばすことでコンボする設計
- 上記が繰り返し遊ぶことで認識できる様になる
- 補助線/落下予測地点の設置
- リズムに合わせてボタンを押すことでボム発動
- 現在のボール位置の周辺のブロックを一気に破壊する
- 配置をランダムではなく、指定する
- そもそもの設計が考慮不足な気がするので反省
- かなり勢いで作ってしまった (この勢い、ゲームジャムでは大事なのだけど)
- 次回の1週間ゲームジャムでリベンジしたい
- それでもコメントやTwitterですごいお褒めの言葉を頂いて、とても嬉しく思ってます...!!
他の人のゲームに対して
- 自分のゲームにおける問題点と思う箇所をクリアした素晴らしいゲームがいっぱい!
- 超絶バズってる 椿さん の 超速のブロック崩し(仮) や @teri_yakichan さんの Drop and Bounce であったり
- まだ半分くらいしか遊べてないですが、全部遊びたい!
うへーこれ楽しい… ジャンプ70切りたい | ほっぴんボックス1-2-3 | ゲーム投稿サイト unityroom #unity1week https://t.co/7I2p28Moxd pic.twitter.com/NqHjni1oTj
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年4月30日
これも運命 | UCMR | ゲーム投稿サイト unityroom #unity1week https://t.co/GBNoBIE9Dl pic.twitter.com/w44QeHKWKO
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年4月30日
雰囲気好き、いい感じに難しい | ダンシング・プリン! | ゲーム投稿サイト unityroom #unity1week https://t.co/fkps0aa3mp pic.twitter.com/Av5rg76nln
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年4月30日
ツインテはロマン | ツインドリルジャンプ | ゲーム投稿サイト unityroom #unity1week https://t.co/bPWVhyg8rk pic.twitter.com/ncc43PNBRL
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年4月30日
ぐあああこれ1位狙いたいぞ... | Drop and Bounce | ゲーム投稿サイト unityroom #unity1week https://t.co/J7R7hRxRde pic.twitter.com/P0A7knMkTP
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年5月1日
わぁぁああ、来るな… 来るんじゃない…!! | ゆにぴょん | ゲーム投稿サイト unityroom #unity1week https://t.co/aq6dOdIZAP pic.twitter.com/mrVg4qqcGJ
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年5月1日
最初から綺麗に並べようとするとこうなる… HP高いブロック来るまでやり過ごさな... | ブロックくずリス | ゲーム投稿サイト unityroom #unity1week https://t.co/eZdz37gC7r pic.twitter.com/GmnJv3vm4Y
— 青木とと(ˊ~ˋ*) (@lycoris102) 2017年5月1日
1週間ゲームジャムについて
- 自分のような家庭持ちで土日はちょっと家族と出かけたり子供の世話したりで、通常のゲームジャムには出にくい、みたいな人でも気軽に参加できて良い
- ゲーム製作者の方にいっぱいフォローして頂いてとっても嬉しい
- これを機にどんどん繋がっていきたい、よろしくお願いします!
- 主催の @naichilab さん、参加者のみなさん、お疲れ様でした!ありがとうございましたー!
余談
- 自分の最高スコアは190です
- コツはあまりブロックが蓄積していないときは壁打ちしてボールを温存させておくこと