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

Luaは、強力で高速、軽量、埋め込み可能なスクリプト言語です。Luaはゲームプログラマーによってスクリプト言語として広く使用されています。これはおそらく、埋め込みがいかに簡単で、実行が速く、学習曲線が短いためでしょう。

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

5
LuaをC ++ゲームに組み込むことの長所と短所は何ですか?
私にはC ++ゲームプログラミングの本があり、その中にLuaセクションがあります。Luaセクションを読み始めましたが、面白いように聞こえますが、C ++ゲームでLuaを使用することの長所と短所を判断することはできません。私が現在考えることができる唯一の利点は、再コンパイルすることなく、Luaを介してコーディングの更新を行うことができることです。それ以外は、何も考えられません。それでは、C ++ゲームにLuaを追加することの長所と短所は何ですか? 例をいただければ幸いです。
37 lua 

6
モバイルデバイスのゲームロジックにLuaを使用する必要がありますか?
上記のように、 暇なときにAndroidベースのゲームを書いています(Androidは無料で、商業的なことをしたいという本当の願望がないため)。 ゲームロジックは、エンティティが存在し、コンポーネントがアタッチされ、メッセージをやり取りして物事を実現する非常に典型的なコンポーネントベースのモデルに基づいています。 明らかにそれを実際に実行するためのレイヤーは薄く、このアプリのiPhoneバージョンを作成する場合、Objective Cで(このコンポーネントベースのシステムの)レンダラーとコアドライバーを書き直す必要があります。 エンティティは、追加するコンポーネントの名前を決定する単なるフラットファイルであり、コンポーネント自体は、エンティティのロジックを含む単純な単一目的のオブジェクトです。 今、これらのコンポーネントのすべてのロジックをJavaで記述した場合、iPhoneに移植することにした場合は、Objective Cでそれらを書き直す必要があります。アプリケーションロジックの大部分はこれらのコンポーネントに含まれているため、理想的な世界では、プラットフォームに依存しない言語/スクリプト/ DSLで記述され、どのプラットフォームのアプリにもロードできます。 しかし、これは理想的な世界ではなく、モバイルデバイスでのLuaのパフォーマンスなどはまだゼロではないこと、オーバーヘッドが大きすぎること、後で問題が発生することを信じるようになりました。そのルートを下った? これは実際にそうですか?明らかにこれは単なる架空の質問であり、Javaで簡単に作成できるので、すべてをJavaで書いてうれしいですが、実際にこのゲームを作るのは楽しいと言っていますさまざまなモバイルデバイスで)商業的に実行可能なゲームを作りたかった-Luaを使用するのか、それとも移植の際にヒットしてすべてのコードを書き直すのか
33 android  lua  mobile  porting 

7
PCおよびXBox 360開発用のC#で動作するLua APIはありますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 去年閉鎖されました。 ゲーム開発に関する本を読んでいます。Luaでゲームのスクリプトを作成する方法を示しています。彼らはLuaをプログラムしてC ++から使用しますが、C#からLuaを使用するライブラリまたはAPIがあるのではないかと考えていました。特にXNAからPC および XBox 360 向けのゲームを開発するには?
18 c#  xna  lua  xbox360  pc 

4
特定のエリアの建物を手続き的に生成する
私とチームは、ゲームの開始時にプレイヤーにランダムなファクトリーを提供するファクトリービルダーゲームに取り組んでいます。「公平性」の感覚を確保するために、ランダムに生成されたファクトリーは、(プレースホルダー値)30の数単位以内の領域を持つことが理想です。 これらの仕様を満たすために基本的なランダム長方形ジェネレーターを書くのは比較的簡単ですが、私たちの目標は、おそらく2、3、または4つの交差する長方形で構成される工場をより複雑にし、より複雑な形状を生成することです(L U、およびO形の建物)。 ランダムな長方形を生成し、基本的な代数を使用して2番目の長方形を埋めようとしましたが、これまでのところ2つ以上の長方形を実装することはできませんでしたが、それでも2つの長方形のデザインの結果に満足できませんでした。 より関連性の高い情報:2Dトップダウンメカニックの一部はファクトリースタイルであるため、部屋には適切な長さと幅を持たせて、現在JavaとLuaで使用できるようにします(必要に応じて、いずれかの組み込みライブラリを使用できます) 前もって感謝します! 編集:「良い」または「悪い」出力を言うと、悪い出力は、プレーヤーが使用できないスペースがある出力になります。工場の形状は、プレーヤーがコンベアベルトなどの工場の機械を配置できる場所を制限します。理想的には、工場には幅が1〜2ブロックしかない領域はなく、形状は1〜2ブロックの線が1辺に「垂れ下がる」1つまたは2つの大きな長方形であってはなりません。適切な出力は、すべての床面積が「実行可能」であるため、すべての領域が少なくとも3〜4ブロック幅です。優れた出力は必ずしも複雑である必要はありません(1つまたは2つの長方形でも構いません)が、1-2を超える長方形で構成される場合は、かなりのチャンスがあるはずです。

2
LuaとLÖVEの良いチュートリアル[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 3年前に閉店しました。 私は非常に単純な2Dのゲームを作りたい、との良いことをたくさん読んでてきた愛を、私はそれを試してみたいので、。しかし、良いチュートリアルを見つけることができないようです。LÖVEページにあるものは構造化されておらず、Mathew Caspersonが見つけたもう1つはあまり有用ではありません。誰もがより良いチュートリアルを知っていますか?
13 lua  love2d 

5
C ++からLuaを使用するための推奨ライブラリは何ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 5年前に閉鎖されました。 現在、2DゲームエンジンにLuaスクリプトを統合する方法を計画しています。C++クラスとオブジェクトを公開するための最も適切なソリューションに直行したいと思います。 私はこれを読みました(あなたが助けてくれるなら):http : //lua-users.org/wiki/BindingCodeToLua お勧めのより良いスクリプト言語がある場合は、それを選択してください; D すべての助けを歓迎します、私は感謝の実装を開始するための最良のソリューションをピックアップする必要があります
13 c++  lua 

8
Lua用のLove2Dエンジン。3Dはどうですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 6年前に閉鎖されました。 Luaの学習は本当に素晴らしく、とても簡単です。私はスクリプト言語を本当に楽しんでおり、Pythonを学ぶのも同様に楽しい時間でした。 Loveエンジン、http://love2d.org/は本当に素晴らしいですが、3Dも処理できるものを探しています。Luaで3Dに対応するものはありますか?とにかくLOVEのパーティクルシステムに興味があり、パーティクルライティングを使用して私のアイデアを2Dプロジェクトに変えることができます。 編集:Pythonに関するコメントを削除しました-これをLuaトピックにしたいです。ありがとう
13 3d  lua  love2d 

6
ゲームの状態管理(ゲーム、メニュー、タイトル画面など)
基本的に、これまでに作成したすべてのゲームで、「current_state」のような変数が常にあります。これには、「game」、「titlescreen」、「gameoverscreen」などがあります。 そして、私のUpdate関数には、巨大なものがあります: if current_state == "game" game stuf ... else if current_state == "titlescreen" ... しかし、私はこれが専門的できれいな状態の扱い方だとは思いません。これをより良い方法で行うためのアイデアはありますか?それともこれが標準的な方法ですか?

2
コンポーネントベースのエンティティシステムでのスクリプト化された「ネイティブ」コンポーネントの処理
私は現在、コンポーネントベースのエンティティシステムを実装しようとしています。エンティティは基本的に単なるIDであり、いくつかのコンポーネントを束ねてゲームオブジェクトを形成するヘルパーメソッドです。そのいくつかの目標は次のとおりです。 コンポーネントには状態のみが含まれます(例:位置、ヘルス、弾薬数)=>ロジックは「システム」に入り、これらのコンポーネントとその状態(例:PhysicsSystem、RenderSystemなど)を処理します 純粋なC#とスクリプト(Lua)の両方でコンポーネントとシステムを実装したいと思います。基本的に、C#ソースを再コンパイルすることなく、完全に新しいコンポーネントとシステムをLuaで直接定義できるようにしたいと考えています。 これを効率的に一貫して処理する方法についてのアイデアを探しているので、たとえば、C#コンポーネントやLuaコンポーネントにアクセスするために別の構文を使用する必要はありません。 私の現在のアプローチは、通常のパブリックプロパティを使用してC#コンポーネントを実装することです。おそらく、エディターにデフォルト値などを伝えるいくつかの属性で装飾されています。次に、C#クラス "ScriptComponent"を作成します。これは、Luaテーブルを内部でラップするだけで、このテーブルはスクリプトによって作成され、特定のコンポーネントタイプのすべての状態を保持します。コンパイル時にはわからないので、C#側からはその状態にあまりアクセスしたくないのですが、どのScriptComponentsにどのプロパティを使用できるかはわかりません。それでも、エディターはそれにアクセスする必要がありますが、次のような単純なインターフェースで十分です。 public ScriptComponent : IComponent { public T GetProperty<T>(string propertyName) {..} public void SetProperty<T>(string propertyName, T value) {..} } これは単にLuaテーブルにアクセスし、Luaからこれらのプロパティを設定および取得するだけで、純粋なC#コンポーネントにも簡単に含めることができます(ただし、通常のC#プロパティをリフレクションなどで使用します)。これはエディターでのみ使用され、通常のゲームコードでは使用されないため、ここではパフォーマンスはそれほど重要ではありません。特定のコンポーネントタイプが実際に提供するプロパティを文書化したコンポーネントの説明を生成または手書きする必要がありますが、それは大きな問題ではなく、十分に自動化できます。 しかし、Lua側からコンポーネントにアクセスする方法は?たとえばgetComponentsFromEntity(ENTITY_ID)、「ScriptComponent」を含むネイティブのC#コンポーネントの束をユーザーデータとして取得することになるでしょう。ラップされたLuaテーブルから値GetProperty<T>(..)にアクセスすると、他のC#コンポーネントのようにプロパティに直接アクセスする代わりに、メソッドが呼び出されます。 おそらくgetComponentsFromEntity()、Luaからのみ呼び出される特別なメソッドを記述します。これは、代わりにラップされたテーブルを返す「ScriptComponent」を除いて、すべてのネイティブC#コンポーネントをユーザーデータとして返します。しかし、他のコンポーネント関連のメソッドがあるので、C#コードまたはLuaスクリプトから呼び出されるために、これらのメソッドをすべて複製したくありません。 最終的な目標は、ネイティブコンポーネントとLuaコンポーネントを区別する特別なケース構文なしで、特にLua側から、すべてのタイプのコンポーネントを同じように処理することです。たとえば、次のようなLuaスクリプトを記述できるようにしたいと思います。 entity = getEntity(1); nativeComponent = getComponent(entity, "SomeNativeComponent") scriptComponent = getComponent(entity, "SomeScriptComponent") nativeComponent.NativeProperty = 5 scriptComponent.ScriptedProperty = 3 スクリプトは、実際に取得したコンポーネントの種類を気にする必要はありません。C#側から使用するのと同じメソッドを使用して、コンポーネントを取得、追加、または削除します。 たぶん、そのようなエンティティシステムとスクリプトを統合するいくつかのサンプル実装がありますか?


4
Luaエンティティの作成/管理に優れたゲームエンジン[終了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 Luaまたは他のスクリプト言語を使用してエンティティを構築するエンジンを探しています。これは、インスピレーションを見つけて自分のエンジンでも行うためです。 CryEngineはエンティティを作成するためにLuaを使用することを知っていますが、他に検索できる代替策があるかどうかを知りたいと思っていました。 ありがとう!

2
Luaスクリプトを使用してMMOサーバーのゲームロジックを定義すると、C ++でコンパイルするよりもはるかに遅くなりますか?
MMOサーバーにエンティティシステムを使用していて、Luaスクリプトを使用して「アクション」の動作を定義することを考えていました。サーバーはC ++で書かれています。C ++でのLuaの速度/メモリの使用法についてはあまり詳しくありませんが、クライアントのGUIのスクリプト作成に使用しています。Luaを使用してサーバー側でゲームロジックを定義すると、パフォーマンスが大幅に低下しますか?
10 mmo  lua  server 


2
PythonのようなゲームプログラミングのスタンドアロンとしてのLua?
私は以前にPyGameでPythonを使用してゲームを作成したことがありますが、PyGameはそれほど人気が​​高いとは思えないため、多くの優れたリソースが存在しません。Luaが他の言語で作成されたプロジェクト内で使用される高速スクリプト言語であるという噂はよく耳にします。 私ははるかに速く作業し、Pythonであるより高いレベルのプログラミングを楽しんでいるため、自然に私はLuaにつながります。私はそれがしばらく前からあったことを知っていますが、WoWアドオンの作成がそれをより人気にしたと思います。 Luaは、2Dまたは3Dライブラリを使用してスタンドアロン言語としてゲームを独自に作成できますか、それとも実際にはLuaドメインではありませんか? ここではPythonの3Dについて質問するつもりはありません。そのために新しい質問をします。ありがとう!

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