フラッシュに再コーディングしたり、Java アプレットにしたりする必要はありません。C++ アプリのままにしておくと、サイトの訪問者がゲームをプレイできるように Web ページに埋め込む方法はありますか?
小さなゲーム、平均的なフラッシュ ゲームのサイズ、またはさらに薄いゲームであると想定できます。
問題のゲームは、Allegro ライブラリを使用して 1000 行未満のコードで作成されました。
出来ますか?
簡単な答え:いいえ、できません。
C++ アプリケーションは Web ページ内に埋め込むことはできず、ダウンロードする必要があり、ユーザーはそれらをクライアント マシンで実行する必要があります。
詳細: 何とか可能ですが、ブラウザー間での移植性はまったくありません。たとえば、Internet Explorer にはActiveXコンポーネントがあります (C++ アプリケーションの場合もあり、Web ページ内でダウンロード、インストール、実行されます)。他のブラウザーではこれを実現するためのメカニズムが異なります (たとえば、Chrome にはNative Clientがあります) が、実際に移植可能なものを作成することはできず、何を使用するにしても多くの制限があります。
可能です
http://code.google.com/p/nativeclient/
実は、これは古いニュースです...
http://www.engadget.com/2010/05/13/googles-native-client-sdk-developer-preview-provides-helpful-re/
emscripten プロジェクトを試してみてください。これは LLVM Clang に基づく C++ コンパイラであり、C++ ファイルを JS ファイルにコンパイルし、ブラウザで実行できます。
#include <iostream>
int main()
{
using namespace std;
cout << "Hello World" << endl;
return 0;
}
helloWorld.cpp
Emscripten をインストールした後、これを使用してこれを保存したと仮定します。
$ emcc helloWorld.cpp -o helloWorld.html
helloWorld.html
これで完了です。今すぐブラウザで開いて、自分の目で確かめてください。Emscripten の良いところは、SDL などを含む幅広いデスクトップ ライブラリをサポートしていることです。
ネイティブ拡張として、Google Chrome ブラウザーのプラグインとしてのみ可能です。