ソフトを開発しようと思った動機、背景「ゲームが起動しているPCの画面を別のPCの画面に表示できないか?」
ふとそう思ったことがこのソフトを制作するきっかけでした。フルスクリーンモードのみのゲームの場合、起動させてしまうと他のウィンドウを開くことができません。例えば、ゲームの内容をインターネットで調べようと思っても、別のPCを起動させる必要があります。同時に二つの画面を一つのモニタに表示させたいと思いました。
そこで、リモートで画面を表示できるソフトウェアをいろいろと探してみました。画面だけを表示できるものや遠隔操作までできるものなど、たくさんのソフトウェアを試してみました。ですが、なかなかゲームの画面までを高速に描画できるソフトウェアに出合えませんした。
「……自分でアプリケーションを制作しよう!」
最初に思いついたのが画面のハードコピーをビットマップで保存するものです。これはわりと簡単に完成し、ネットワーク経由でブラウザでも表示できるので便利だと思っていました。
そのうちに、「このままゲームがプレイできればもっとよいのでは?」と欲が出てきました。
ブラウザにビットマップを表示するのでは画面の描画が追いつかず、とても見づらくてゲームになりません。表示用のクライアントも別に制作する必要があると思いました。
インストールの必要もなく、サーバ兼クライアントのアプリケーションというとてもシンプルな作りにしました。アプリケーションの起動時の設定次第で、サーバにもクライアントにもなるという仕組みです。サーバはハードコピーをビットマップで送信しクライアントはビットマップを受信し表示を行うものでした。これが「IgScope」の原型でした。
画面のサイズや色数がそのままのビットマップを転送するという仕組みでは、画面の描画速度に限界がありました。そこで思いついたのが幅と高さをそれぞれ半分にして間引いた部分をアンチエイリアシングするという方法です。この方法により、転送するデータ量が1/4になり、同時にクライアントの画面の描画速度も格段に向上しました。
次に、クライアントの描画にDirectXを使用して表示速度を向上させることにしました。DirectXを使うことにより、拡大・縮小などにも自動でアンチエイリアシングがかかって画質もよくなりました。サーバにもDirectXを使用しようと思いましたが、これはゲームと競合してしまうために断念しました。
色数の圧縮や部分更新など、いろいろと試してみましたが、圧縮処理や部分更新の判定に逆に時間がかかってしまい、このアプリケーションの本来の意味の「高速描画」を損なってしまう恐れがあったので、そのままになりました。
その後もいくつかのバージョンアップを繰り返し現在に至ります。現在では、マウスやキーボードの遠隔操作や転送サイズ/表示サイズなどの詳細な設定も可能となりました。
今後のバージョンアップ予定
現在、パスワードが設定可能なバージョンを開発中です。パスワードが設定できることにより、セキュリティ面の向上が見込まれます。また、さらなる描画速度の向上やさまざまな機能追加なども考えております。今後ともよろしくお願い申し上げます。
(一撃)