2004/11/21

Pangyaのはなし

今日はみっちりPangYaの話。

On Windows XP SP2

ひっさびさにPangyaやることにしたんですが、起動したらパッチ当たりません。

まぁ、クライアントVerが2.04とかなので、古くてアップデート出来ないんでしょうかねってことでさくっと新しいクライアントをゲットしてきてインストール。……起動しない。Windows的にNull Pointer Exceptionでエラー吐いて初期化失敗って感じっぽいので、おそらくうちのマシン固有っぽいですが、さてどうしたことやら。

ざっとアップデート履歴を読んだらなんかゲームにプロテクトをかけたような風味のことをかいてたので、さしあたり私がデバッガを起動してるのを検知しているんですかね(常時開発環境動かしていろいろとソフト書きながらROやったりしてます)。っていうか実際、TalesWeaverはVisualStudioのデバッガ動いてると起動しません(あれ、サーバーにつながらないんだったかな)。

ということで、さくっと開発環境を終了させてリトライ! …だめでした。うーんうーん、もしかしてまさかとは思うけどこのマシン既に28日(4週間)起動しっぱなしだから、いろいろあるかもなー(そりゃもうデバッグ中のソフトがクラッシュしたりとかでわりと荒れてます)。よし、断腸の思いで再起動だ(Windows自己最長不倒記録更新中だったのでちょっとためらってた…けどPangyaにはかえられないかなぁ)。

か、かわんねー。

ってことで、もうお手上げですが、今週末はPP倍キャンペーンなのでここであきらめるわけにはいきません。

あたまを振り絞っていろいろ調べたところ、とりあえずプロテクトルーチンのDLLのフォルダをはずしたらエラーが出なくなったので(起動もしませんけど)、どうもプロテクトルーチン関係で引っかかっているようです。となれば、あれですか。Windows XP SP2からの新機能、ページの実行防止機能でプロテクトルーチンの埋め込み失敗になっていると見ました。っていうかそれしかありえねぇえええー。

ってことで、コレをPangyaの実行ファイルに引っかからないようにしてみました。手順は…

システムのプロパティよりパフォーマンスオプションのデータ実行防止を選択し、そこにPangyaの実行ファイル、ProjectG.exeを例外指定

  1. システムのプロパティを開きます。[コントロールパネル]→ [システム]なりマイコンピュータを右クリックしてプロパティなりで開けます。もしWindows玄人を自認するならWindowsキー+Pause/Breakでも開けることぐらい知ってますよね?
  2. 詳細設定タブの一番上のパフォーマンスオプションの設定を出します。
  3. Windows XP SP2からここに新たにデータ実行防止というタブができました。これを「次に選択するものを除くすべて〜」の方をチェックします。
  4. 追加ボタンを押して、Pangyaのクライアントのインストール先を参照し、ProjectG.exeを選びます。
  5. するとPangya Executableという項目が追加されます。これでOKです。

ということで、Windows XP SP2でPangyaやろうとして引っかかってた方はコレを参考にしてみてはいかがでしょうか。

以下、どういうことになってるかのつまらない技術的解説を入れておきます。ちょっと気になる人とゲームポッドの人以外は別に読まなくてもいいです。っていうかこのぐらい公式の方でちゃんと把握してるんですよね? …公式穴が空くほど読みましたけど私には見つけられませんでしたが(もしあったら私の目が節穴なだけですね)。

そもそもこのWindows XP SP2のデータ実行防止というのは、ワームやトロイの木馬により実行中のプログラムのメモリ空間に寄生ルーチンが書き込まれ、脆弱性を突くことによりそのルーチンを実行してしまうのを防ぐためのものです。そういった寄生ルーチンのデータは実行可能プログラムではなく、ただのデータとしてヒープメモリに埋め込まれることが多いのですが、今までのWindowsではヒープメモリのデータ領域でもそこにプログラムカウンタが飛んでしまうとそれを実行してしまうようになっていました。ですが、本当はヒープメモリのデータを実行するためにはページに実行属性がないと実行出来ないのが本来の意図された仕様だったと思うんですが、それは今まではプロセッサ依存であり、それを実装したプロセッサはごく最近のAMDのCPUぐらいのものです。で、Windows XP SP2ではセキュリティ強化のため、ハードウェア的にそれをサポートしていないCPUでもソフトウェア的にデータ実行防止機能を付けたといったところでしょうか。このため、プロテクトルーチンも手法としてはヒープに改ざん検知ルーチンを埋め込んだり等しているものも中にはあるので、そのプロテクトルーチンが実行属性付きでヒープの確保をやっていないとおそらく私の食らったエラーのようなことになるのかと思われます。あぁ長い説明でごめんなさい、だから読むなっていったじゃないか…。

実は某IRCのtechチャンネルで数ヶ月前に「Windows XP SP2あてることで動かなくなるようなソフトもあるかもなー、特になんかのプロテクトをかけてる系とかは結構くらいそうだよねー」みたいな話をしたんですが、まぁなんというか、予想は大当たりといったところでしょうか。しかしよりによってPangya…。

クッキーポイントとPangポイント

いきなりヘビーなtech話ではじまりましたが、Pangyaも課金がはじまって、当初は月ごとにチャージ料金が必要だというような料金体系の予定だったみたいですが、結局韓国と同じようにアバター(アイテムとか服とか…)にお金がかかってゲームプレイ自体は無料というシステムになってわりとよかったなーと思う半面、これでホントに収益上がるのかなぁとも思ってしまいましたが、まぁそこはそれ、さっそく相方が紺セーラー服セットをそろえてました。100CP買ったって言ってたんで、それで1000円ですか。まぁ、永続性のあるアイテムなら1000円も安いもんですかね。

で、結構これいいシステムになってると思います。いろんな種類のアイテムがあるものの、きっちりCPで買えるアイテムとPPで買えるアイテムが決まってるので、いくら日本円を積んだところでPPでしか買えないものはどうやってもゲームやってPPを稼ぐしかないわけで、そこらへん何でも日本円を積んで解決、みたいなRMT推奨ゲームみたいなことになってないあたりが、かなりacidlemon的に好印象です。んでそのPP稼ぎの効率化のためにCPで日本円を積んで装備をそろえるかどうか、という点はユーザー裁量ということで、手っ取り早く稼ぎたい、着飾りたい人はCPを投入していく、そうでないひとはPPをためていくということで、なかなかいい感じだと思いました。

まぁ、やっぱりCPの投入無しにPP装備でステータスをあげていくのは正直かなりの時間を使うことになると思いますが、それをCPで埋めていくという手っ取り早さが、結構ユーザーが課金するモチベーションになってくるんじゃないでしょうか。あと基本的にアイテムのトレードはできないんですが、CPアイテムに限ってプレゼントというシステムがあるのもなかなか面白いですね。PPアイテムのトレードができたりするとまたRMTに結びつきそうですが、プレゼントをCPアイテムに絞ることでそもそもRMTっていうか元が日本円で買ったアイテムなので、CPアイテムのプレゼントしあってもゲーム内PPが動くわけでもないですしね。

ってことで、わりとPangya、いいシステムになってきてるんじゃないでしょうか、なんて思ってます。あとはチート対策ですが、なんか噂だと大会モードとか、いろんなところでクライアント演算が多用されているらしいのでそういうのを全部サーバ側演算にすると……現実的に考えて負荷の面からそれは無理かもしれませんね。というと抜本的な対策ができなくなってしまうのですが、今回のXP SP2でできないとかいう問題の発端にもなっているクライアントへのプロテクトはどのぐらい効果を上げているんでしょうかね。ほんとその辺はしりませんけど。

ペーパークラフト

IRCで教えてもらったこれ、実際に作ってみましたよ。A4の紙に印刷して自分で作ったり、相方に教えてみたりとか友人作らせてみたりしましたが、いやー、これ再現性高いですねー。現物はどうなんだ、とかいいながら作ってたのでホントにゲームの中にいるキャラがそのまんま組み上がったのはびっくりでした。

ってことで暇な人は作ってみてはどうでしょうか。地味に小一時間ぐらい作るのにかかりますけどね。

acidlemon inside.

insideってほどでもないけど、結構いろいろ気になった話など。

IIDXはWindows XPで動いている

現在アーケードではbeatmania II DX 11 RED(正式名称コレであってた?)が稼働してますが、どうも9thあたりから筐体の中には普通(?)のPC/AT互換基盤が入ってるらしく、Windows XP上でIIDXが稼働してるらしいです。

そうかー、8thから9thになったときにいきなり曲選択画面とかタイトル画面とかが3Dのバリバリポリゴンな世界になってたから、「うわー、なんだこれー、っていうか基盤めっちゃ強化?!」とか思ってたりしたんですが、まさかWindowsとは…。ってことはあれってDirect3Dとかで動いてるんでしょうかね…。

だとすると、最近家庭用8thがでて友人がさっそく買ってましたが(今度遊びにいくよ!)、8thと9thじゃ全然スペックが違うわけで、9thの家庭用移植はあるんですかねぇ…、なんてことを急に心配しだしてしまいました。

ほら、ゲーム用のプログラムってどういうAPIになってるのか全然知りませんけど、CodeWarriorとかならいろんなプラットフォーム向けにビルド出来るじゃないですか。IIDX9th以降のやつがDirect3D直叩きじゃなくてなんかのラッパライブラリで書いてあるのならPS2向けにビルドするのもそんなに難しくはないかなぁというか、普通に移植されそうなもんです。でも8th以前のハードウェアが何ベースだったのかも知りませんけど、一説によるとPlayStation(2かどうかはわかんない)ベースという話でして、もしそうだとしたら8thまではPS2コンシューマ向けへの移植性が高かったのはうなずけますけど、ちょうど6thで家庭用の打ち切りが決定したあとのアーケード版9thのPS2ベースからPC/AT互換機へのスペックアップ…つまりPS2への移植性を捨てた?とも見られるわけで、さて9th以降の家庭用登場はどうなることやら…。まぁ例のカードシステムもなんか実はUSBらしいとかいう話なんで、どっちにしろカードシステムのためにはPC/AT互換機にするのが一番だったらしいとかいう話もあるみたいですけど(他のKonamiのカード使うアーケード機もみんなPC/AT互換機ベースでWindowsの上で稼働してるらしいです)。

とりあえずわけ分からない憶測を飛ばしてみましたが、IIDXの9th以降がWindows XP上で動いてるのは間違いないらしく、ゲーセンの開店直後に行くとIIDXの筐体に起動直後のWindows XPのようこそ画面が映ってるのがみられるとかなんとか…(そのあとStartupでIIDX起動らしい)。

うされもん @acidlemonについて

|'-')/ acidlemonです。鎌倉市在住で、鎌倉で働く普通のITエンジニアです。

30年弱住んだ北海道を離れ、鎌倉でまったりぽわぽわしています。

外部サイト情報

  • twitter
  • github
  • facebook
  • instagram
  • work on kayac