iPhone※この記事は古い内容が含まれています。HSPで作るスマートフォンアプリの詳細は、こちらにまとめられています。HSPで作られたソフトは、今まで主にWindows上で動作していましたが、もっと多くの環境・機種で動かしてみたいという人も多いと思います。TouchといったiOS搭載機種で動作させるためのテストを行なっています。以下は簡単なデモ映像です。shell)と呼ばれるシステム上で動作しています。発表しているHSP3ソースコンバーターによって、HSPの中間コードをC言語に変換した上で、HSPと同様の描画、制御用ライブラリをデバイスごとに用意するというものです。Dishの仕様として共通の枠組みを用意した上で開発する形になる予定です。HSPの標準命令や関数、マクロ、モジュール機能などのデバイスに依存しない機能については、HSP3ソースコンバーターが対応する範囲ですべて利用可能です。拡張プラグインについては、現在物理エンジン(OBAQ)を仮に対応させていますが、今後さらに追加の検討を行なっていきます。Dishでは、一度ネイティブコードに変換して実行されるため、モバイル端末など限られたCPUリソースの中でも、インタプリタ型よりも効率的に実行されます。iOS上でも、多くの場合は実行速度を気にする必要はないでしょう。iOS版については、開発環境としてMacのxcodeが必要になることや、デベロッパーの登録が必要になるので、やや敷居が高いですがWindows上のHSPで開発したものを、AppStore等のマーケットに登録することができれば、HSPのソフト開発者にとって新しい発表の機会が広がっていくと思います。Dishの開発も進めています。OSであれば、iOSよりも敷居が低く誰でも開発、登録などを行なうことができるようになります。今後、普及が進んでいく携帯デバイス、そしてスマートフォンに向けたアプリを、HSPで手軽に開発するという道を、これから少しずつ整備していきたいと考えていますので、Windows版ともども宜しくお願いします。ソースコンバーターかなり前から、OpenHSP上でHSP3ソースコンバーター(hsp3cnv)の実験を行なっていて、少しずつ形になってきています。hsp3cnvは、HSP3のコードを他のソースに変換するためのツールで、C++言語など他の言語及びプラットフォームに向けたソースの移行を可能にするためのツールです。現在のバージョンでは、HSP3のソース(.hsp)をC++言語のソース(.cpp)に変換することができます。これによりネイティブコード動作による高速化や解析に対するセキュリティ向上などが期待できます。hsp3cnvは、OpenHSPからも最新版をダウンロードできますが、まとめたアーカイブをβ版としてここでも公開するとともに簡単な使用方法を記しておきます。※注意HSP3ソースコンバーターは、できる限りHSPのソーススクリプトを他のシステムで運用できるよう変換を行なうもので、すべてのHSPソーススクリプトの変換を保証するものではありません。このバージョンは、テスト版のため多くの機能が実装されていません。変換の流れや、システムの概要を知るための参考程度にお使い下さい。ダウンロードはこちらからどうぞ。KiB)おおまかな利用方法は以下の通りです。変換したいソースをスクリプトエディタで読み込み、オブジェクトファイルを作成します(HSPメニュー→オブジェクトファイル作成)。1」を入れておくと変数名などがそのまま生成されるので変換後のソースが見やすくなります。ソースと同じフォルダに生成されたオブジェクトファイル(拡張子が.axのファイル)をソースコンバーターに渡します。コマンドプロンプト上でパラメーターを指定するのが正しい使用法ですが、axファイル(オブジェクトファイル)のアイコンを「hsp3cnv」にドロップするだけでも、同じフォルダにcppファイルが作成されます。StudioのC++コンパイラが必要になります。ここでは、VS2005で検証していますが、基本的には2008や無償で入手できるExpressでも同様に使用することができるはずです。Studio上から、hsp3rtestフォルダ内にあるプロジェクトを開いてください。最初にそのままプロジェクトをコンパイル(ビルド)することができるかを確認してみてください。正常にビルドされると、MIAさん作のレイトレーシング(raytracing.hsp)が起動できるはずです。ちなみにビルドの構成を「Release」にしていない場合は、実行速度は遅いままなので注意してください。自分で変換したソースをビルドする場合は、hsp3cnvで変換したソースを「test.cpp」とリネームしてhsp3rtestフォルダ内にコピーするか、hsp3rtestプロジェクトに登録されている「test.cpp」を削除して変換されたソースに入れ替えればOKです。Studio上でビルドされたexeファイルは、Windows上でスタンドアロン動作するバイナリとなります。C++言語上での、動作は以下の内容に制限されています。・モジュール変数以外のモジュール機能(#module、#global)・ユーザー定義命令、関数(#deffunc、#defcfunc)・DLL及び、プラグイン呼び出し(仮対応)以下の機能は、まだサポートしていません。以下の機能は、このシステム上でのサポート予定がありません。・run命令サンプルで使用したMIAさんのレイトレーシング(raytracing.hsp)の場合、こちらの環境でテストした限りでは、1画面のレンダリング所要時間は以下のような結果になりました(環境により変動があります)。現状で、インタプリタ(通常)版のHSP3から2~5倍程度の速度になっています。Optimization)を使用することで、さらに高速化を図ることができます。HSP3ソースコンバーターの目的は、高速化やネイティブ化という面もありますが、C++など他の言語に変換することでWindows以外のプラットフォームでの動作につなげるという面も持っています。スマートフォンやタブレット等のポータブルデバイスや、組み込み系の機器向けにライブラリを用意することで、Windows上で開発したものを手軽に移植するための環境として利用できます。現在はまだ準備段階ですが、今後これからソースコンバーターを介して発展していく領域は限りなく広いと考えています。多くのユーザーに利用してもらえることを願っています。OpenHSPではzakkiさんによりllvmを使用したJITコンパイラを搭載したバージョンも作成されています。こちらは、実行時にネイティブなコードを生成するもので、axファイルから直接コンパイルと同等の速度で実行を行なうことが可能です。詳しくは、以下のサイトをご覧ください。Processor(HSP)の情報や、古いゲームの話題を不定期にお送りしています。管理人おにたま(onitama)のプロフィールはこちら。コラム「ゲームデザインのミナモト」。iPhoneアプリ「ザルバールの蒸留塔」もよろしくです。