外でやかましく音を奏でる蝉の声も、クマゼミやアブラゼミからツクツクボウシに変わり、徐々に夏の終わりが近づいているなぁと季節感たっぷりでお届けします管理人の悠です。西日本にはミンミンゼミがいないので、東北の祖父母家に戻るたびにミンミンゼミの鳴き声に夏を感じていたのが懐かしい。
そんな季節の移ろいとともに、PCを取り巻く環境というのも変わっていくもんです。高校時代からの目標として、自分自身でゲームを作ってみるというものがあり、BorlandのC++ Builderを購入したりして頑張っていたこともあったんですよ。ただ、世に出ているゲーム開発の参考書というのはVisual C++とDirectXの組み合わせが基本で、それ以外の組み合わせがなかったという理由で挫折。Visual C++とか高ぇよ一学生じゃ手が出ねぇじゃねぇかと感じて、フリーなコンパイル環境を持つLinuxとかもっと気楽なウェブアプリとかに逃避していたんですが、やはりC++とDirectXバリバリなゲームというのは一種の憧れというべきモノでもありまして。この歳になってようやくそういった金も工面できるようになったから、いっちょ気合い入れてやってみっかと参考書を色々物色してました。
……今って、Visual C++な環境もフリーで手に入るんですな。Express Editionとかいって、2005年辺りからMFCを除いたコンパイル環境というのが無償でダウンロードできていたらしい。Standard Edition以降の高級バージョンはプロダクトですけど、Visual Basic/C#/C++とかの基本環境についてMicrosoftから無償ダウンロード可能(microsoft.com)。現在の最新バージョンは2008。凄ぇなぁ。一昔前までは、商用開発環境なんて金出さないと絶対手に入らないものだったのに。DirectXもSDKインストールで開発環境が揃うし、参考プログラム程度なら誰でも作れるとか。
とりあえず、Visual C++ 2008 Express EditionとDirectX 9c SDKをインストールして、久しぶりというかほぼ初のWindowsプログラミングに挑戦してみました。
高校の頃にやったC++ Builderの遺産なんざあるわけもなく、右も左も分からない状態。というか今までもプログラムの開発なんて、エディタで丸ごとスクリプトなりコードなりを書いてコンパイルしていただけだから、統合環境でのコンパイルの方法からして分からん。参考書を見てみるも、VC++ 2008 Exについて説明しているヤツ(Amazon.co.jp)はDirectXなんて使わないし、そもそも.NETを考慮したマネージドアプリの説明ばかりでゲーム開発には役立たず。まぁ、基本操作の確認くらいには役に立ったけどさ。
環境設定は結局、四苦八苦しながら色々やってみて、なんとかDirectXを使ったプログラムのコンパイルを出来るようになった。基本的にははじめての3Dゲーム開発(Amazon.co.jp)を参考にしつつ、新しくなっている部分だけを読み替えてみただけなんだけど、それだけでも初の開発環境設定には一苦労。ツール->オプションによるライブラリとインクルードファイルの設定、及びプロジェクトのプロパティで実際に読み込む.libファイルの指定等々を済ませるだけなんだが、どうもDirectX SDK 2007 Novemberバージョン以降ではdplayx.libファイルが削除されてしまっているらしい。他、d3dx9dt.libもd3dx9d.libに名称変更されているとか。ここらの最新情報との食い違いでコンパイルエラーが延々と出続け、頭を悩ませていたんだけど、分かってしまえば後は楽。
で、実際に上記の参考書を見ながらサンプルを色々コンパイルしてみた。この参考書の良いところは、C++でありながらCライクなべた書きとその説明をしてくれているおかげで、DirectX初心者ひいてはWindowsプログラミング初心者でもちゃんと学習できるところだと思う。これのおかげで、基本的なWindowsプログラムの構造は理解できたし。
サンプルにあった.xファイルを読み込んで、色々視点変更等をプログラムで確認してみた。3Dゲームを開発する場合、無論3Dオブジェクトのデータファイルを作成しておかなければならない。実際に自分でゲームを作る場合、ゲームのプログラムよりもビジュアルデータの作成の方に膨大な時間を割かれそうな予感。3Dデータ作成に今のうち慣れておいたほうが良かろうか?
と、現在はだいたいサンプルの半分くらいを確認して修得したところです。プログラミングというスキルそのものはウェブアプリだとか研究用プログラムの開発で慣れているんですけど、やはりウィンドウを使ったGUIアプリの開発というのは勝手が違いますな。さらに表計算のようなビジネスライクなアプリではなくゲームという色んな意味で特殊なアプリを開発するのはいわずもがな。今現在のスキルで実装できそうな部分と言えば、表示と移動くらいで、物体の衝突判定すらまだ分かりません。さらにゲームとしての体をなすための様々なインターフェースとアルゴリズムを用意するのはまだまだ先。ビジュアル作成もあるし時間はかかりますが、出来れば学生モラトリアムな今の身分の間に一つは形にしておきたいですな。
目標は大きく、課題はこつこつと。
Comment
さすがですなぁ。その行動力を分けてもらいたいくらい…。
それくらいの意欲と根性があれば、僕もいわゆるIT業界に進んでたかもw
どこまで続けていられるかは分かりませんがね。
ともかく何か一つでも作品を仕上げてみたい、っていう気持ちはあります。
行動は起こしたら勝ちですよ。起こすのが難しいのかもしれませんけど。
さらにその次は継続力を養わないといけなくなるので、人生是日々勉強ってやつです。