1作目 「カタコロ-傾けて転がすパズルアクション」ios

f:id:inuningyo:20210713104804p:plain


目的

じぶんが初めて作ったゲーム「カタコロ-傾けて転がすパズルアクション」がどんなゲームなのか、どんなふうに作ったのか、どんなことを学んだのかをまとめたいと思います(作ってから数ヶ月たっているので結構うろ覚えですが)

 

 カタコロはappstoreで配信中です。遊んでいただけたら嬉しいです

https://apps.apple.com/us/app/カタコロ-傾けて転がすパズルアクション/id1537733075

目次

  1. 「カタコロ」はどんなゲームか
  2. 「カタコロ」はどんなふうに作ったか
  3. 「カタコロ」を作って学んだこと
  4. 工夫したところ 
  • どんなゲームか

ジャイロ操作の玉転がしゲームです(正しくは加速度)

スマホを傾けた方向に玉が転がり、その玉をステージに点在する星にぶつけて星を集め、全ての星を集めたらステージクリアになります

f:id:inuningyo:20210714084127p:plain
f:id:inuningyo:20210714085115p:plain
f:id:inuningyo:20210714085119p:plain
タイトル画面(左)、ステージ1(中央)、ステージ6(右)

ステージは全部で20個あり、5ステージ毎に難易度が上昇していきます

 

玉が白い床にぶつかると0.7秒後に床が落下します。玉も一緒に落ちてしまうとゲームオーバーになります

 

最初の方のステージでは適当に進んでも問題ありませんが、後の方のステージでは進むルートをきちんと決めて進まないとクリアできません

f:id:inuningyo:20210714085048p:plain
f:id:inuningyo:20210714085053p:plain
ステージ13(左)、ステージ17(右)

こんな感じのゲームです(ステージ13はきれいに作れていてかなりお気に入りです)

後半は鬼畜すぎて最後までクリアしたって人は今の所聞いたことがありません

そもそも中盤で詰まってしまうみたい

レベルデザインをもっとうまくなりたいです

 

  • カタコロはどんなふうに作ったのか

unityを始めた時に最初にやったのが玉転がしゲームのチュートリアルでした。unity の基本的な操作やゲームの作り方が分かりやすく説明されていて、とても面白いチュートリアルでした。

learn.unity.com

 

それで、玉転がしゲームなら簡単にオリジナルのゲームが作れそうだと思って「カタコロ」を作りました

 

スマホで作ろうと決めていたので、ゲームの操作方法はジャイロにしようとすぐに決めた覚えがあります。自分がスマホのゲームで十字キー入力操作だとうまく操作できないことがよくあり、あまり好きではなかったためです(app storeで玉転がしゲームを検索していくつかプレイして、ジャイロ操作のゲームが直感的で分かりやすかった)

 

最初は「モンキーボール」みたいな地形を動かすゲームにしようとしていたのですが、スマホのジャイロの精度の問題で上手くいかなかったので玉自身を操作するように変更しました

 

ゲーム内部

このゲームは3dゲームで真上から真下にカメラを向けています

青い板のオブジェクトに触れたオブジェクトは消滅するようになっています

 

星を全て取ったらゲームクリアのUIを出るようにしたり、プレイヤーである「玉」が消滅したらゲームオーバーのUIが出るようにしたりといった作業はゲームを作ってる感じがして楽しかったです

f:id:inuningyo:20210714092557p:plain

ステージ1

ゲームのシステムを考えたり、それを実装したりといった作業はとても面白かったのですが、ステージを作る作業はとても辛かった覚えがあります。20ステージ考えるだけでもかなり大変でした。

しかし、こういうステージは面白いか、この地形は面白そうだ、プレイヤーはこういうルートで動くだろうからここはこうしよう、みたいな感じで考えてステージを作るのは面白かったです

 

  • かたころを作って学んだこと(というかやったこと)

自分が学んだことをメモ程度に

  • unityの基本操作
  • 最低限のかんたんなUnity要素 カメラの使い方、Collider、Rigidbodyなど
  • C#(簡単なC言語なら知ってたのでif文とか配列とかは分かってた)

GetComponentとかTagを使うとかCollider関係とかInvokeとか

PlayerはInput.acceleration.xをvelocityに入れて操作していました(数ヶ月も使ってないと完全に忘れますね)

まとめると基本的なことはだいたいって感じ

 

こういうふうに書いた方がいいかも

タイトル画面

ステージ選択ボタン20こ、オプション(BGM、SEのON,OFF)、UIの表示、非表示(SetActiveによる閉じるボタン)

ステージ

ゲームのクリア条件、ゲームオーバー条件の実装、はじめるボタンを押すまではplayerのrigidbodyをfreezeall、画面をタッチするとリスタートボタン、タイトルボタンを数秒表示、ステージ作り(自分の作りたいようにやっているので全体的な難易度はむずかしめ)

 

  • UI(Canvas,Button,Text,Image)
  • admob Banner,Interstitial
  • app storeでの公開手順

 

 

なんかあまりうまく学んだことを書けませんでした(検索したらすぐ出てくるようなことを駆使して作ってるのでまあいいか)

2作目のゲームについて書くときは新しく学んだことだけを書けばいいから簡単になるはず

 

しかし、playerである玉の操作のプログラミングではすごい色々悩んで苦労した覚えがあるのに、見返してみたら数行のプログラムになっていて驚きました(最終的に選んだ方法が一番簡単で分かりやすいものなったみたいです、途中までは色々計算してなんやかんやする方法でやっていました)

 

  • 工夫したところ(といか気に入っているところ)

ステージではスマホを傾けて玉を転がすのですが、画面に指で触れると右下の画像のようにタイトルボタンとやりなおすボタンが表示されるようになっています

 

この機能は普通ならポーズ画面かなんか作ってそこに表示する内容ですが、プレイしている人にプレイ中にじっくり考える暇を与えたくないという私の意地悪な気持ちと画面に邪魔なUIを表示したくないという二つの希望を満たせる良い機能を作れたと思っています

f:id:inuningyo:20210714085115p:plain
f:id:inuningyo:20210714110112p:plain



もちろん最初は下の画像のようになっていて、はじめるボタンを押すまではゲームが開始されないのでその間にどのようなルートで進むかを考えることができます

f:id:inuningyo:20210714110923p:plain

 


あとはタイトル画面で玉を操作するできるようにしたところが気に入っています

 

タイトル画面ではゲームオーバーにはならないので好きなだけ玉の操作ができます

このゲームにチュートリアルはないので、ここで玉の操作の性質を深く知ることができると思います(例えば、スマホを傾ける角度を急にすると玉の移動速だが上昇するとか)

 

下の画像に注目していただけると灰色のオブジェクトがあるのが分かると思います、これは壁です。玉の進行を防ぐものですね。

それで下の画像の赤い円のように壁同士を設置して玉が引っかかりやすいようにしています。これに引っかかって手間取ると落っこちてしまいゲームオーバーになります

こういうのが好きです

f:id:inuningyo:20210714113016p:plain



カタコロについては以上です

 

 カタコロはappstoreで配信中です。よかったら遊んでみてください

https://apps.apple.com/us/app/カタコロ-傾けて転がすパズルアクション/id1537733075