質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • Java

    14413questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

基礎を学び終えた後の勉強方針

解決済

回答 6

投稿

  • 評価
  • クリップ 3
  • VIEW 4,359

DaiAoki30

score 52

はじめまして。
このサイトを利用するのは初めてです。宜しくお願いします。

Javaを独学で勉強し初めて1ヶ月が経ちました。
進展状況としましては、初心者におすすめの「スッキリわかるJava入門」という参考書を一通り学習し終えたところです。
プログラムの基本的な書き方、if,switch,while、配列、引数やオブジェクト指向の考え方・3大原則(カプセル化、継承、多態性)については書籍の範囲内では理解しました。

独学だということもあり、自分の実力がわからず、次に何に手をつけたらいいか迷っています。

①「スッキリわかるJava入門 実践編」に進む

②自分なりの作品を作る

③他の人が作ったコードを読み漁る

で迷っています。
個人的にはそろそろ自分なりの作品を作りたいと思っていて、簡単な2D RPGゲームを作ろうとしたのですが、まだハードルが高いと感じています。
RPGの舞台となるフィールドや、魔物アイコン、音楽をつける、主人公を操作するなど、やり方がわかりませんでした。
これまでに作ったものとしては、ランダム生成された整数を元に条件分岐させて画面に表示させる占いと、RPG内の HeroクラスやMonsterクラス(それぞれ継承もしてみました)までです。


圧倒的に実践(自分で何かを作ること)が足りてないと自覚しているので、がんばって手を伸ばせば届くくらいのものを作ることを次の目標にしたいのですが、どういったものが考えられるでしょうか。

また、作品を作るうえでのおすすめの参考書やサイトなどはありますでしょうか。

「まだRPGを作るのは早い」、「先に◯◯をやった方が良い」など、その他の回答もいただければ嬉しいです。


足りない情報などがあればご質問いただければ幸いです。

まだまだ未熟者ですが、プログラミングの一端に触れて、その面白さと可能性に魅了され、もっともっと向上していきたいという強い気持ちはあります。

よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 6

checkベストアンサー

+5

1. 「スッキリわかるJava入門 実践編」に進む
2. 自分なりの作品を作る
3. 他の人が作ったコードを読み漁る

上記はどれも大事ですが、当面は1と2を併行して進めるのが良いでしょう。

3も本来は大事なことですが、おそらく入門書を読み終わっただけでは、
本格的な(オブジェクト指向の)コードは難しくて読めないと思います。
最初は読みやすく書いてある書籍のコードを精読するのがおすすめです。


1について補足すると、本は『実践編』でもいいですが、
それ以外にJavaでゲームをつくるための書籍が
一冊あったほうが良いと思います。

どんなライブラリを使えば、
ゲームの要素(画像の表示や音声の再生など)が実現できるのか、
最初はとても分かりにくいと思うので。


2について補足すると、簡易ノベルゲーム or マップ移動のないADV
 → マップ移動のあるADV → ワンマップの小さなRPG
と段階的に発展させるのが良いと思います。

最初のノベル or ADVも、 文字表示だけ
 → 画像表示 → 音楽再生 → 分岐機構
とやはり段階を踏むのが良いでしょう。

複雑な問題は分解するのが、プログラミングの常套手段です。


プログラミングを習い始める人が気づかないことに、
ゲームを組むのは意外と難しい、ということがあります。

手続き型でCUIのプログラムを書くのはそう難しくありません。
しかし、OOPは難しい。GUIも難しい。
両方使うゲームはさらに難しい。

ゲーム制作はプログラミング学習者がやりたいことの上位ですが、
じつは初心者に向いてない難しいジャンル(だから挫折者が多い)です。

だから、構造が単純なゲームから作り始めると良いです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

RPGを作りたいということであれば、曲がりなりにも自分なりの作品を作るのがいいと思います。
ただしいきなり全部を作ろうとはせず「まずはキャラクターの操作だけのプログラム、次にマップを表示するだけのプログラム、次に戦闘システムだけのプログラム」という風に小作品を作っていくのがいいと思います。
そして、作っている過程で躓いたり効率のいい方法はないかと思ったら、参考書を探してみるなり、ソースコードを読み漁るなりすればいいかと思います。

基礎を固めるのも大切だとは思いますが、何よりも自分の作りたいものを作ってる時のエネルギーが一番大事だと思いますのでまずはがむしゃらでもいいから作ってみるのが一番だと私は思います。

Javaでゲームを作る際の参考資料としてはこちらがいいかなと思います。
Javaでゲームを作りますが何か?

以上です。参考になれば幸いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

ほかの回答者と同様に、とりあえずものを作ってみることを自分もお勧めします。
(それにあたっての進め方はほかの方の回答もあるので割愛・・・)


オブジェクト指向の考え方・3大原則(カプセル化、継承、多態性)については書籍の範囲内では理解しました。
 この手の概念はプログラムの設計に密接にかかわるので、これらを意識して”プログラム設計”を行って、”便利”だと思えて初めて身につくものですので、頭の片隅にでもおいて、実装前に意識してクラス構成やらメソッドの作り方を整理することをお勧めします

書籍については、Effective Java、Java Puzzlersを2つセットで読むのがお勧めです。
(ただ、難易度はそこそこ高く、また、業務アプリ向けっぽい内容が強いですが)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

制御構文(if, for, while, etc...)含めた文法と、3原則含めたオブジェクト指向の概念
この2つさえ分かってれば、ある程度は何とかなります。
何かを作っていて、「とあるクラスの利用方法が分からない」となっても、Javaは日本語のドキュメントも豊富です。上記2つが分かっていれば、ドキュメントを読み、理解することも難しくないはずです。

以上のことを踏まえて、個人的には実践(作品作り)をオススメします。
何を作るかについてですが、今の実力では頑張っても手が届かないくらいの目標を決めて、そこを目指してステップアップしてくのが一番だと思います。

今のレベルでは、RPGを1本丸々作るのが無理だという場合は、まず「主人公が意のままに動く」それだけのゲーム(動くだけではゲームになりませんが)を作り、それができたら、「主人公がフィールド上を動く(木や岩に突っ込まずに止まる)」というゲームを作り、それができたら・・・
というようにステップアップしていく感じで。


「スッキリわかるJava入門」は第2版からJava SE 8に対応しているそうで、ラムダ式などにも言及しているらしい実践編に進むのもいいと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

... 独学で勉強 ...

ぜひ、ご自分で何らかのプログラムを作成し、github などで公開してみてください。
コードのみなおしをして欲しい旨を teratail に書けば、たくさんの人がいろいろな
情報をくれると思います。
# 添削をしてくれる人をみつけないと、独学だけで進むのは難しいかも。


投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

回答してくださった皆さん、ありがとうございました。

皆さんの助言を参考にして、目標であるRPGゲーム作りに向けて、まずは簡単なゲームから作っていこうと思いました。(マップを動くだけ、戦闘だけ、等)
その際、必要となる命令は別途書籍を購入したり、manzyunさんが紹介してくださったサイトを参考にしたいと思います。
長い道のりになりそうですが、やる気が湧いてきました。

今後、また皆さんの力を借りることがあるかもしれません。

ありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Java

    14413questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。