ゲーム開発者が偉ぶるブログ

ゲーム開発のビジネスやマネジメントについて日々思うことをあれこれ偉ぶって書き綴ったもの。

Java | 秀丸でコーディングする際の環境設定

秀丸でのJavaのコーディングも試してみる。

設定は下記サイトを参考にさせて頂いた。
「ファイルタイプ別の設定」ダイアログでJavaを新設すると良い。

 『5分でできる秀丸エディタのゲームプログラミング向け設定


その上で、Java強調表示ライブラリを使ってカスタマイズすると良い。

 『秀まるおのホームページ(サイトー企画)−JavaとJsp

 ライブラリの追加場所はデフォルトならこちら。

C:\Users\ユーザー名\AppData\Roaming\Hidemaruo\Hidemaru\Setting

メニューの「その他>ファイルタイプ別の設定」のダイアログで「デザイン>強調表示」の設定で「読み込み」からDLした「GecchiJava.hilight」を読みこんで、強調が不要なものは表示方法を変えたり(リストをダブルクリックで設定のための小窓が出る)、「デザイン」の設定で文字の色やスタイルを変えたりして好みにカスタムすると良い。

ちなみにこんな感じにしてみた。
プログラマがよく画面に表示している原色カラーリングは目に痛すぎる。

f:id:game_dev:20170402181620j:plain

それから、ブラウザやOffice製品でお馴染の操作方法だが、秀丸でもCtrlを押しながらマウスホイールで書類全体の表示サイズを変えられる。
画面解像度が高いと文字が小さくて見えにくいが、フォントサイズを変えるのではなく表示サイズを変えると良い。

ちなみにCtrl + Fで検索ダイアログを表示できるが、文字列を選択しておいてから(途切れの無い文字列ならダブルクリックで一度に選択できたりする)Ctrl + F、そしてそのままEnterを押すと、ヒットした文字列全てを強調表示してくれて便利。そしてF3とShift + F3で候補を行き来すると良い。

 

Java | GUIアプリ・テキストエディタ系のリンク

GUIアプリ、それも特にテキストエディタ系のチュートリアルやサンプルのリンクを備忘録として貼っておく。

 

●テキスト置換

Swingでテキストエディタをつくる

ここではテキストファイルを読み込んで、FONTを変えたり、テキスト置換ができるシンプルなエディタのサンプルがDLできる。400行ほど。

 

●ドラッグ&ドロップでファイルを受け取る

Java | 学習の工程について(2017年)

現在2017年初頭で、古い記事が沢山散見される中でどんなウェブサイト、書籍を参考にしたかの記録を残しておきたいと思う。

まず最初に行ったチュートリアルが下記サイト。

<ゲームを作ろう!>超初心者のためのプログラミング入門 - 楽しい趣味のプログラミング -

ここで SESSION 1 から SESSION 11 までしっかり手を動かしながら読み進めて「自分で作ってみよう」は飛ばし、SESSION 12 はある程度形になるまでをざっくり追うところまで読んだ。

土日の2日間まるまる使えばプログラミング初心者でも一通り読み進められると思う。
(ただしhtmlなどのスクリプト言語で若干はプログラミングに慣れている前提かも)

こちらが読み終えた頃にはシンプルなテキストアドベンチャーが作れるようになる。

次に観たのがこちらの動画。

第116回まで続いていて本当に素晴らしい。

こちらをおさらい部分は基本的には観るだけで、新しいことが出てきたら試してみる感じで始めたが、ドキュメントの読み方、情報の探し方まで丁寧に解説していて本当にありがたい。

Javaを始めた土日明けの平日夜で動画の「乱数を使ってみよう」のパートまで進めたら、ドラクエの1vs1の戦闘のような流れを自力でさくっと作れるようになっていた。

敵が現れた旨の開始メッセージを表示後「1.たたかう 2.まほう 3.にげる」‥の中から行動を1~3のキー入力で選択して実行し、プレイヤーもエネミーも乱数をswitchのcaseに当てはめて会心の一撃が出たりミスったりさせるようにして、ダメージや魔法での回復量も基礎攻撃力や基礎回復力に乱数の値を乗せる感じで計算して、ゲームオーバーまたはゲームクリアして終了する流れだ。
(ただしこの時点ではまだコマンドプロンプトでしか表示できない状態だったが)

さらに動画を進めていけば、最終的にはFC時代のドラクエのようなものを作れるようになるということだ。

その後、ウインドウを作成して表示、画像を表示、レイアウトを変える‥といった話に進んでいくが、動画ではswingを利用している。完全初心者としては新しくて良さげなJavaFXの方を覚えたいと思いつつも、JavaFXの記事が世の中にまだ十分ない感じがするのでひとまず最後の動画までこのまま進めるのが吉と思う。

ちなみに動画では秀丸Javaを書いて、コマンドプロンプト上でコンパイル>実行させて解説しているが、NetBeand IDEを使っていてしばらくは問題なかった。
最初は「swingで作成したウインドウはどうプレビューするんだ?」と戸惑ったが、メニューの実行>ファイルの実行(Shift + F6)でOK。

しかしその後、ウインドウでキャラ画像を表示するあたりで画像が表示されなかったり、表示されるようになっても3体並んで表示されなくなったりするが、Part.26まで進めると正常に表示されるようになるので、全く同じ記述にしていても画像が表示できない場合はしばらくその状態で我慢しつつ動画の通りになぞっていけばOK。

さて、この動画でパート40あたりまで進めてくると、非常に階層の深いクラスの継承が入ってコンストラクタなど聞き慣れない単語が頻繁に出てくるようになって、ついていけなくなると思う。

そうした場合は、他の入門サイトで書式や単語を調べながら理解を進めると良い。

なかでもオススメはこちら。

クラスなども車に例えて非常に分かり易く解説されており、ひとつひとつの記事がとても丁寧で読みやすい。

Java | 開発環境について

JDKとNet Beansのインストール
こちらを参考にしました。
インストールしたバージョンはJava 8とNetBeans IDE 8.2になります。

SESSION 4 開発環境をつくろう - <ゲームを作ろう!>超初心者のためのプログラミング入門

 

●POIのインストール
エクセルやワードの書類を作成したり編集したりできるということで入れてみたもの。
古い記事しか見つかりませんが、インストールはこちらを参考にしました。

その後、解凍したフォルダを適当な場所に置いて、NetBeansを起動し、メニューのツール>ライブラリ>JAR/フォルダの追加‥でJARファイル群を選べばOK?
ダメっぽい。

プロジェクト作成ごとに追加しないといけない‥?

POI Bookの作成

記事が古いものばかりで分からないのでちょっと後回し‥

 

JavaFXについて

とりあえずメモっておく。

初心者のためのJavaFXプログラミング入門

 

 

Java | 引数も戻り値も無い関数の宣言について

こちらのサイトを参考にJavaの勉強を始めてみた。

<ゲームを作ろう!>超初心者のためのプログラミング入門 - 楽しい趣味のプログラミング -

続くかは分からないが、ひとまず短期間で必要分だけ習得して非常に簡単なゲームを作れるくらいまでは進めておきたい。

とりあえずSESSION 11までは進めた。

が、プログラム自体まともに学習するのは初めてなのでちょっとしたことで躓く。
なので躓いたあたりをメモっておく。

続きを読む

Forza Horizon 3 の空

“現実の空”をゲーム内にまるごと再現した「Forza Horizon 3」の空表現 - GAME Watch

GDCになると海外の記事で賑わいテンションがあがる。英語はサッパリなので表面的なところしか追えないが…

 

さて、フォルツァの空の記事の写真を見てすげー!と思ったら実写撮影素材なのか。少々残念。

しかしこれだけガチ装備で撮影に挑むというのは開発者の体験としてもとても良いな。

タイムラプス撮影はかなりしんどいと聞く。高価な機材を置きっぱなしにはできないので交代で見張りが必要だし、時間に応じて適切な露出を予め割り出しておかないと行けない。

そして時間ごとの設定を変更しつつの自動撮影を行うならノートPCから専用のアプリケーションで制御するようなセッティングが必要だ。

難しいのは次回作以降でどう進化させるのかという部分だろうか。

最終的には全時間帯の動画をシークして長す日が来るのだろうか。

それこそCrytechの「Ryse Son of Rome」がジオメトリキャッシュを活用して破壊表現のために数十ギガを費やしてリアルタイムで再生していたのを彷彿とさせる。

非常にアリだろう。

ノウハウの言語化について

何か仕事を与えられた際に、すっと手順を理解して高い品質でこなす人がいる。

それはその人にとって得意とする分野であり、それまでの経験や考え方との親和性が高く、どうすべきか特別に意識する必要がない。感覚でやってのける。

センスが良いと言い換えることもできる。

この場合、ノウハウとして言語化するのが難しく、できない人の気持ちがその人には理解できないケースが多いのではないかと思う。

 

逆に、同じ失敗を繰り返したり何度も指摘されたり、思うように品質の良いアウトプットができない場合には、ノウハウを言語化して明示的にした上で理屈として理解するという努力のプロセスが必要になってくる。

そしてこれが興味のある分野なら良いが、そうではない場合には苦労する。興味があっても難解な内容なら同じことだろう。

ここはどうしても努力を繰り返して少しずつ習得して行かなければならないだろう。

ショートカットはできないものか考えた時には、その分野の物事の捉え方や考え方、本質といったことに気付き目覚めるという、その人の中でのイノベーションを起こすのが良いとは思うのだが、その具体的なアプローチとしてはノウハウを言語化して得意分野に変わったという人に教えを請うくらいしか思いつかない。

感覚でやってのける人にはカリスマ性の高いタイプが多い印象で、そういう人にお近づきになりたいとかノウハウを聞いてみたいとか思いがちだが、そういう人に聞いても参考になるケースは珍しそうだ。