タグ付けされた質問 「scripting」

プログラミングの一種で、多くの場合、「従来の」プログラミングよりも学習が容易です。スクリプトは、パフォーマンスが使いやすさほど重要でない場合によく使用されます。スクリプト言語の例は、Javascript、Lua、Perl、Python、およびPHPです。スクリプト言語はコンパイルされる代わりに解釈されることが多いため、マシンコードを生成せずに直接実行できます。

6
開発でスクリプトを使用する理由
私の現在のプロジェクトでは、Luaスクリプトはサーバー側のC ++関数によって呼び出されます。その後、スクリプトは再びそのソリューションにまだあるC ++関数を呼び出します。なぜ私たちはそのようなことをすべきで、C ++関数を直接呼び出さないのですか?スクリプトが必要な状況は何ですか?
67 scripting 

6
Luaはゲームのスクリプト言語としてどのように機能しますか?
私は、Luaが何であるか、C ++でプログラムされたゲームがそれをどのように使用するかについて少しhaんでいます。私は主にそれがどのようにコンパイルされ実行されるかについて尋ねています。 たとえば、Luaスクリプトを使用するC ++で記述されたプログラムを使用する場合:Luaのコードは、C ++で記述されたメインプログラムの関数を呼び出し、コンパイルされてC ++のメモリヒープに追加されるのを待機している未コンパイルクラスとして機能しますプログラム? それとも、メインプログラムとは完全に分離したプログラムを実行するだけのLinuxのbashスクリプトのように動作しますか?
67 c++  scripting  lua 


6
ゲーム内でプログラミングを可能にするテクノロジーとは何ですか?
プレイヤーがゲーム内でスクリプトを記述/作成できるゲームがいくつかあります。たとえば、スペースエンジニアやPsiです。 どちらかと似たものを使いたいのですが、情報を見つけるのに苦労したので、私の質問は: ユーザーが作成した新しいコードを実行するためにコンパイルされたソフトウェアの機能をカバーするプログラミングのブランチはありますか? プログラミングのブランチとは、PTG(手続き型地形生成)のようなものを意味します。 質問や意見が広すぎるのを避けるために、ガイドや学習する場所を探しているのではなく、関連する技術の名前または定義(存在する場合)を求めています。


7
Unityでタイトなスクリプトカップリングを回避するにはどうすればよいですか?
しばらく前に、Unityの使用を開始しましたが、依然として密結合スクリプトの問題に苦労しています。この問題を回避するためにコードをどのように構成できますか? 例えば: 健康と死のシステムを別々のスクリプトに入れたいです。また、プレイヤーキャラクターの移動方法を変更できるさまざまな交換可能なウォーキングスクリプトが必要です(マリオのような物理ベースの慣性コントロールと、スーパーミートボーイのようなタイトでぴくぴくしたコントロール)。ヘルススクリプトは、プレイヤーのヘルスが0に達したときにDie()メソッドをトリガーできるように、デススクリプトへの参照を保持する必要があります。デススクリプトは、使用中のウォーキングスクリプトへの参照を保持して、ゾンビにうんざりしている)。 私は考え、通常のように、インターフェースを作成しIWalking、IHealthそしてIDeath私は自分のコードの残りの部分を壊すことなく、気まぐれで、これらの要素を変更することができるように、。たとえば、プレーヤーオブジェクトの個別のスクリプトでセットアップしますPlayerScriptDependancyInjector。おそらく、そのスクリプトにはpublic IWalking、IHealthおよびIDeath属性があり、適切なスクリプトをドラッグアンドドロップすることで、レベルデザイナがインスペクタから依存関係を設定できます。 これにより、ゲームオブジェクトにビヘイビアを簡単に追加でき、ハードコードされた依存関係を心配する必要がなくなります。 Unityの問題 問題はユニティで、私はインスペクタでインタフェースを公開することができないということである、と私は私自身の検査官を書いた場合、参照が連載を取得文句を言わない、そしてそれは、不必要な多くの作業です。だからこそ、密結合されたコードを書くしかありません。私のDeathスクリプトは、スクリプトへの参照を公開していInertiveWalkingます。しかし、プレイヤーキャラクターにきめ細かく制御させたい場合、TightWalkingスクリプトをドラッグアンドドロップすることはできませんDeath。スクリプトを変更する必要があります。ひどい。対処できますが、このようなことをするたびに魂が泣きます。 Unityのインターフェイスの代替として望ましいものは何ですか?この問題を修正するにはどうすればよいですか?私はこれを見つけましたが、すでに知っていることを教えてくれ、Unityでそれを行う方法を教えてくれません!これも、どのように行うべきかを説明するものであり、方法ではなく、スクリプト間の密結合の問題に対処するものではありません。 全体として、ゲームデザインのバックグラウンドを持ってUnityに来た人のために書かれたものだと感じています。Unityには通常の開発者向けのリソースはほとんどありません。Unityでコードを構造化する標準的な方法はありますか、それとも独自の方法を見つけ出す必要がありますか?
24 c#  unity  scripting 

6
独自のスクリプト言語の実装は実行可能ですか?
私はC ++でビートゲームをコーディングしており、イベント、トリガー、カットシーンなどのスクリプトを実装するときが来ました。インターネットで読み回して、かなりの情報を得ました。私の最初の選択ソリューションは、Cave Storyのような独自のスクリプト言語を実装することです。私はこれが示唆されているのを見ましたが、ほとんどの人はluaを示唆していますが、それは私のタイプのプログラミングに合わないようです。 独自のスクリプト言語を作成しましたか?既存のものを使用する代わりに、独自のロールを選択したのはなぜですか?開発中にどのリソースに相談しましたか?
21 scripting 

3
ゲームにスマートスクリプトを実装するにはどうすればよいですか?
ゲームエンジンを開発しています。エンティティ/コンポーネントベースのものであると想定されています。ゲーム自体を開発するために、スクリプト言語を使用してエンティティを実際に作成することを考えました。 たとえば、プレイヤーに攻撃的な種類のモンスターを追加したい場合、それはいくつかのコンポーネントを持つエンティティになります。これらのコンポーネントはモンスターの種類によって変わるため、ゲーム内に100種類のモンスターがいる場合、ゲームコードでそれらのそれぞれに対して新しいメソッドを直接作成する必要はありません。 コンポーネントの観点から、このエンティティを記述するためにスクリプト言語を使用する必要がありますか?より一般的には、ゲームでスクリプトを使用するにはどうすればよいですか?

4
コード全体で1回限りのフラグとチェックを回避するにはどうすればよいですか?
Hearthstoneなどのカードゲームを検討してください。 多種多様なことを行う何百ものカードがあり、そのうちのいくつかは単一のカードにさえユニークです!例えば、プレイヤーのターンをわずか15秒に短縮するカード(Nozdormuと呼ばれる)があります! このようなさまざまな潜在的な効果がある場合、コード全体でマジックナンバーと1回限りのチェックを回避するにはどうすればよいですか?PlayerTurnTimeクラスの「Check_Nozdormu_In_Play」メソッドをどのように回避できますか?そして、さらに多くの効果を追加するときに、以前はサポートする必要がなかったものをサポートするためにコアシステムをリファクタリングする必要がないように、どのようにコードを編成できますか?

4
ゲームエンジン:スクリプティングサポートを実装するための適切なアーキテクチャ上の方法?
単純なゲームエンジン(C#で、重要な場合)を開発していますが、アーキテクチャの観点からスクリプトを実装するのに十分な方法は考えられません。 これは、戦闘用のロジックに依存しないカスタムアニメーションを使用したシンプルなターンベースの戦略です。これには、システム/低レベルのもの用のグローバルアーキテクチャレイヤーがあり、最も重要なのは、イベントマネージャーを使用して通信する2つの主要なモジュール(ロジックとゲームビューのもの)です。 そして事は、スクリプトがゲームロジックに関連するもの(ユニットパラメーターの変更など)とゲームビューに関連するものの両方に影響を与えたいと思うことです。特定のスクリプトトリガー。 (正直なところ、理想的には、スクリプトでゲームフローを制御し、コアメカニックス/グラフィックスのみをロジック/ビューに任せたいのですが、私はこれが初めてなので、今すぐにできるかどうかわかりません) 私は3つのオプションを考えてきました: スクリプトをロジックで実行するだけで、ゲームのグラフィカルな側面を知らせます。しかし、これによりロジック/ビューの区分が非常に曖昧になりますよね... スクリプトを、同じイベントマネージャーを使用して他のユーザーとイベントを交換する別のモジュールにします。しかし、これにはイベントの同期に非常に注意する必要があると思います...そして、マネージャーに膨大な種類のイベントを追加します。(それでも個人的なお気に入り) 何よりもスクリプトをモジュールにして、ロジック/ビューの機能に直接影響を与える/呼び出すことができるようにします。これにより、イベント交換スキーム全体を台無しにして、スクリプトが実際にそうすべきではない場合でも物事を壊すことを恐れて、本質的に幅広い機能が可能になります。 したがって、これらのいずれかを決定することも、スクリプトモジュールを挿入するためのより良い方法を考えることもできません...提案や有用なリンクはありますか? ありがとうございました! 質問を移行してくれてありがとう、gamedevに特化したセクションがあることを知りませんでした

6
C ++ゲームプロジェクトに推奨するスクリプト言語は何ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 5年前に閉鎖されました。 ここでスクリプトを作成するということは、構成データをスクリプトに入れるだけでなく、一部のクラスメソッド、特定のゲームループなどのプロジェクトの一部をスクリプト化することを意味します。これは開発を加速するだけでなく、プレイヤーがこれらの一部を見ることができるようにすることですゲームのいくつかの側面を調整するスクリプト。 Luaのような一部の言語にはluabindのようなラッパーがありますが、過去に使用した場合、継承のコンテキストでメソッドの再定義をサポートしていないため問題がありました。 使用する/使用しない言語/ラッパーの提案は何ですか?

2
MMOクエストの仕組みを実装するためのヒントは?
以下にリストされている要件を満たしたクエストの仕組みを実装するには、どのツール、パターン、またはベストプラクティスをお勧めしますか ソフトウェアアーキテクチャ(一般的な方法)とオブジェクトワイヤリング、イベントサブスクリプション、および条件の表現の選択肢について説明しています。使用に成功したツール/ライブラリについて言及してください。 編集:スクリプトを使用している場合、どのような設定をお勧めしますか? 要件: シンプルな2D mmo(rpg) クエストを含むすべてのゲームデータは、リレーショナルデータベースに保存されます ゲーム内のイベントは、プレイヤーの新しいクエストまたは既存のクエストの前進を引き起こす可能性があります クエストは、プレイヤーがクエストを利用できるようになる前に満たさなければならない任意の数の条件を持つことができます クエストは、任意の条件を持つ任意の数のサブクエスト/ステップで構成できます クエストはシンプルから Aと話す-5人を殺すB-Aと話す-永久に健康を増進する 非常に関与する: エリアXのアイテムを使用-エリアYに移動-ボットが出現します-10%以上のダメージを与えることなくボットを殺します-ボットがアイテムをドロップします-アイテムを受け取ります-ポータルのロックを解除します-ポータルの背後のJにアイテムを配信します-ゴールドと経験を受け取ります-もう一度ポータルを渡すことができます-このプレイヤーのポータルをロックします レベルインスタンスは可能性があります(プレーヤーはチームまたは特定のクエストを完了することができ、それらの参加者だけにレベルの場所をスポーンします) クエストは、できればスクリプトやプログラミングの知識がなくてもワールドエディターを使用して管理できる必要があります(編集:一般的にはスクリプトに反対しません) 実装言語としてC ++を想定しています イベントと条件のチェーンを組み合わせることができれば、より複雑な、したがってより魅力的なクエストをモデル化できると考えていました。独自のECA(イベント-条件-アクション)エンジンをローリングして実験しましたが、それはやり過ぎかもしれません。スクリプトを使用せずに一般的な条件をモデル化することは特に困難でした。

6
コア言語ではなく、ゲームで「スクリプト」または「スクリプト」を使用するのはいつですか?
スクリプトとスクリプトという用語はGame Development Stack Exchangeで同じ意味で使用されているように見えますが、スクリプト言語の選択に関する質問を読んでいる以外に、スクリプトとスクリプト、およびコア言語の関係がわかりません。スクリプトは通常、どのようなときに使用されますか?また、(ゲームプログラマーによって定義された)いくつかのコンテキストのスクリプトはスクリプト言語とは異なりますか?
13 scripting 

3
スレッディングなしのスクリプティングとシネマティクス
ゲームエンジンにスクリプトを実装する方法に苦労しています。いくつかの要件があります。直感的である必要があり、カスタム言語、パーサー、インタープリターを記述したくない、スレッドを使用したくない、などです。(もっと簡単な解決策があると確信しています。複数のゲームロジックスレッドの面倒は必要ありません。)Pythonのスクリプトの例(別名擬似コード): def dramatic_scene(actors): alice = actors["alice"] bob = actors["bob"] alice.walk_to(bob) if bob.can_see(alice): bob.say("Hello again!") else: alice.say("Excuse me, Bob?") ストーリーテリングの壮大な部分は、実装の問題を引き起こします。walk_toゲームの時間がかかるため、メソッド全体を一度に評価することはできません。すぐに戻ると、アリスはボブに向かって歩き始め、(同じフレームで)挨拶(または挨拶)します。しかし、walk_toBobに到達したときに戻るブロッキングコールは、アリスが歩くのと同じ実行スレッドをブロックしているため、ゲームが停止します。 各機能をアクションにalice.walk_to(bob)キューに入れることを検討しました- オブジェクトをキューにプッシュし、アリスがどこにいてもボブに到達した後にポップされます。それはもっと微妙に壊れています:ifブランチはすぐに評価されるので、ボブがアリスに背を向けても挨拶するかもしれません。 他のエンジン/人は、スレッドを作成せずにスクリプトをどのように処理しますか?私は、jQueryアニメーションチェーンなど、ゲーム開発者以外の領域でアイデアを探し始めています。この種の問題にはいくつかの良いパターンがあるはずです。
12 scripting 

7
スクリプト用のドメイン固有言語[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた3年前。 ほとんどの人が知っているように、LuaやPythonなどの言語の組み込みインタープリターはゲームロジックのスクリプト作成に広く使用されていますが、スクリプトにドメイン固有の言語を使用している人、たとえば小さなロジックスクリプト作成方言の作成に関する情報はあまり見ていません'ゲームの残りの部分で使用される言語の上に、マクロまたは流fluentなプログラミングなどを使用します。 私の質問は次のとおりです。 実際のゲームでそのようなDSLの例を見たことがありますか? どのような問題に遭遇しましたか? 他のゲーム開発者にどのような状況でこのルートをお勧めしますか? ゲーム開発がメタプログラミングに適した言語(Booなど)に移行するにつれて、これがより一般的になると思いますか?
12 scripting 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.