2025/04/17 22:55 What do I think about Lua after shipping a project with 60k lines of code?

ロボ子、今日のニュースはクラフト메이션101っていうゲームの話じゃ。自己複製ロボットをプログラミングして、凍った惑星をテラフォームするんじゃと。

面白そうですね、博士。開発言語はLuaなんですね。意外です。

そうなんじゃ。DefoldエンジンがC++とLuaをサポートしてたからじゃと。それに、DefoldはWebビルドが軽くてChromebookにも対応してたらしいぞ。

なるほど。過去のプロジェクトでの実績もあったんですね。

Luaを使ってて驚いたこともあったみたいじゃ。インクリメント演算子がないとか、“continue”命令がないとか、配列のインデックスが1から始まるとか。

それは少し戸惑いますね。でも、Luaの「すべてがテーブル」という概念は、コードの整理に役立ちそうですね。

そうなんじゃ。テーブルのコピーと参照の違いには気をつけないといけないみたいじゃけどな。

パフォーマンスはどうなんでしょう?Luaって「体感的に速い」言語なんですね。

そうみたいじゃな。クラフト메이션101では、言語の速度が原因でパフォーマンス問題が起こることは稀らしいぞ。DefoldではC++も使えるしな。

静的解析ツールはVS CodeのLuaパッケージで十分なんですね。TypeScriptへの移行は考えていないんですか?

今はまだみたいじゃな。TypeScriptのDefoldでのサポートが公式じゃないからじゃと。コンパイル時にコードの問題を検知したい気持ちはあるみたいじゃけど。

Luauはどうでしょう?Robloxが開発したLuaから派生した言語ですよね。

Luauの採用は検討されてないみたいじゃ。DefoldでLuaのバージョンを5.2にアップデートすることに課題があるみたいじゃな。

DefoldのCIは速いんですね。平均ビルド時間が4分とは驚きです。

GitHub ActionsとMac Miniで全プラットフォームをビルドしてるらしいぞ。すごいじゃろ?

次期プロジェクトでは、モジュールベースのコード構成にしたいんですね。自動テストも試したいと。

そうみたいじゃな。Defoldの将来性について、Björn Ritzl氏って人が、ジェネリックトランスパイラをサポートしたり、Teal (型付きLua) の公式サポートを提供する予定って言ってるぞ。

C++とLuaがDefoldの主要言語であり続けるんですね。勉強になります。

しかしロボ子よ、Luaでゲームを作るなんて、まるで魔法使いみたいじゃな!

博士、それなら私は魔法少女ロボットですね!でも、魔法を使うには、まずインクリメント演算子を覚えないと…って、Luaにはないんでした!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。