• ベストアンサー

GUIゲームプログラミングの勉強方法

皆さんは、どのように勉強して どの程度のものまで作れるようになりましたか? 現在、私は独学でJavaを学んでいます。 ゲームが作れたらいいなー… 程度で始めたのがキッカケですが、 GUIのゲーム製作に必要な知識は どういった書籍や方法を使って学べば良いのでしょうか? 取っ掛かりに良いものがあったら教えていただきたいです。

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

  • ベストアンサー
回答No.1

>どういった書籍や方法を使って学べば良いのでしょうか? まず「書籍」では学べません。 次に「方法」ですが「やりたい事を見つける」が最短コースで、最も確実です。 つまり「こういうゲームを作ってみる」と言うのを考えるのです。 考えるのは「リバーシ(オセロ)」でも「ブロック崩し」でも「インベーダーゲーム」でも何でも構いません。 と言うか、リバーシなどの「既存のゲーム」を作ってみる、という所から始めましょう。「オリジナルのゲーム」は「そこそこプログラミングが出来るようになってから」にしましょう(最初から「オリジナルのゲーム」を作ろうとすると120%確実に挫折します) そして「それを実現するには、どうすれば良いか?」を考え、その「方法」を考えます。 次に「方法」について「細分化」していきます。 例えば「画面に8×8の升目を描くには?」とか「画面に8段分のブロックを描くには?」とか「初期位置に●と○を2つ描くには?」とか「コマの有無をどのようにメモリ中に記憶するか?」とか「ブロックの有無をどのようにメモリ中に記憶するか?」とか、1つ1つを「細かく」考えていくのです。 そして、その「細かく考えた事柄」を「プログラムの1行1行に対応させていく」のです。 この作業を延々と繰り返せば、何時の間にか「それっぽいゲームが完成している筈」で、その時には「それなりの知識が身に付いている」でしょう。 繰り返しますが「決して、最初っから、オリジナルのゲームを作ろうと思ってはいけない」です。

nesthac
質問者

お礼

ご回答有り難うございます。 今まで私はプログラミングの考え方を勘違いしていて、 学習して仕様を理解してから、全体の流れを考えてソースを書くものだと 勝手に決めつけていました。 1つ1つ、細分化しながら作っていくものなのですね。 まずは既存のゲームを模した物を作ってみたいと思います。

その他の回答 (1)

回答No.2

> どういった書籍や方法を使って学べば良いのでしょうか? 学歴社会の弊害か(参考書などを読んで受験戦争を それなりに良い成績で乗り越えて来た実績があるので)、本を読めばプログラムを組めるようになると勘違いしてる人が稀にいますが、「プログラムの勉強」と言っても本を読む事ではありません、もちろん本を読んでも良いのですが、大工になりたい人が本ばかり読んでいても技術が上達しないのと同様に、プログラマーはプログラムを組まなければ上達しません。 chie65535 さんの言うように、まずハードルが低く自分が作りたいゲームを作ってプログラムを勉強すると言うのも良いと思います。 できる限り構造化しましょう、構造化してないと(いわゆるスパゲッティーだと)、(天才は別として)作った本人でさえデバッグが困難になります。 Java でプログラムを組むとしても、Java を熟知している必要はありません、ネットで検索すれば おkです(僕などコマンドのスペルとか言語仕様とか分からないコマンドとか しょっちゅうネットで検索してばかりです・笑、それでもプログラムは組めます)。 個人的には必要になった時に必要なモノを勉強するで良いと思います。 他人に分かる様にコメント書けと言うのは嘘です、その他人とは どのレベルのプログラマーでしょうか?、初心者でしょうか、中級でしょうか、中級でも どのレべルでしょうか、曖昧で全く基準がありません。 コメントは10年後、20年後の自分が分かる様に書きましょう(余程 記憶の良い人は別として10年後、20年後に自分の書いたコメントを読んだら まるで他人が書いたように見えるでしょう、それでも分かるように書くようにしましょう)。 コメントは自分が必要だと思った所に書きましょう、なんでも かんでもコメントを書く必要はありません。 (これは誰も教えてくれない事かもしれませんが)ある程度の大きさのプログラムは動かしながら作れと言うのが鉄則です。 僕が まだプログラミングの初心者だった頃、それを知らずに(プログラミング初心者としては)結構 大きなプログラム作ったのですが、延々と動かないプログラムを打ち込み、一応プログラムの打ち込みが完了しても、当然バグがあって動かないので延々と動かないプログラムをデバッグすると言うのは非常に辛く精神衛生上 非常に悪いです。 ですので本来のプログラムとは別に、プログラムを動かすデバッグ用のルーチンを作り、最初は動かすのに必要 最低限のプログラムを作成してやれば良いでしょう(効率が悪いように思うかもしれませんが、その方が精神衛生上 全然 良いです)。 オブジェクト指向プログラミングに興味があるのなら、オブジェクト指向プログラミングを勉強するのに本を買っても良いですが、本を買ったからと言ってオブジェクト指向プログラミングが出来るようになるとは限りません。 本を買うなと言う意味ではありませんので誤解のないように、僕も実際にオブジェクト指向プログラミングの本を買った事があります(このような質問サイトでオブジェクト指向プログラミングについて質問するのも良いでしょう)。 (通常の Java とは API は全く別物なので) ハードルが結構 高いかも知れませんが Android Java は どうでしょうか? Android 端末さえあれば自分の作ったプログラムを人に見せびらかせられるのでモチベーションが上がるんじゃないでしょうか? ただし、みんなが普段 使ってるような「アプリ、ゲーム」などと比べて雲泥の差でショボイので、あまり良い反応は得られない場合が多々あるかもしれませんけど…。 Android プログラミングの基本の基本 http://8242.teacup.com/bremen1/bbs/8 下記は僕が作ったテトリスです。 ちなみに「Tetris(R)」は登録商標「(R)」になっているようなので、名前は「Tetraz」としています。 Android Tetraz http://ashtarte.hotcom-web.com/utf8/smt.cgi?r+sara/&bid+00000002&tsn+00000002&bts+2016/03/04%2022%3A39%3A06&

nesthac
質問者

お礼

ご回答有り難うございます。 実は書籍はすでにいくつか購入していて、 オブジェクト指向や言語仕様については学んでいたのですが、 小規模なコンソールプログラムしか組んだことがないので その真価を理解できずにいました。 Androidですか。 端末があるのでボードゲームあたりを作ってみたいと思います。 とりあえず何か動くものを作ってみることが何よりも大切なのですね。 リンク先、勉強させて頂きます。

関連するQ&A