3Dは避けてください。3Dモデルを作成する方法や適切なモデルを見つける方法を知る必要があるため、そのようなモデルをロードする方法(多くの場合それ自体が叙事詩的なタスク)と画面に描画する方法(例: OpenGLやDirectXは多くの作業を少しの利益のために取り、jMonkeyEngineのようなエンジンでさえ、基本的な3D知識とともに、エンジンの利用方法の知識が必要です。画面上で2D画像をブリットして移動するのは、頂点、マテリアル、ビューマトリックス、変換などを処理するよりもはるかに簡単です。要点は理解できたと思います。
組み込みのJavaライブラリーおよびクラス(Graphics2D、ImageIO、AWTマウスおよびキーボードリスナー、Canvas、Java Sound APIなど)を使用します。他のライブラリを見つける代わりにこれらにこだわる利点には、(ある程度)すでに知っていること、十分にテストされ、安定していて、一般的に理にかなっていることがわかっていること、オンラインのドキュメントとリソースが豊富であり、移植性があることネイティブライブラリと一緒に追加のライブラリをインストールすることを心配する必要はありません。
コードスニペットの小さなライブラリを事前に作成します。これらには、画像の読み込み、画面上の位置への画像の描画、画像とその他の効果のスケーリング、サウンドの再生、BGMのループ、境界ボックスの衝突検出、テキストの描画などが含まれます。また、Frame(またはアプレット)を開き、それにCanvasを追加するスケルトンアプリケーションがあり、キャンバスのpaintおよびrepaintメソッドはオーバーライドされ、スレッドはcanvasのrepaintメソッド(またはそれを呼び出すタイマー)をループする必要があります。を検索すると、これらのことを学ぶことができますJava 2D game programming
。大学の図書館にアクセスできるとすれば、多くの優れたJavaゲームの本を自由に利用できるはずです。それらをチェックアウトして、上記のスニペットや、見逃した他のスニペットを調べてください。
事前にチームとソース管理と作業の分割を練習します。Subversion、Git、Mercurialなどを使用しますか?全員のコンピューターが同じ最新バージョンのJavaに設定されていますか?リポジトリを作成し、いくつかのファイルをcommit / pushし、すべての人がリポジトリをチェックアウトして、システムに移行する準備ができていることを確認します。「hello world」アプリをコミットして、全員がそれをプル、変更、コミットできることを確認してください。そして、マージを処理する方法を知っていることを確認してください(通信またはペアプログラミングで完全に回避するか、マージツールの使用方法を知っているか)。または、ソース管理に慣れていない場合は、機能する解決策を見つけてください。サードパーティがアートやサウンドを行う間のペアプログラミングであろうと、何か他のものであろうと、最初から組織化されていることを確認してください。
無料のメディアを提供するWebサイトへのリンクをブックマークします。これらのタイプのサイトの多くは、他の質問にここにリストされています。freesoundのようなサイトゼロから作成する時間がないときに、ゲームで使用する有用なメディアをすばやく見つけるのに最適です。もちろんこのサイトをブックマークしておけば、何かに行き詰まった場合に質問できます。gamedev.netフォーラムなどのフォーラムをブックマークして、回答を検索できるようにします。サードパーティのライブラリを使用する場合は、そのウェブサイトをブックマークしてください。これらのブックマークをフォルダに整理し、できるだけ多くのフォルダを取得して、それらを共有して、3人すべてが同じ便利なブックマークライブラリを使用できるようにします。これらのブックマークを調べて収集し、タイプ/主題別に整理するのにそれほど時間はかかりませんが、プロジェクトの途中でこれらのWebサイトをすべて覚えておく必要がない場合は、時間を大幅に節約できます。
その他の提案については、「ゲーム開発コンテストの準備方法」という質問の回答を参照してください。。
残りの質問に対処するには...一般的なアドバイスは次のとおりです。高い目標を立てないでください。ただし、どれだけ準備ができているか(つまり、上記の提案)とJavaでのスキルによって大きく異なります。これは主にあなたの履歴に基づく個人的な判断ですが、ゲームを作成したことがなく(したがって、必要な時間を判断できない)ので、本当に低い目標を設定します。高度な概念なしで2Dに簡単に実装できる本当に基本的なアイデアを思いつきます(たとえば、ピクセル単位の衝突、クレイジーな物理計算、パーティクルエフェクトなどを避けます)。しかし、優先度の高いリストを作成します可能な限り詳細にゲームの機能を説明します(たとえば、各機能をできるだけ多くの個別のタスクに分割します)。このようにして、できるだけリストの下の方に移動し、優先度の低いタスクに到達しなくても、大したことはないはずです。これは慎重に行う必要があります(まだ機能的なゲームが必要なので、実行する必要のあるタスクの最小セットがあり、一部のタスクは他のタスクに依存しています)が、一般的にこれは物事にかかる時間がわからない場合に最適な方法です。