Unity1Week お題『2』でRPG風ゲームを作りました
Unity 1週間ゲームジャムに参加しました。
今回のお題は『2』だったので、二匹のモンスターが現れて一匹選んでバトルするというRPG風のゲームを作りました。
がんばったことを書きます。
ゲームアイディアがんばったよ
お題が『2』だったので最初に思いついたのは、「Reignes」というゲームです。
王様になって国を統治していくゲームなんですが、2つの選択肢から1つ選んで、パラメータが変わったり状態が変わったりして進めます。
作り始める前は"なんか作りやすそう"と思ってましたが、実際作ってみたらかなり大変でした。
他にも『2』から連想できるゲームを考えて、二人でやるゲームを思いついたりしたんですが、デバッグとか大変そうだと思ったのでやめました。
いろいろ考えた結果、二択の中から一つ選んで塔を登っていくRPG風のゲームに落ち着きました。
普通のRPGと同じようにモンスターとバトルし、経験値を得てレベルアップし、プレイヤーキャラのステータスが上がっていきます。
普通のRPGと違う点は、二匹のモンスターから選んだモンスターとバトルすることです。
モンスターのステータスと得られる経験値はランダムに決められていて(強い方のモンスターは弱い方のモンスターより経験値が大きくはなっている)、よりお得なモンスターをみきわめる必要があります。
あとはアイテムの獲得も二択にしました。
コードをガリガリかいたよ
ソースコードです。
出来上がったコードのクラス図を作りました。クラス図の書き方が合ってるかは知りません。
ちょっとごちゃついてます。
ゲームロジック部分とユーザーインターフェース部分を分けて作りました。
そのおかげで、最初にゲームロジックから書いていったんですが、ゲーム画面には一切表示させず、コンソールに文字を出力させて確認しながら作れました。
MonoBehavioiurを継承したのはGameDirectorクラスとUserInterfaceクラスだけにしました。
他のクラスはMonoBehavioiurを継承しなかったのでインスペクターでアタッチすることができず、GameDirectorで依存しているクラスなんかを設定する必要があってちょっとめんどくさく感じました。
Async/ Awaitを使って、ゲームロジックの処理を入力があるまでストップする仕組みにしていて、ゲームロジックのフローは一本道です。
ユーザーインターフェース部分は、何も考えず一つのクラスで作りました。
ソースコードが長いです。
インスペクターが爆発してます。
見た目はがんばらなかったよ
ゲームロジック部分をとりあえず作って、見た目とか調整とかをやらないといけなかったのですがあと一日しか残ってなかったので(遅刻したので二日やった)、見た目は簡単に作りました。
モンスターやアイテムの画像素材はきれいなものを使っているのですが、他の部分が疎かになっていて、チープさに磨きがかかってます。
ただ、ゲームロジック部分とユーザーインターフェース部分を分離しているので、ゲームロジック部分は変えずに、ユーザーインターフェース部分だけ変えれば、アニメーションが派手に動いたり、キャラが3Dだったりするものも作れるような気がします。たぶん..
難易度調整もがんばったよ
難易度調整もしました。ゲームをリリースする前に簡単にやって、リリースした後にちゃんとした難易度調整を行いました。
ひたすら調整してテストプレイ、調整してテストプレイの繰り返しです。
調整で何をしたかというと、パラメータ変えたり、計算式を変えたり、処理の仕組みを変えたりです。
これをモンスターのステータス、プレイヤーキャラのステータス、バトルシステム、アイテムの効果などで行いました。
疲れました。
バトルシステムやステータスは、ポケモンの処理なんかを調べてちょっと参考にしました。
まとめ
今回、4回目のUnity1Weekの参加になりますが、しばらくゲーム作りしていなかったので、いいリハビリになりました。
ゲームジャンルの中でRPGが二番目に好きなので作れて良かったです。一番好きなのは3Dアクションゲームだけど、個人で作るのは難しい...
この記事が気に入ったらサポートをしてみませんか?