• ベストアンサー

ゲームを作りたいのですが

Javaを本とかで勉強していて、そろそろゲームを作ってみたいなと思っているのですが、ゲームを作るならC++言語とかの方がいいんでしょうか? Javaでゲーム(RPGやアクション)を作るみたいな本もあまりないですし。 このままずっとJavaを続けていけばある程度は造れると思いますが、C++のほうがもっといいのを作れるのなら、そっちに乗り換えようと思います。

質問者が選んだベストアンサー

  • ベストアンサー
  • komi1341
  • ベストアンサー率65% (25/38)
回答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って何でしょう? 資格か何かがあるのでしょうか。

storm001
質問者

お礼

回答ありがとうございます。両方のメリットを比較できると、分かりやすいですね。 ゲームはとりあえずSTGくらいを作ってみようかな、と思っています。 C++のが難しいみたいだし、まだゲームの作り方が全然分かっていないんで、Javaでやって行きたいと思います。 一からいろいろ作ってみたいんで、ツクール等は使わないつもりです。 プログラミングレベルはzozyさんが ゲームを作るまでの道のりは 1) 基本構文の学習 2) オブジェクト指向&アルゴリズムの学習 3) awt&swing(GUIプログラミング)の学習 と言っていたので、それを目安に言っているだけだと思います…多分。

その他の回答 (7)

  • zozy
  • ベストアンサー率60% (20/33)
回答No.8

シューティングやアクションは自機やキャラクターを動かすために座標の計算が必要ですが、RPGの場合は動きが少ないのでそういった計算などはほぼ、使いません。 その代わり、ストーリー等が重要になってくるかもしれませんね。

storm001
質問者

お礼

回答ありがとうございます。 STGで無理そうだったら、RPGに挑戦したいと思います。

  • zozy
  • ベストアンサー率60% (20/33)
回答No.6

私は大学のゼミでゲーム製作講座をしている学生です。 経験上、レベル2を達成していない方には GUIプログラミングの基礎までしか教えることができません。 ここでいう基礎は以下のことができる状態です。 ・アプリケーションのおおまかな構造を理解している ・図形や文字、画像ファイルが描画できる ・簡単なアニメーションを作れる(直線移動など) ・マウスやキーボードからの入力をプログラム側で受け取れる とここまでです。 一見、なんとか作れそうな気がします。 が、ここから完全自力でゲームを作れた方はいません。(レベル1の人) なぜなら、java はオブジェクト指向言語です。 オブジェクト指向とはよりよいプログラムを作るための "設計概念" です。 つまり、レベル1の人は プログラムの設計ができないということになります。 次にアルゴリズムです。 これは 数学力 + コーディング力です。 例えば、1vs1シューティング 仕様: ・自機、敵機共に縦横斜めに移動できる ・また、旋回ができる ・射程があり、弾は機体の正面に発射する ・射程内に敵を捉えた時に弾を発射すると、敵を追尾する 敵キャラの移動 1)自分の向いている角度とプレイヤ機のいる方向との角度の差を計算し、旋回する方向を決める (ベクトルの内積によって) 2)射程と自分からプレイヤ機の距離を計算し、前進か後退を決める (距離はピタゴラスの定理で計算) 3)プレイヤが撃った弾の発射角度を計算 (これもベクトルの内積によって) 4)2を考慮しつつ、避ける方向を決定 5)左右移動の基準はいろいろ (ここ考えどこ) 6)旋回する (画像も回転する場合はアフィン変換の知識が必要) 7)移動する (画面に対して n℃ に移動することが多いので三角関数の知識が必要) ゲームの種類にもよりますが、動きの多いゲームでは最低でも()内の知識が必要でした。(経験談) 数学が嫌いならば、RPGやアドベンチャーを ちなみに今まで作ったゲームは、RPG、シューティング、トランプゲーム、パズル、シミュレーション etc です。 以上のことが目安にでもなれば、幸いです。

storm001
質問者

お礼

回答ありがとうございます。 完全自力では…出来ないです。 設計が出来てないのに、作ることなんか出来るわけがないってことですね。 そういう数学的なことについても勉強していきたいと思います。 RPGはそういう数学を使わないでいけるなら、STGより簡単なんでしょーかね?

回答No.5

私も1年前の今頃「Javaゲームプログラミング 第2版 アルゴリズムとフレームワーク」を読みながら、実際にゲーム(テトリス)を作りました。 この本は確かにいい本です。奥が深いです。フレームワークとは、プログラミングのスタイルを制限することと引き換えに、生産性と安全性を向上させるものだということがよくわかります。 また、開発中はアプリケーションとしてテストでき、完成したらアプレットとしても動かせる、アプリケーションアプレットという考え方を、私はこの本で初めて知りました。 実はこの本の大部分は、付録のソースコードを読み解くための手がかりで占められています。本文中にソースコードが掲載されておらず、どうしてもCDの中のソースコードを読むことが必要になってきます。これはそういう掟破りな本なのです。したがって、ある程度の経験を積んで、大量のソースコードが読みこなせるだけの実力が付いていないと、この本の真価を引き出すことは難しいと思います。 とは言え、お手元にこの本をお持ちということですので、実際に読んでみて、行けると思えば、そのまま読み進んでいけばよいのではないでしょうか。 もしも、手に負えないと思ったら、「15歳からはじめるJAVAわくわくゲームプログラミング教室」をまず読んで、ご自分で、ゲームプログラムの設計から、完成まで一通りの経験を何度か積んでから、もう一度『Javaゲーム...フレームワーク』を読み返してみましょう。 storm001さんの健闘を祈ります。

storm001
質問者

お礼

回答ありがとうございます。 なるほど…ちょっと難しいかな?とは思いますんで、15歳からはじめる~の購入を視野に入れたいと思います。

  • zozy
  • ベストアンサー率60% (20/33)
回答No.4

ゲームを作るまでの道のり 1) 基本構文の学習 2) オブジェクト指向&アルゴリズムの学習 3) awt&swing(GUIプログラミング)の学習 GUIプログラミングの参考サイト http://www.hellohiro.com/ http://www.javadrive.jp/index.html ゲーム製作の参考サイト http://javagame.skr.jp/ できれば、JAVAのプログラミングレベルを教えていただけるとアドバイスがしやすくなります。

storm001
質問者

お礼

回答ありがとうございます。 なるほど。まだ3いってない…かな?2も完璧じゃないし。 URLありがとうございます。

  • VIPhamu
  • ベストアンサー率0% (0/3)
回答No.3

「Javaゲームプログラミング 第2版 アルゴリズムとフレームワーク」 この本はわたしも持っていますが、割と内容も濃く良い本だったと思います。 他の本を買うのはこの本で一通り学習し、それでも足りない!と思ってからで良いと思います。 おそらくその頃にはもっとレベルの高い本が必要になると思いますよ。

storm001
質問者

お礼

回答ありがとうございます。 まだ最初の方しか理解してません。 まずこれ一冊理解できるようにがんばりたいと思います。

  • buriburi3
  • ベストアンサー率44% (353/792)
回答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

storm001
質問者

補足

分かりました、行けるとこまでJavaでやっていきたいと思います。 Javaゲームプログラミング 第2版 アルゴリズムとフレームワークは持っているのですが、15歳からはじめるJAVAわくわくゲームプログラミング教室の方もあったほうがいいんでしょうか?

noname#112042
noname#112042
回答No.1

その人の特性にもよりますが、私個人としてはXNAをお勧めします

storm001
質問者

お礼

回答ありがとうございます。 XNAについても調べてみたいと思います。

関連するQ&A