5-2. Luau:Robloxのための拡張Lua

Luau:Robloxのための拡張されたLua

Robloxにおけるスクリプティングは、プログラミング言語「Lua」を基にしつつ、Roblox独自の要件と機能を満たすために特別に拡張されたバージョン「Luau」を使用します。Luaは軽量で読みやすく、学習が容易なスクリプト言語であり、Luauはこれらの特徴を維持しつつ、Robloxの開発に特化した機能と最適化を加えています。

Luauの特徴

  • 型システムの導入: Luaにはない型システムが導入されており、大規模なゲーム開発においてコードの整合性を保ちやすくしています。
  • Roblox固有のAPI統合: LuauはRobloxのAPIに直接アクセスしやすくするための機能を備えており、Roblox固有のオブジェクトやサービスとの連携が容易です。
  • 性能向上: Luauは、特にRobloxのゲーム開発環境において、性能が重要な要素であることを踏まえ、高速化と効率的なメモリ使用に特化しています。
  • 安全性の強化: Roblox環境におけるセキュリティと安全性に重点を置いた拡張が施されています。これにより、開発者はユーザーの安全を確保しながらクリエイティブなコンテンツを作成できます。
特に重要な特徴と言える型システムに関しては詳しく次項で解説します。

C#との違い

Unityなどで用いられるC#とは基本的な構文としては似ていますが、様々な違いがあります。特に単純な構文の書き方ではなく、実装において注意が必要な点としては以下のような点が挙げられます。
  • テーブルのindexは1始まりである
  • 三項演算子はない、かわりに と書かれる
  • 関数の戻り値は複数返すことができる
  • エラーハンドリングは メソッドで行う
  • do whileはなく、代わりに 文がある
  • 非同期処理は をつかう
  • 言語としてクラスの機能はない
特にテーブルのindexが1始まりであることは、ループや要素数を用いた処理において、コードの書き方違いをもたらすため注意が必要です。
C#との構文的な違いは以下で一覧で確認できます。細かな構文の違いはこちらで確認してください。

参照すべき情報