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

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

新規登録して質問してみよう
ただいま回答率
85.54%
Java

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

Q&A

解決済

6回答

15875閲覧

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

DaiAoki

総合スコア67

Java

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

0グッド

4クリップ

投稿2015/07/27 02:44

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

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

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

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

②自分なりの作品を作る

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

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

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

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

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

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

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

よろしくお願いします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答6

5

ベストアンサー

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

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

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

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

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

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

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

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

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

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

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

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

投稿2015/07/27 04:17

編集2015/07/27 04:50
LLman

総合スコア5592

ozwk, pi-chan, DaiAoki, gomasaburo, katoy👍を押しています

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

3

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

オブジェクト指向の考え方・3大原則(カプセル化、継承、多態性)については書籍の範囲内では理解しました。

この手の概念はプログラムの設計に密接にかかわるので、これらを意識して”プログラム設計”を行って、”便利”だと思えて初めて身につくものですので、頭の片隅にでもおいて、実装前に意識してクラス構成やらメソッドの作り方を整理することをお勧めします

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

投稿2015/07/27 04:23

tenraku

総合スコア148

ozwk, DaiAoki, katoy👍を押しています

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

3

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

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

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

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

投稿2015/07/27 03:30

manzyun

総合スコア2244

DaiAoki, argius, katoy👍を押しています

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

2

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

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

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


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

投稿2015/07/27 03:35

shiolier

総合スコア1156

DaiAoki, katoy👍を押しています

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1

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

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

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

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

投稿2015/07/27 14:00

DaiAoki

総合スコア67

katoy👍を押しています

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1

... 独学で勉強 ...

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

添削をしてくれる人をみつけないと、独学だけで進むのは難しいかも。

投稿2015/07/27 13:34

katoy

総合スコア22322

DaiAoki👍を押しています

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.54%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

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

Java

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