3

私はしばらくの間 Web プログラマーであり、Java でプログラミングすることもできます。取り組みたい小さなマルチプレイヤー RPG ゲームのアイデアがあります。ユーザーの Web ブラウザーで Java アプレットを介して再生されます。

ゲームプレイのデザインドキュメントと仕様を書きました。今知りたいのは、ゲームをどのように開発できるかということです。私はこれまで、テキスト ボックスやドロップダウンなどの組み込みウィジェットを備えた Windows のようなビジネス アプリのみを扱ってきました。ゲーム プログラミングでは、ゲームの UI 用に独自のウィジェット/コントロールを作成する必要があるようです。

これらは私が念頭に置いている具体的な質問です:

1) ゲームの画像や音声などのダウンロード中に、「読み込み中...」メッセージをプログレス バーとともに表示する方法。(Java アプレットを使用)

2) 独自のメニュー、コントロールなどを備えたゲームの UI を作成する方法。マップ アイコンをクリックすると、マップが表示されます。友達のアイコンをクリックすると、友達などとチャットできます。

3) その他、2D グラフィックスと 3D グラフィックスのどちらを使用するか、ゲームでの物理演算など、知っておくべき一般的なゲーム開発の問題。

私に役立つ本に良い推奨事項がある場合は、共有してください.

4

13 に答える 13

3

これが初めてのゲームである場合、マルチプレイヤー プロジェクトは野心的すぎるかもしれません。

画面のロードはそれほど難しくありません。「ロード」する必要があるファイルの数を数え、別のファイルが正常にロードされるたびにプログレス バーを進める (そして画面を更新する) ことで実装しています。これは、好きなだけ細かく行うことができます。UI コンポーネントを追加するための読み込みコードが複雑になる可能性があります。今のところは気にしません。基本的な「読み込み中...」フレームを投げて、後でゲームがより安定したときに完全な進行状況バーを実装するだけかもしれません。また、マルチスレッドを使用した優れた実装もいくつか見てきました。

残りの 2 つは経験を積むことになります。あなたがもっと必要としているのは、具体的な答えよりもゲーム開発の一般的なチュートリアルだと思います。あなたは間違いなく小さく始めるべきです。小規模なゲームの構造と問題点を理解すると、大規模なゲームにそれらを適用することが容易になります。

ほとんどの合理的なゲーム プログラミングの本は、基本的なゲーム構造について説明しています。私は Game Coding Complete が好きですが、初心者にはかなり複雑です (大規模なプロジェクトにアプローチするためのより複雑な方法をカバーしています)。Game Architecture and Design は似ていますが、いくつかのマイナーなプロジェクト管理の "ベスト プラクティス" もカバーしているため、探しているものにより適している可能性があります。

Java プリミティブ UI タイプ (使用している他のライブラリに応じて異なります) を使用する方法から、必要なものだけを使用して独自の "HUD" 実装を自己記述する方法まで、UI を実行するにはさまざまな方法があります。

于 2009-05-22T18:26:34.713 に答える
2

おそらく知っておく価値のあることの 1 つは、マルチスレッドです。たとえば、「ロード画面」では、進行状況バーを表示する 1 つのスレッドがあり、他のスレッドが同時にデータをロードする場合があります。

同様に、対話性の多くは、複数のスレッドをディスパッチして同時に多くのことを行う (画面上で異なる文字を移動する) か、ユーザー入力による割り込みを処理することによって発生します。

于 2009-05-22T18:14:48.697 に答える
2

O'Reilly Books を見てみます

Javaでのキラーゲームプログラミング

楽しみのためのコーディング

于 2009-05-22T18:19:12.747 に答える
1

質問3への回答。ゲームの開発を始めたいと思っている場合は、JeffHowlandによるこの短い記事を読むことをお勧めします。

于 2009-05-23T08:11:25.720 に答える
1
  1. 最も簡単な方法は、すべてをJarファイルにパッケージ化することです。デフォルトの画面には、カスタマイズするための小さな機能を備えたプログレスバーが表示されます。ファイルを追跡、管理、ダウンロードするためのカスタムコードを作成することもできますが、個人的にはこのルートに反対することをお勧めします。アプレットローダーを検索すると、より多くの情報が見つかります。

  2. 意味が100%わかりませんが、Swingコンポーネントは、アプリケーションで使用するのと同じように使用できます。画像でJButtonを使用するのは非常に簡単です。次に、actionPerformedメソッドでイベントコードをフックします。

  3. おそらく遭遇する最大の問題は、アニメーションとEDTです。これについては先に聞いた。

このページには、ゲーム開発に役立つリンクがたくさんあります。パルプコアは、チェックする価値のあるオープンソースフレームワークです。フレームワークを使用しない場合でも、コードを調査できます。

Javaアプレットを使用する必要があるかどうかは、この質問の範囲外のようですが、上記の回答の多くは、Javaアプレットを使用するかどうかについて客観的(または理由なし)を示しています。それがJavaを学ぶための個人的な練習のためのゲームであるなら、それは素晴らしいアプローチです。公開したい場合は、現在の採用レベルがニーズに対して十分に高いかどうかを検討する必要があります。

最近、アプレットの世界では状況が変わりました。1.6アップデート10以降、Flashとの競争力が大幅に向上しています。ダウンロードサイズが小さく(通常は4Mb未満)、起動時間が短縮され、新しいスケーリングのルックアンドフィールが導入されました。

于 2009-05-23T09:31:02.987 に答える
1

Java アプレット ルートに行かないでください。

簡単なカジュアル ゲームを作成する場合は、Flash にします。それ以外の場合は、本格的な Java アプリを開発し、Java Web Start 経由で実行します。

Towerを試して、Java をプラットフォームとしてどこまで使用できるか、また Java Web Start がどのように機能するかを確認してください。

プログレスバーに関しては、これらのファイルの読み込みを実装し、プログレスバーの目の保養に行く前に実際にそれらを使用することをお勧めします:)

于 2009-05-22T18:04:10.400 に答える
1

他の人が言っているように、Java アプレットはおそらくゲームを表示するための媒体ではありません。2 番目に多い人は、アプレットがロードを開始するのを見て、恐怖に駆られます。

ゲーム デザインの経験がまったくない場合は、マルチプレイヤー RPG のハードルを非常に高く設定していることになります。テトリス、パックマン、さらにはポンのようなものを再現するなど、より単純なプロジェクトから始めて、ゲームの作成に必要なすべてのアイデアを得ることができます。

Flash は、オンライン ゲームを行う場合に最適です。Java と Jogl open-gl ラッパーも最適なオプションです。

個人的には、Microsoft Xna を使用することをお勧めします。C# は Java によく似ているため、すぐに理解できるはずです。Xna は、グラフィックス プログラミングに関連する下位レベルの詳細の一部をうまく抽象化しています。コミュニティも非常に活発で役に立ちます。

于 2009-05-22T18:14:08.043 に答える
1

http://nehe.gamedev.net/

C から C#、Python から Java まで、さまざまな言語やシステムから OpenGL を使用して、基本的なものから高度なものまで、多数のチュートリアルがあります。

これは非常に便利で、ブックマークするのに最適なリソースです。選択したプラットフォーム/言語でのゲーム/3D プログラミングの基本から始められるはずです。

幸運を!

于 2009-05-22T18:04:29.243 に答える
0

Q1 = あなたの時間の 1%。

Q2 = あなたの時間の 40%。

Q3 = あなたの時間の 59%。

どうすれば Web ブラウザ用の Halo3 を書けるのだろうかと疑問に思われるかもしれません。

最初は少し下を目指して……。

于 2009-05-22T18:02:31.790 に答える
0

ゲーム理論とデザインに関するオープンコースウェアクラス。読書リストも付いています。

于 2009-05-22T18:04:31.863 に答える
0

コメントを追加できないので、回答を追加します。キャラクターの移動などにはスレッドを使用しないことをお勧めします。ファイルの読み込み、サウンドの再生、サーバー側のネットワークでさえもうまく機能しますが、あらゆる種類の AI/グラフィックスでは、無限の頭痛の種になる傾向があります。

また、他の人が言及したように、Java は最良の選択ではないかもしれません。人々がそう言う単純な理由は、難しいからです。Java ゲーム開発のサポート/チュートリアルの量は、C++ ( GameDev.netは優れたリソースですが、時間の経過とともに専門的な開発に重点を置いています)、Flash ( Kongregate に関する適切なチュートリアル)と比較すると、かなり不足しています。ゲームをホストできる場所であるだけでなく)、または C# (XNA を使用) でさえあります。Java ゲーム開発は長年にわたって改善されており、それを使用して驚くべきことを行うことができますが、その道を進むのはより困難になる可能性があります。どの言語を選択しても、グラフィックス/ゲーム エンジンを使用することを検討してください。これにより、作業量が削減され、より良いゲームを作成できるようになります。

于 2009-05-22T19:18:06.307 に答える
-1

ゲーム開発への穏やかなエントリー パスを探していて、C# の学習を気にしない場合、XNAには、ゲームの作成方法を学習するために構築されたコミュニティ全体があります。あらゆる種類のサンプルがあります。Game State Managementサンプルは、画面の遷移と読み込みを実装するための優れた方法を示しています。また、ネットワーク関連の同様のNetwork Game State Managementサンプルもあります。また、ゲーム全体をソース コードとしてダウンロードして利用できます。

長期的な目標が Java アプレットや Flash ゲームを作成することであるか、OpenGL を使用して C/C++ で作業することであるかに関係なく、XNA は、レンダリング/サウンドなどの面倒な実装の詳細をすべて無視するための優れた方法です。これは、初めてゲームを作ろうとしているときに非常に役立ちます。信じてください。

于 2009-05-22T18:35:58.740 に答える
-1

Java アプレットのアプローチを採用しないでください。アプレットは一般的に煩わしく、遅いです。

本当にブラウザからプレイできるようにしたい場合は、Flash (アクション スクリプト)、またはシルバーライト (シルバーライトのゲームについてはよく知りません) を検討してください。

Gamedevは、一般的なゲーム プログラミングに関する優れたリソースです。

と ...

私は恥知らずにyxの答えからリンクを盗みます:

MIT オープン コース ウェア: ゲーム理論とメカニズム設計

于 2009-05-22T19:26:10.580 に答える