開発の準備をしよう Javaコースミニゲーム開発編Day1「ゲーム作成のテーマを決めよう」

デイトラJava
ハック
ハック

こんにちは!運営者のハックです。

いよいよデイトラ卒業制作であるミニゲーム開発編に取り掛かります。

今回は開発の下準備としてゲーム作成のテーマを決めて内容を確認するところを紹介します。

デイトラJavaコース卒業課題はオリジナルミニゲーム作り

いよいよデイトラJavaコース最後の総仕上げ編に挑みます。
Java中級・プラグイン開発編では、実務レベルのコードを実際に動かしながら学習してきたのですが、今回はいよいよそれを一から作成し、マインクラフトで実行できるオリジナルミニゲームを作り上げることになります。

自分で調べながら自分の作品を1つ、作り上げる、ということが大事です!
動くものである、というのは前提ですが、動かすための過程でしっかりと自走力を磨いていけるので完成させることだけが価値ではないです。
チャレンジして、エラーと格闘したり、うまくいかないのはなぜかを考えながら、進めてみてください!

ゲーム作成の進め方

  1. 3つの中からどのテーマにするかを決める
  2. 「機能要件」を確認しながら、実装する機能を把握する
  3. 開発開始
ねこ奈
ねこ奈

いよいよ卒業制作だにゃ!

ハックは何のミニゲーム開発に挑むのにゃ?

モナ
モナ

デイトラで用意された3種類のテーマはそれぞれ

  • 神経衰弱
  • 鉱石採掘ゲーム
  • 宝探しゲーム

なのですが、ハック「鉱石採掘ゲーム」作成に挑戦することにしました!

今回は「鉱石採掘ゲーム」の概要の機能要件を確認して開発の下準備を行いましょう。

鉱石採掘ゲームに挑戦!

鉱石採掘ゲームでは、プレイヤーが制限時間内に鉱石を採掘し、採取した鉱石の種類と数量に応じて得点が決まります

例えば、鉄鉱石は10ポイント、ダイヤモンドは50ポイントと設定されています。プレイヤーは戦略的に鉱石を選び、たとえば鉄鉱石2つとダイヤモンド1つで合計70ポイントを獲得することが可能です。得点はデータベースに保存されます。

マインクラフトには様々な鉱石の種類がありますが、より多くのスコアを取得するために 取得が簡単な鉱石をたくさん取得してスコアを稼ぐか、 取得の難易度が高くスコアの高い鉱石を狙って採掘するかはプレイヤーの戦略次第です。

ゲームの機能要件

  • gameStartコマンドを実行すると「鉱石採掘によってスコアが加算されるモード」に変更されること
    (コマンド名はgameStartでなくても問題ない)
  • 鉱石の種類によりスコアを設定すること
    (マインクラフトの鉱石種別にスコアを設定しておく。鉱石毎のスコアは自由に設定して良い)
  • 採掘した時点でスコアを加算すること
    (鉱石を「採掘」した時点でスコアを加算させること。鉱石の取得によってスコアは加算しないこと)
  • スコアはDBに登録すること
  • スコアはリストとして確認できるよう設定すること
  • 制限時間を設定すること
  • マルチプレイの考慮は不要
  • ゲームのスタート位置は鉱石が掘れる状態、または、洞窟内部でスタートして問題ない

鉱石により取得難易度は異なるため、ゲーム性を担保できるスコアを設定しておくことが必要です。
例えば鉄鉱石が10pt、ダイヤモンドが20ptと設定してしまうと鉄鉱石の取得難易度が低いため、プレイヤーは鉄鉱石を多く採掘しようと考えます。
そのため、鉱石のスコア設定がゲームとして機能するかに大きく影響するため、マインクラフトの鉱石の取得難易度を確認しておくとスコアの設定に役立つと思います。

ねこ奈
ねこ奈

そーすると、例えば鉄鉱石が5pt、金鉱石が15pt、エメラルドは30pt、ダイヤモンドは70ptって感じに考えるのかにゃ?

モナ
モナ

その辺りはマインクラフトwikiで鉱石の取得難易度などを参考にしながら設定しましょう。

実装が難しいポイント

  • 鉱石の種類によりスコアを設定すること
  • 採掘した時点でスコアを加算すること

採掘したということをどのように判定するかがポイントです。
鉱石の取得によってスコアが加算されるわけではないため、採掘と取得を正確に判別する必要があります。プレイヤーが採掘を行うというイベントを完了すると鉱石の種別にスコアが加算されるという処理を記載すると良いでしょう。

ねこ奈
ねこ奈

むむむ…鉱石の取得に応じてスコアを加算させるコードの方が簡単そうに思ったけど、そうは甘くないってことかにゃ。

モナ
モナ

採掘したということをどのように判定するか」という観点でコードを考えないといけませんね。卒業制作なだけあって難しい課題だと思います。

困ったら公式ドキュメントを確認しよう!

テーマ開発で困ったら、まずはSpigotの公式ドキュメントを確認しましょう。
どんなEntityがあるかわからない、Eventはどういうものがあるのだろうなど困った場合にまず見るべきは公式ドキュメントです。

公式ドキュメント:Spigot-API 
有志の方が書いてくださったイベントリスト:Spigot Event List

モナ
モナ

それでも分からなかった点やバージョンが異なる場合など動作しない時など、自分の力ではどうしても解決しない場合はデイトラメンターの方々に質問しながら進めていきます。

おまけ  鉱石採掘ゲーム開発専用のGPTsを作成しました

『マインクラフトで鉱石探しゲームを作るプロジェクト、とても楽しそうですね!ゲームの作成にはいくつかのステップがありますので、一緒に確認していきましょう。まずはゲームの基本的な構想を固めることから始めます。』

引用:ChatGPT
ねこ奈
ねこ奈

これってズルくない!?

コードを自動で作成してコピペしたら学習にならないのにゃ。

モナ
モナ

いやいや…生成されたコードをただコピペして作成できるような難易度の課題ではありません。

それに、GPTs作成の際に「学習目的であり、直接的な回答はせずヒントを出してください」とお願いしています。

また、回答の参考としてマインクラフトWiKiやBukkitを確認するように指示しているので、通常のGPTを使用するよりは求める回答に近いものが返ってきやすくなると思います。

まとめ  自力でできることは何でも試してみる

今回は課題の確認をして開発の下準備を行いました。次回から本格的に開発を進めていきます。

ハック
ハック

開発現場でも専用のGPTsを作成してチームで共有できれば生産効率があがると思うのですが、実際のところどうなのでしょうか。

今回作成したGPTsは外部API等を使用せず一番シンプルなものにしています。GPTs作成の知識も付けばより開発に特化したGPTs作成もできそうですね。

以上で今回の学習記録を終えます。

ここまでご覧いただきありがとうございました。

コメント

タイトルとURLをコピーしました