hl2 mod への遠い道のり

とりあえず mod は作らざるを得ないような気がするので、 というか mod の作り方くらいはマスターした方が良さそうなので、 まずは visual c++ 2010 express をインストールして、 それから source sdkhl2 single playper の mod を作る。

game_hl2_2005.sln を開くと 2010用に変換し直す。 別にここで困ることはない。

debug モードで build を開始する前に、

などに書かれていることを良く読んで、solution explorer で solution 'game_hl2_2005' の直下にある、 client_hl2 とか server_hl2 を右クリックして properties、そんで書かれた通りに直す。

Configuration Properties > Linker > Input > Ignore Specific Library to libc;libcd;libcmtd

Properties > Configuration Properties > Debugging (All configurations) → Command → browse → C:\Program Files\Steam\steamapps\(steamid)\half-life 2\hl2.exe うんぬん

Configuration Properties (all configurations) > Custom Build Step and in the Additional Dependencies field, type in $(TargetPath).

-allowdebug -novid -game "C:\Program Files\Steam\steamapps\SourceMods\MyMod"

などは必要だが、IsBIK がどうのとか memoverride.cpp がどうのというのはやらなくても動いた。 vc80.pdb というのは警告は出るけど無視して起動すれば良いらしい。 起動すると maplist.txt がないと怒られるが console で map (なんとか) と打てばそのマップがロードされる。 debug モードだとなんかいろいろ重いが一応動くようだ。 half-life 2のマップを読み込むこともできる (d1_trainstation とか)。

hl2.exe エントリポイントがみつかりません。GetCVARIF() Entry Point Not Found in vstdlib.dll などというエラーが出るが、これも無視して起動できる。

オリジナルの hl2.exe を起動しているから、モデルやテクスチャなどは half-life 2のままである。 hl2 の方でまずモデルやテクスチャを作成しておけば mod でも同様に使えるということだな。

npc_citizen というのはプレイヤーの味方で、npc_metropolice というのが敵なのだが、 npc_citizennpc_metropolice と同様にプレイヤーを攻撃させたいのである。 味方と敵というのはどこで区別しているのだろう。 よくわからん。 とりあえず

あたりとソースを見比べつつ、なんか新しい NPC 作ろうかなと思っている。 new_npc.cpp というのはそもそも無いのだろう。 monster_dummy.cpp はある。これをたとえば new_npc.cpp という名前で新しく保存してうんぬん、 という話ではなかろうか。 new_npc.cpp を作ったとしてこれをプロジェクトに追加するにはどうするんだ。 ただ書いて置いておけばよいというものではあるまい。

source mod をいじったのは今回が初めてではなく C++ もなんとなくわからなくもなく、 開発環境は visual C# で割と慣れたので、 そんな異様に難しくはないのだが。

ところでリンクの色が赤いと wikipedia に慣れた人なら、それがまだ執筆されてないページのように思えてしまうだろうと思うのだが、このページはわざとそういう色にしてあるのだが、どうよ。