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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクリプスのプログラミングに...
-
サーブレットか、phpか?
-
JAVA基礎の課題で自動販売機
-
JavaとAndroidアプリ(Java)違...
-
vba クリップボードクリアにつ...
-
JSPファイルで生じるエラーをど...
-
MSCOMCTL.OCXのアップデートの方法
-
プログラムの起動、利用につい...
-
使用しているJUnitのバージョン...
-
データベースのデータをTextBox...
-
IISワーカープロセスが原因でCP...
-
javaからデータベースに接続 エ...
-
サーブレットとPHPの違い
-
php、Java(Servlet等)の両方を...
-
CrystalReportsのバージョン確...
-
正規表現について質問です。 カ...
-
VBAの「for i=1 to cells(…」...
-
MSFormsとは何ですか?
-
Eclipseソース開発画面の行番号...
-
Pythonを無料(安価)で学ぶ方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクリプスのプログラミングに...
-
JAVA基礎の課題で自動販売機
-
スキル高めのIT技術者になぜ左...
-
Javaに向いてない人はどんな人...
-
i-mode Java用エミュレータ
-
サーブレットか、phpか?
-
vectorクラスについて。
-
おすすめの解説書、参考書を教...
-
オーバーロードはオブジェクト...
-
授業でプログラミングのJavaの...
-
本の紹介
-
java プログラミング
-
javaの学習で
-
プログラミングの入門者・初心...
-
プログラミング初心者
-
入社前に読むべき本!!
-
プログラミングソフトの入手・...
-
EclipseとVisual StudioをPC1台...
-
ゲームを作りたいのですが
-
エクリプスを使って作成(困っ...
おすすめ情報
