読者です 読者をやめる 読者になる 読者になる

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

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

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

Java

現在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。

とりあえず現在はパート30まで進めた。
また追記していく。

Java | 開発環境について

Java ゲームエンジン

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

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

 

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

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

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

POI Bookの作成

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

 

JavaFXについて

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

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

 

 

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

Java

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

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

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

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

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

続きを読む

Forza Horizon 3 の空

GDC2017 ゲーム開発

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

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

 

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

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

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

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

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

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

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

非常にアリだろう。

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

ゲーム開発 スキル

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

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

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

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

 

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

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

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

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

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

開発者視点での「NieR:Automata」プレイ感想

ゲームレビュー ゲーム開発

f:id:game_dev:20170305191340j:plain

PS4専用タイトルの「NieR:Automata(ニーアオーオマタ)」をとりあえず3周クリアしたので、その感想をつらつらと書いてみる。

前提としてシリーズのプレイは本作が初めてで、ヨコオ氏のファンという訳では無く過去作の知識も全くない。メインキャラクターが吉田明彦氏のデザインでありプラチナゲームズ開発のアクションであることがプレイ動機として大きく、発表からずっと楽しみにしていた。

素晴らしいことに、国内の売り上げ本数が初週で20万本近い。

続きを読む

今Houdiniが熱い

ビジネス・起業 ゲーム開発 ミドルウェア ゲームエンジン

今は2017年の初頭。

2015~2016年は日本国内のゲーム開発でUnreal Engine 4の採用報告が一気に増えた年だ。

一方でSubstance DesignerやPainterの導入も徐々に進み始めてきた。ボーンデジタルがかなり前よりデモを行っていた記憶があるが、Uncharted 4のスタッフとタッグを組んでのアプローチもあり、ようやく実りを見せてきたという印象だ。

これらに共通するのはノードベースのエディティングだ。
UE4のブループリントしかりマテリアルエディタしかり。非破壊であり、流用性の高いノードネットワークを構築することも可能だ。今や多くの開発者がノードベースが珍しくなく感じてきていることだろう。

そんな中、2016年頃からゲーム業界にもHoudini導入の兆しが見えてきている。

ノードベースと言えば、何よりもHoudiniが歴史があるイメージだ。だが非常に高価で、予算をかけた映画や大手のスタジオでのVFXで一部使用されている‥という印象でしかなかった。

それが、Apprenticeという無料学習版の登場により自宅で無料で学習できるようになった。
そしてHoudini Engineの登場だ。

Houdiniを触ってみたりチュートリアルなど漁ってみた感触としては、破壊やパーティクル、流体といったダイナミクス系の表現がシェルフから手軽に試せて、しかも品質が高い‥という面も良い面であることに違いは無いが、何よりも「何でもできる」と言わんばかりのGUI周りの仕様とモデリングのみならずダイナミクスにまでプロシージャルに構築していける柔軟さに心を打たれる。

そして個人的には、プロシージャルということ以上にGUI周りの自由度の高さがすごい。パラメータを別のパラメータに自由に関連付けたり、パラメータにエクスプレッションを設定したり、果てはパラメータを自由に増設可能だ。

だが、ゲーム開発のワークフローにどこまで組み込めるかというと、気になる点がいくつかある。

・お値段の高さ。

・0からのモデリングのし易さ。

・アニメーションの制作のし易さ。

Pythonを使った強化周り(開発資産にしていけるのか)。

・Mayaとの間で情報を失わず柔軟な行き来が可能かどうか。

・バージョンアップでの互換性(過去資産をそのまま運用できるか)。

・Houdini Engineの有用性。

日本国内のゲーム開発はSIが減ったこともあり今やMayaがシェアを独占状態だろう。
その中で、Houdiniをワークフローの一部にだけ使用するという導入はあっても、Mayaになり代わっていく未来はまだまだ見えない。

国内のHoudiniユーザーの少なさ、情報の少なさからも導入したは良いが使いこなせるのか‥という危惧もある。先を見据えて、TA素養の高いスタッフ1人2人をHoudiniのスペシャリストを育てるつもりであてがうようにする必要がありそうだ。そのためにはどういった用途に力を発揮するのか明確に理解している必要がある。また、スペシャリストを育てる余力があるのか?という問題もある。

スペシャリストが育つ土壌ならHoudini EngineをMayaやUE4に導入していく道もあるだろう。だがまだ事例が見当たらないからだろうか。メリットが見えにくい。
だがゲームエンジンとDCCツールの行き来を少しでも軽減できるなら、それだけでも価値はあろうというものだ。開発がなるべくゲームエンジン上で完結し、かつ快適であるのならそれに越したことはないからだ。

Houdiniが広がるのかどうかは、実例が充実してきてからだろう。

それが5年後なのか、10年後なのかはまだ分からないが、今触っておいて損の無いツールであることは間違いない。