No.7ベストアンサー
- 回答日時:
ゲーム開発の職には就いていませんが、Javaでゲームを作り、
いくつか公の賞を取ったことがあります。
つまりJavaでゲームを作っても、評価されるゲームを作る事は
十分可能ということです。
ちなみに初めてグラフィカルなゲームを作ったのは、
プログラミングの勉強を始めて2年目くらいです。
描画が楽にできるので、とりあえず作ってみよう、というのにはJavaはうってつけでした。
「もっといいものを作れる」かどうかは、言語の性質ではなく、
接触判定や会話文字列の表示の仕方といったアルゴリズムをいかに工夫できるか、が
より効いてくると思います。その勉強のためなら、どちらの言語を選んでも
差し支えないでしょうが、簡単に絵が出る分、Javaの方が学習は楽しいでしょう。
JavaもC++もオブジェクト指向言語ですから、その意味でどちらかが
優位ということはさほどありません。将来拡張を繰り返すとか、
定期的にメンテをするとか考えているのでない限り、
多少オブジェクト指向的でない変な作りであってもさほど問題にはなりませんので、
悩む前にとにかく作って経験を積むのが個人的にはお勧めです)。
以下経験談から、言語としてのメリットをそれぞれ挙げてみます。
■Javaのメリット
・アプレットという形式があるので、Webゲームが作りやすい。
・GUIが基本パッケージに含まれており、グラフィカルなゲームを作るのが楽。
C++の場合は別途GUIライブラリを導入しなければならず、その選定や使い方の習得に時間がかかる。
・APIマニュアルが充実していて調べ事がしやすい。
・一度作ったゲーム(バイナリ)がOSに関係なく動かせる。
例えばWindows上で作ったゲームをそのままコピーするだけでLinuxでも遊べる。
・言語仕様がC++に比べればシンプルで勉強しやすい。
■C++のメリット
・動作速度が速い。大規模なゲーム、処理の重くなりがちなゲームを作る予定が
あるなら、C++の方が細かいチューニングができる分向いている。
・将来プログラマーを目指すのであれば、Javaより先にC/C++を勉強しておいた方が楽。
Javaはいろいろ親切なので、C++に途中から乗り変えると難易度が高く感じられるため。
他の方からも挙がっていますが、ご質問を伺う限り、今必要なのは
言語の選定よりも、何が作りたいか、それにどういった知識が必要か、を
明確にすることだと思います。シューティングを作るかRPGを作るかで、
必要な知識は大きく変わってきます。また例えC++用のゲーム制作本であっても、
そこに書かれているのは例えば「シューティングで自機から敵に向けて弾を撃つのに
どういう計算式が必要か」ということが肝で、サンプルコードがC++になっているだけですので、
「どういう処理が必要か」を知るには十分参考になるものと思います
(私はまず自分で考えて作り、詰まったらネットで検索する、という方法で
ゲームを作ってきたので、特別お勧めできる書籍はないのですが……)。
というわけで、ごくごくざっくり言うと、将来FFやドラクエレベルのを作ってやるんだ、
という野望があるのならC++、野望はともかくまだゲームの作り方が右も左も分かっていない
ということであれば、まずはJavaで簡単なゲームを作ってみることをお勧めします。
C++は非常に難しい言語ですので、勉強するなら時間も手間もかかるものと覚悟してください。
エラーメッセージもJavaよりはるかに不親切なので、途中でやる気が萎える可能性が高いです。
下手をすると簡単な絵を表示するまでで全力を使い果たしかねません。
逆にもっと楽をしたいなら、ツクールシリーズのようなゲーム作成ツールを使った方がいいです。
ゲームが作れさえすればそれでいい、という方にはむしろそちらをお勧めします。
ちなみに……逆質問で申し訳ないですが、他の方が言われている
「プログラミングレベル」1とか2って何でしょう? 資格か何かがあるのでしょうか。
回答ありがとうございます。両方のメリットを比較できると、分かりやすいですね。
ゲームはとりあえずSTGくらいを作ってみようかな、と思っています。
C++のが難しいみたいだし、まだゲームの作り方が全然分かっていないんで、Javaでやって行きたいと思います。
一からいろいろ作ってみたいんで、ツクール等は使わないつもりです。
プログラミングレベルはzozyさんが
ゲームを作るまでの道のりは
1) 基本構文の学習
2) オブジェクト指向&アルゴリズムの学習
3) awt&swing(GUIプログラミング)の学習
と言っていたので、それを目安に言っているだけだと思います…多分。
No.6
- 回答日時:
私は大学のゼミでゲーム製作講座をしている学生です。
経験上、レベル2を達成していない方には GUIプログラミングの基礎までしか教えることができません。
ここでいう基礎は以下のことができる状態です。
・アプリケーションのおおまかな構造を理解している
・図形や文字、画像ファイルが描画できる
・簡単なアニメーションを作れる(直線移動など)
・マウスやキーボードからの入力をプログラム側で受け取れる
とここまでです。
一見、なんとか作れそうな気がします。
が、ここから完全自力でゲームを作れた方はいません。(レベル1の人)
なぜなら、java はオブジェクト指向言語です。
オブジェクト指向とはよりよいプログラムを作るための "設計概念" です。
つまり、レベル1の人は プログラムの設計ができないということになります。
次にアルゴリズムです。
これは 数学力 + コーディング力です。
例えば、1vs1シューティング
仕様:
・自機、敵機共に縦横斜めに移動できる
・また、旋回ができる
・射程があり、弾は機体の正面に発射する
・射程内に敵を捉えた時に弾を発射すると、敵を追尾する
敵キャラの移動
1)自分の向いている角度とプレイヤ機のいる方向との角度の差を計算し、旋回する方向を決める
(ベクトルの内積によって)
2)射程と自分からプレイヤ機の距離を計算し、前進か後退を決める
(距離はピタゴラスの定理で計算)
3)プレイヤが撃った弾の発射角度を計算
(これもベクトルの内積によって)
4)2を考慮しつつ、避ける方向を決定
5)左右移動の基準はいろいろ
(ここ考えどこ)
6)旋回する
(画像も回転する場合はアフィン変換の知識が必要)
7)移動する
(画面に対して n℃ に移動することが多いので三角関数の知識が必要)
ゲームの種類にもよりますが、動きの多いゲームでは最低でも()内の知識が必要でした。(経験談)
数学が嫌いならば、RPGやアドベンチャーを
ちなみに今まで作ったゲームは、RPG、シューティング、トランプゲーム、パズル、シミュレーション etc です。
以上のことが目安にでもなれば、幸いです。
回答ありがとうございます。
完全自力では…出来ないです。
設計が出来てないのに、作ることなんか出来るわけがないってことですね。
そういう数学的なことについても勉強していきたいと思います。
RPGはそういう数学を使わないでいけるなら、STGより簡単なんでしょーかね?
No.5
- 回答日時:
私も1年前の今頃「Javaゲームプログラミング 第2版 アルゴリズムとフレームワーク」を読みながら、実際にゲーム(テトリス)を作りました。
この本は確かにいい本です。奥が深いです。フレームワークとは、プログラミングのスタイルを制限することと引き換えに、生産性と安全性を向上させるものだということがよくわかります。
また、開発中はアプリケーションとしてテストでき、完成したらアプレットとしても動かせる、アプリケーションアプレットという考え方を、私はこの本で初めて知りました。
実はこの本の大部分は、付録のソースコードを読み解くための手がかりで占められています。本文中にソースコードが掲載されておらず、どうしてもCDの中のソースコードを読むことが必要になってきます。これはそういう掟破りな本なのです。したがって、ある程度の経験を積んで、大量のソースコードが読みこなせるだけの実力が付いていないと、この本の真価を引き出すことは難しいと思います。
とは言え、お手元にこの本をお持ちということですので、実際に読んでみて、行けると思えば、そのまま読み進んでいけばよいのではないでしょうか。
もしも、手に負えないと思ったら、「15歳からはじめるJAVAわくわくゲームプログラミング教室」をまず読んで、ご自分で、ゲームプログラムの設計から、完成まで一通りの経験を何度か積んでから、もう一度『Javaゲーム...フレームワーク』を読み返してみましょう。
storm001さんの健闘を祈ります。
回答ありがとうございます。
なるほど…ちょっと難しいかな?とは思いますんで、15歳からはじめる~の購入を視野に入れたいと思います。
No.4
- 回答日時:
ゲームを作るまでの道のり
1) 基本構文の学習
2) オブジェクト指向&アルゴリズムの学習
3) awt&swing(GUIプログラミング)の学習
GUIプログラミングの参考サイト
http://www.hellohiro.com/
http://www.javadrive.jp/index.html
ゲーム製作の参考サイト
http://javagame.skr.jp/
できれば、JAVAのプログラミングレベルを教えていただけるとアドバイスがしやすくなります。
No.2
- 回答日時:
C/C++で作ると道のりが険しすぎて死屍累々…
なのでJavaを勉強してるならJavaで作ればよいと思います。
Javaで作れてから不満な箇所がど~やってもC/C++でなければ解決できない状況になったら…その時に考えれば良いです。
Javaでゲームを作る参考
「Javaゲームプログラミング 第2版 アルゴリズムとフレームワーク」
http://www.amazon.co.jp/dp/4797344512
「15歳からはじめるJAVAわくわくゲームプログラミング教室」
http://www.amazon.co.jp/dp/4899771053
この回答への補足
分かりました、行けるとこまでJavaでやっていきたいと思います。
Javaゲームプログラミング 第2版 アルゴリズムとフレームワークは持っているのですが、15歳からはじめるJAVAわくわくゲームプログラミング教室の方もあったほうがいいんでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java キー入力について 1 2023/06/03 11:04
- IT・エンジニアリング バックエンドエンジニアに転職 2 2022/04/07 00:51
- Java JavaでWebページ作成 7 2023/07/21 21:09
- オンラインゲーム 初めてのPCゲームにおけるおすすめ。 この度ゲーミングPCを初めて自作しました。 ただ今までCS機で 2 2022/08/09 04:08
- C言語・C++・C# Windows10,visal studio2019,C言語でゲームを作っているのですが、任天堂スイ 1 2022/09/16 19:14
- IT・エンジニアリング FORTRAN、COBOL、C、Java、C++とか誰が作ったのですか?言語習い使いまた出て、キリが 4 2023/05/06 23:11
- C言語・C++・C# C#の基本文法が詳しく書かれている教科書的な本ありますか 2 2023/02/11 03:48
- Java EclipseとVisual StudioをPC1台にインストールしただけではPCは重くならない? 3 2022/12/08 15:35
- その他(プログラミング・Web制作) ゲームを日本語化しようとすると文字化けしてしまいます。 2 2022/08/19 15:36
- Java プログラミングのプの字も知りませんが、プログラミングを勉強したいです。とりあえず、学ぶものを決めない 3 2022/11/04 13:10
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptとC言語の違いについ...
-
JavaとAndroidアプリ(Java)違...
-
授業でプログラミングのJavaの...
-
エクリプスのプログラミングに...
-
【マジックナンバーの由来】
-
Javaに向いてない人はどんな人...
-
大学の授業のプログラミング、...
-
内部仕様、外部仕様
-
フレームのデザインを変えたい...
-
vba クリップボードクリアにつ...
-
使用しているJUnitのバージョン...
-
JSPファイルで生じるエラーをど...
-
IISワーカープロセスが原因でCP...
-
【javaコンパイル時のエラーに...
-
Eclipseソース開発画面の行番号...
-
MSFormsとは何ですか?
-
unzip32.dllの利用について(64b...
-
MSCOMCTL.OCXのアップデートの方法
-
CrystalReportsのバージョン確...
-
Selenium/VBA/Chrome エラーで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaとAndroidアプリ(Java)違...
-
エクリプスのプログラミングに...
-
授業でプログラミングのJavaの...
-
スキル高めのIT技術者になぜ左...
-
vectorクラスについて。
-
内部仕様、外部仕様
-
オブジェクト指向をひたすら練...
-
JAVA
-
遊びでJavaを勉強しようとして...
-
Netbeansでの、Java「実行」と...
-
Javaは暗記科目でしょうか?
-
超初心者のJAVA入門(学生)
-
Javaに向いてない人はどんな人...
-
JavaScriptとC言語の違いについ...
-
待ち受けiアプリ開発の参考資料...
-
VBA(えくせる)ってなんでメン...
-
Perl言語について。
-
java言語でオセロゲームを4人対...
-
javaでマリオやロックマンみた...
-
Effective Javaのどこが良いの...
おすすめ情報