フラッシュで記録したり、Javaアプレットにしたりしないでください! C++のアプリケーションであるをそのままWebページに埋め込んで、サイト訪問者がゲームをプレイできる方法はありますか?C++ゲームをウェブページに埋め込むにはどうすればいいですか?
平均的なフラッシュゲームのサイズやシンナーのサイズが小さいことがわかります。
問題のゲームは、1000行のコードの下でAllegroライブラリで書かれました。
可能ですか?
フラッシュで記録したり、Javaアプレットにしたりしないでください! C++のアプリケーションであるをそのままWebページに埋め込んで、サイト訪問者がゲームをプレイできる方法はありますか?C++ゲームをウェブページに埋め込むにはどうすればいいですか?
平均的なフラッシュゲームのサイズやシンナーのサイズが小さいことがわかります。
問題のゲームは、1000行のコードの下でAllegroライブラリで書かれました。
可能ですか?
クイックアンサー:なしできません。
C++アプリケーションはWebページに埋め込むことはできません。ダウンロードする必要があり、ユーザーはクライアントマシンで実行する必要があります。
詳細:それはどういうわけか可能ですが、絶対には、ブラウザ間で移植性がありません。たとえば、Internet ExplorerにはのActiveXコンポーネントがあります(C++アプリケーションでもダウンロードでき、インストールされ、Webページ内で実行されます)。他のブラウザでは、これを達成するためのメカニズムが異なります(Chromeにはネイティブクライアントなど)がありますが、本当に移植性のあるものを書くことはできません。
Emscriptenを使用すると、クロスブラウザのJavascriptコードを生成できます! – kovacsmarcell
興味深いプロジェクト! JavaScriptに_compile_するためにC++で何も書き込むことは決してありませんでしたが、アイデア自体は面白いです。今日では他にも実行可能な選択肢がありますが、いくつかの書き換えが常に必要です。 emscriptenがあなたのケースで動作する場合、良いキャッチ! –
ネイティブエクステンションとしてGoogle Chromeブラウザ用のプラグインとしてのみ使用できます。
それは実際に
http://code.google.com/p/nativeclient/
ことが可能であり、これは古いニュースです...
http://www.engadget.com/2010/05/13/googles-native-client-sdk-developer-preview-provides-helpful-re/
これは動作しますが、Chromeでのみ動作し、コードを変更する必要があります。 –
ブラウザ内のDoomは素晴らしいです:D – Tibor
はemscriptenプロジェクトを試してみて、それがC++コンパイラですLLVM Clangをベースにして、C++ファイルをJSファイルにコンパイルし、ブラウザで実行することができます。 Emscriptenをインストールした後、これを使用しますが、helloWorld.cpp
でこれを保存したと仮定すると
#include <iostream>
int main()
{
using namespace std;
cout << "Hello World" << endl;
return 0;
}
。
$ emcc helloWorld.cpp -o helloWorld.html
あなたが完了すると、ブラウザにhelloWorld.html
を開き、自分で確認してください。 Emscriptenの良いところは、私は信じて、それはなどSDLを含むデスクトップライブラリの広い範囲を、サポートしていること
アプリケーションが クロスプラットフォーム の場合、Emscriptenはそれを実行できます - 使用しているライブラリOpenGL ES 2またはOpenGL ES 2互換OpenGLコードを使用しています。 – kovacsmarcell
それはアレグロで動作します! – kovacsmarcell
https://developers.google.com/native-client/devguide/tutorial – Flexo
ですJavaScript C++インタプリタ/コンパイラを実装したり、C++コードをJavaScriptコードにコンパイルしたりすることができます。 –
@Alex:原則として、ComeはC++をCにコンパイルし、Clue(http://cluecc.sourceforge.net/)はCをJavascriptにコンパイルします。免責事項:これは実際には動作しないかもしれませんが、私はClueがComeauが出力するすべてのC機能を受け入れるかどうか、Clueの出力はどのようにブラウザポータブルであるかわからず、(最も重要なことに)この特定のアプリは確かにプラットフォーム固有のライブラリを使用しています。 –