Unityでブロック崩し作ってみた
作ろうと思ったきっかけ
Unityで初めてゲーム作ります。
ゲームの種類は色々考えて迷ったけど、結果ブロック崩しにした理由としては
- Unity初心者にとっては手がつけやすそうだったから
- 隙間時間で作りたかったから
の二つが大きな理由でした。
制作期間
約一週間くらい。
思ったよりかかったとは思うけど、スキマ時間で作ったことを考えると妥当かな。
Space Blocks
今回はブロック崩しに"宇宙空間"というコンセプトをつけてみました。
せっかく作ったのでunityroomというサイトで公開してます。
実際のゲームがこちら
こだわったところ
ボールを転がして、ブロックにぶつかったらブロックを消していくというゲームのシステム自体は簡単にできたのですが、他のところに割と時間がかかってしまったので少しまとめておきます。
タイトル、エンディングを別シーンで作成
タイトルとエンディングを作るだけで、一気にゲーム感が増したなと。
フォントと背景も、フリーで配布しているものを使わせていただきました。
ものすごく様になります。ありがとうございます。
パドルの形を楕円型に
一般的なパドルの形って長方形だけど、それで作ってみたらあまりにも単調なゲームになってしまったので、楕円型にして反射の角度を少しトリッキーにしてみました。
楕円にすることでUFOっぽくもなってコンセプトに沿ってる感も出たか(?)
ボールが壁沿いに転がり続けないようにした
ここの実装が一番時間がかかりました。
パドルの形とボールの反発係数の都合上、絶妙な速度で打ち返すとボールが壁に沿って転がり続けて脱出できない現象とぶつかりました。
そこで、左右それぞれの壁に接触判定のフラグをつけて、ボールが壁に接触していてかつ壁と平行に転がっていたら絶妙な力加減で壁から離してあげる様にしました。
この絶妙な力加減が難しくて、知らずにゲームやってる上ではなかなか気づきにくいと思います。だから、今まで自分が何も考えずにやってきたゲームの中でも、ユーザーが気づかない様な絶妙な調整とかがあってゲームが面白くなってるんだろうなって思いました。
追加したい機能
今回技術や時間の都合で追加できなかった機能をいくつか。
ボールのスピード制御
ボールのバウンドの回数をカウントして、それに応じてスピードを上げていく機能をつけたかった。
逆にいうと、今はボールのスピードは力任せなので、難易度がガタガタ何ですよね・・・。
ブロックの種類
強度の違うブロックを配置したかった。二回当たったら壊れるとか、ぶつかった時にボールの挙動が変わるとか。
これ作ったらステージも増やせる。
絶対に追加します。
アイテム
取得したらボールが増えるとか、ボールがめちゃめちゃ速くなるとか。
この機能つけたらゲームとしての幅がかなり広がると思う。
まとめ
初めてのゲーム開発はこんな感じで。
上に書いた追加したいきのうはマストでつけます。
ゲームやってみて何か思ったこととかあれば教えていただけるとありがたいです。
それでは