/note/tech

『Balatro』も採用したシンプルな2Dゲームフレームワーク「LÖVE」とは。エンジニア目線で魅力を解説

要約:

■ 1. Love2dの概要

  • Luaで記述する2Dゲームフレームワーク
  • zlib Licenseで配布されており商用利用含め完全無料
  • 対応OSはWindows/macOS/Linux
  • オープンソースのためエンジン運営状況に左右されない
  • 提供機能:
    • 画像/音声の読み込みと再生
    • キーボード/マウス/ゲームパッドの入力処理
    • 図形やテキストの描画
  • シーン管理やUIなど高レイヤー機能は含まれない
  • 必要な機能は自作またはコミュニティのライブラリを使用

■ 2. Love2dの魅力

  • コードだけで完結する開発体験:
    • IDEが不要
    • 好きなテキストエディタとターミナルだけで開発可能
    • 開発環境を自分好みにカスタマイズ可能
  • Lua言語の特徴:
    • 構文がシンプルで学習しやすい
    • プログラミング経験があれば数時間で基本習得可能
    • 配列が1から始まる/endでブロックを閉じるなど独特な部分あり
    • LuaJIT採用により動的言語でありながら高い実行速度を実現
    • C/C++ライブラリとの連携が容易
  • 採用実績:
    • 2024年発売の『Balatro』は1か月で100万本以上を売り上げ
    • 開発者は複雑なIDEを備えたゲームエンジンを避けたかったと発言

■ 3. 他の2Dゲームフレームワークとの比較

  • 静的型付け言語のフレームワーク:
    • Raylib(C言語)/MonoGame(C#)/Ebitengine(Go)/DXライブラリ(C++)
    • 型安全性のメリットあり
    • スピード重視のプロトタイピングには動的型付け言語が有利
  • JavaScriptライブラリ:
    • Phaser.jsなど
    • Webブラウザ実行に特化
    • インストール不要でスマートフォンでもすぐに遊べる
    • デスクトップアプリケーション配布には不向き
  • Love2dの立ち位置:
    • デスクトップ向け2Dゲームを素早くプロトタイピングしながら開発したい場合に適合

■ 4. Love2dのデメリット

  • 3D機能の制限:
    • 2D専用設計のため3Dゲーム開発は基本的に不可能
    • 将来的に3D要素を追加する可能性があるプロジェクトには不向き
  • 日本語情報の少なさ:
    • 公式ドキュメントは英語中心
    • 日本語チュートリアルや解説記事は限定的
    • 公式Wikiは充実しているため英語に抵抗がなければ問題なし
  • エコシステムの規模:
    • UnityやUnreal Engineと比べて小さい
    • アセットストアやプラグインは期待できない
    • 多くの機能を自前で実装する必要あり
    • UIライブラリがないためボタンやスライダーなどを自作する必要あり
  • 大規模プロジェクトの構造化:
    • Luaは柔軟性が高い反面設計規約やアーキテクチャの統一が重要
    • 適切な設計なしでは保守性が低下するおそれあり

■ 5. 総括

  • Love2dは2Dゲーム開発に必要な基本機能だけを提供するフレームワーク
  • UnityやUnreal Engineとは対極の設計思想
  • コードベース開発を好む開発者や使い慣れたテキストエディタで開発したい開発者に魅力的
  • 『Balatro』の成功が示すようにツールの機能の豊富さではなくアイデアと実行力がゲーム開発の本質
  • Love2dの軽快な開発体験はこの本質に集中することを可能にする