回答:
両方、一般的に。スクリプトは、エンジン自体ではなく、抽象化された、または少なくとも中間の機能層と通信する必要があります。
まず、これは制御とセキュリティの追加の測定を提供します。これにより、スクリプトがゲームで使用できるインターフェイスを簡単かつ明確に定義できるため、スクリプトが不正に機能する可能性があります。また、中間で適切でないセキュリティチェックを後で実行できるようにすることもできます。実際の機能層自体。
2つ目は、スクリプトに公開されているインターフェイスを簡素化して、プログラマーにとってより使いやすくするか、一般的に使いやすくすることです。
これは、2つの間の結合に対する断熱材のビットを提供していますが、それは多くの場合ではないことを大きなAの契約スクリプトは、常に彼らはその性質上、との対話が許可されているインタフェースに結合されますので。他の2つのポイントははるかに有益です。
私の意見では、修正の作成に使用されるゲームのコアとスクリプトの間にレイヤーを作成する必要があります。
この方法を使用すると、いくつかの利点があります。
modderの方が簡単:
これを行うのに十分な理由は、あなたが言ったように、modを作成する簡単な方法です。コードの行数を減らすと、読みやすさが増し、初心者のプログラミングに関する問題の理解が最小限になります。理想的には、このAPIは、ゲームの高レベルで何かを変更するためのメソッドのコレクションである必要があります。これはたとえば、エンティティが実際にどのように生成されるのかを知らずにエンティティを生成する、またはパラメータとして画像名のみを使用する1回の呼び出しで画像を表示することを意味します。
プログラマーとしても、Javaで必要とするよりも短い時間で多くのことを書くことができるので、プログラマーとしてのメリットもあります。
セキュリティ:
人々がゲーム全体を制御できないようにすることは不可欠です。ゲームがシングルプレーヤーのタイトルになるかどうかは気にしませんが、ゲームにマルチプレーヤーアクションがある場合は気にします。ハイスコア表だけでも。
他の人々は、不正行為のために誰かが勝つと、常にイライラします(例:位置の変更、より具体的には、位置の変更と直接のフラグキャッピング)。プレイヤーがそうしないようにすることは、ここでの主なタスクです。
詐欺師はいつでもこのクライアントで逆コンパイル、コードの変更、再コンパイル、再生できるため、サーバー側でチェックを追加することに注意してください。一般に、提供される「セキュリティ」は、詐欺師の生活を困難にする100%安全なオプションではなく、もう1つのオプションにすぎません。