ゲームパッドプラグイン「mk42」
Verethragnaのゲームパッドのプラグイン「mk42.dll」について。
さて、ゲームパッドのプラグインについてちょっと。
その昔、「Ragnarok」とゆーリモートデスクトップを作りまして、これがゲームパッドに対応させた第一号なんです。「vJoy」とゆー仮想ゲームパッドに入力信号を送れるようになったんですね。
クライアントでゲームパッドの入力信号を受け取って、通信でそれを送って、サーバー側で受け取ったゲームパッドの入力信号をvJoyに渡すんですね。そうすることで遠隔でゲームパッドが利用できるようになるとゆー仕組みです。
今ですとゲームのプラットフォームで当たり前のよーな感じで遠隔でゲームパッドが使えたりするよーになってきましたけど昔は結構大変だったんですねー。
で、現代。vJoyのような仮想ゲームパッドが他にも登場してるんですけど、VerethragnaもRagnarokみたいにゲームパッドの入力信号も転送できるようにしようかと。もちろんvJoyのような仮想ゲームパッドの力を借りねばいけません。ホントはこの辺も作りたいんですけどデバイスドライバは作るの骨が折れますのでまたいずれ。
究極的にはサーバー側に接続されているDualSenseみたいなゲームパッドに信号を送ってあたかも操作されたかのようになれば一番良いんですけどハードウェアですし色んなハードルがありそーですけどねー。
でもって、Brynhildrの時もプラグインでRagnarokを利用できるようにしたのですが、Verethragnaでも同じようにしようかと。ただ、VerethragnaをvJoyに特化させたくなくて色々と調整いたしました。Brynhildrでは特にクライアント側の入力系とサーバー側の受け取り側がvJoyに沿った仕様でした。
Brynhildrの時もサーバー側で受け取った入力信号は自由にカスタマイズとかできればと思ってたんですが構想だけで終わってしまいました。RagnarokがvJoyに特化しすぎていたもので。
でvJoyに特化させない作りになったのが「mk42」です。Verethragnaのクライアント側からのゲームパッドの入力信号をサーバー側のVerethragnaが受け取ってそれをmk42に渡します。それがvJoyに渡す感じですね。mk42の中だけがvJoyに特化しているので、将来的にmk42だけ差し替えればVerethragnaはどんな仮想ゲームパッドにでも対応できるとゆー寸法です。
でさらに私もリソースの限界があるのでmk42はオープンソースにして賢人たる皆さんのお力で対応して頂ければとゆー他力本願的なプロジェクトでございます。
ここで1つ問題が。
うっかりいつもの感じでmk42を作った結果、DLLの作成にdefファイルを使ってしまいました。__declspecを使っていなかったのでdefファイルを使わないとVerethragna側の呼び出し方法が異なるのでdefファイルも併せて公開しないといけないとゆーことでできるだけシンプルにしたいとゆー計画が見事に失敗しましたー。
てことで、defファイルは利用しない用がシンプルとゆーことでmk42のオープンソースを辞めて既製品として、新たにほぼほぼ同じソースコードの「gamepad.dll」のプロジェクトが生まれてしまったわけです。この「gamepad.dll」をオープンソースにすることを予定しております。
なので、Verethragnaも現行では「mk42.dll」と「gamepad.dll」の2つのDLLのどちらかにも対応させないといけないとゆー仕様になってしまっております、いずれmk42は廃止にするつもりですけど。
まあそれほど「gamepad.dll」を求めている方はいらっしゃらないと思ってはいますけど、要はクライアント側のゲームパッドの入力を受け取る以ことができるオープンソースのライブラリのプロジェクトを着々と準備中ですので暫くお待ちくださいませー。