1

ベテランの Web 開発者として、JavaScript コードは安全ではなく、縮小/難読化されているだけであることを理解しています。

ただし、多くのゲーム エンジンは、エンジン コードと顧客のゲーム コードをダウンロードして、クライアント/ブラウザで表示できるほどの自信を持っています。

-

Unity3D がどのようにそれを行うかを理解しようとして、クライアント/ブラウザーによってダウンロードされるファイルの次の内訳に出くわしました。

  • asm.js ランタイムと JavaScript プラグインを含む MyProject.asm.framework.unityweb ファイル。

  • プレーヤーの asm.js モジュールを含む MyProject.asm.code.unityweb ファイル。

  • プレーヤーのヒープ メモリを初期化するためのバイナリ イメージを含む MyProject.asm.memory.unityweb ファイル。

  • アセット データとシーンを含む MyProject.data.unityweb ファイル。

ソース: https://docs.unity3d.com/Manual/webgl-building.html

-

次に、emscripten を使用して C/C++ コードを Javascriptにコンパイルしているのを見ました。

To run in WebGL, all code needs to be JavaScript. We use the emscripten compiler toolchain to cross-compile the Unity runtime code (written in C and C++) into asm.js JavaScript. asm.js is a very optimizable subset of JavaScript which allows JavaScript engines to AOT-compile asm.js code into very efficient native code.

ソース: https://docs.unity3d.com/Manual/webgl-gettingstarted.html

-

質問:

  1. 何らかの形でJavascriptコードを保護しているのはEmscriptenおよび/またはasm.jsですか? どのように?
  2. それは安全ですか?私が本当に一生懸命やれば、このコードから何かを「盗み」、ゲームのハック/チートを書くことができます: https://files.unity3d.com/jonas/AngryBots/Release/AngryBots.js
  3. すでに JavaScript ゲームを作成している場合、Emscripten が Unity3D ゲームに対して行うことを行うにはどうすればよいですか? (#2が真であると仮定)
4

1 に答える 1