ある日、『「LÖVE」は魅力的な2Dゲーム用フレームワークなのですが、日本ではまだまだユーザーが少ない……。知名度も低いと思うので、「LÖVE」の解説記事を書いてみていいですか』と相談を受けました。
本記事の編集を担当した自分は知らなかったフレームワークでしたが、海外では人気作でも採用実績のあるとのこと。
いろいろとお話を聞いてみると興味深いものだったので、ugokuwareの渡辺氏(@UgokuWare)に「LÖVE」の魅力や向き・不向きについて語っていただきました。
ある日、『「LÖVE」は魅力的な2Dゲーム用フレームワークなのですが、日本ではまだまだユーザーが少ない……。知名度も低いと思うので、「LÖVE」の解説記事を書いてみていいですか』と相談を受けました。
本記事の編集を担当した自分は知らなかったフレームワークでしたが、海外では人気作でも採用実績のあるとのこと。
いろいろとお話を聞いてみると興味深いものだったので、ugokuwareの渡辺氏(@UgokuWare)に「LÖVE」の魅力や向き・不向きについて語っていただきました。
TEXT / ugokuware 渡辺
EDIT / 藤縄 優佑
着せ替え×ローグライクデッキ構築のゲーム『Dress the Duel』を制作している、ugokuwareの渡辺です。
本作では開発に「LÖVE(以下、「Love2d」)」を採用しているのですが、日本ではあまり採用実績がないからか、よく珍しがられます。
しかしながら海外に目を向けてみると、『Balatro』をはじめ、数々のインディーゲームがLove2dによって生み出されています。
Love2dは、私にとって「やっと出会えた」フレームワークです。最初は有名なゲームエンジンをいくつか試してみたのですが、複雑なエディタに疲れて頓挫してしまいました。
もっとコードに集中したい。エンジニアとして、自分の使う道具にはこだわりたい。そう思っていたころにLove2dに出会い、テキストエディタとターミナルだけで完結する開発体験は、まさに私が求めていたものだったのです。
Love2dのロゴ(画像は公式サイトより引用)
Love2dは、スクリプト言語であるLuaで記述する2Dゲームフレームワークです。zlib Licenseのもとで配布されており、商用利用も含めて完全無料で使用できます。対応OSはWindowsやmacOS、Linux。オープンソースのため、エンジンの運営状況に左右されることなくゲーム制作に取り組めるのも魅力です。
Love2dが提供するのは、画像・音声の読み込みと再生、キーボード・マウス・ゲームパッドの入力処理、図形やテキストの描画といった2Dゲームの開発に必要な基本機能だけです。
逆に言えば、シーン管理やUI、などといった高レイヤーな機能は含まれていません。必要なものは自分で実装するか、コミュニティのライブラリを使うことになります。
Love2dの最大の魅力は、IDE(統合開発環境)が不要で、コードだけで完結する点です。
ゲーム制作でよく耳にするゲームエンジンの多くは、専用のIDEを使うことを前提としています。ゲームを開発するために、まずそのIDEについて習熟する工程を経る必要があるのは、個人的にデメリットに感じます。
一方、Love2dはゲームのフレームワークなので、好きなテキストエディタでコードを書き、ターミナルから実行するだけ。開発環境を自分好みにカスタマイズできるのは魅力です。
2024年に発売された『Balatro』は、発売からわずか1か月で100万本以上を売り上げる大ヒット作となりました。このゲームが採用したのが、まさにLove2dです。
(画像は『Balatro』Steamストアページより引用)
『Balatro』開発者のLocalThunk氏は、Love2dを選んだ理由について「Unityやアンリアルエンジンのような複雑なIDEを備えたゲームエンジンを避けたかった」旨を、「Academy of Interactive Arts & Sciences」によるインタビューで語っています。私も同じ気持ちでLove2dを選びました。
『Balatro Creator LocalThunk Talks Inspirations and Jokers | Game Maker’s Notebook Podcast』
Love2dで使うLua言語は、学習のしやすさが大きな特徴です。構文がシンプルで、プログラミング経験があれば数時間で基本を習得できるでしょう。
ただし、JavaScriptやC#などのAlgol系のシンタックスの言語に慣れていると、最初は少しクセを感じるかもしれません。配列が1から始まったり、`end`でブロックを閉じたりと、独特な部分があります。個人的にはこの素朴な感じは好きです。
さらにLove2dはLuaJIT(Just-In-Timeコンパイル)を採用しており、動的言語でありながら高い実行速度を実現しています。また、C/C++ライブラリとの連携も容易で、必要に応じてパフォーマンスクリティカルな部分を最適化できます。
Raylib(C言語)、MonoGame(C#)、Ebitengine(Go)、DXライブラリ(C++)、Phaser.js(JavaScript)などLove2dと同じく軽量な2Dゲームフレームワークも存在します。どれが優れているというわけではなく、それぞれ利点と欠点があります。
『Stardew Valley』ではMonogame が採用されている(画像は『Stardew Valley』Steamストアページより引用)
Raylib、MonoGame、Ebitengine、DXライブラリは静的型付け言語を使用します。大規模開発などで重視される型安全性のメリットがありますが、スピード重視でプロトタイピングしながら開発するなら、Luaをはじめとする動的型付け言語を選びたいところ。
Phaser.jsなどのJavaScriptライブラリは、Webブラウザでの実行に特化しています。インストール不要で、スマートフォン上であってもすぐに遊んでもらえるのは大きな利点ですが、デスクトップアプリケーションとして配布したい場合には向きません。
私の場合は、デスクトップ向けの2Dゲームを素早くプロトタイピングしながら開発したかったので、Love2dが合っていました。
もちろん、Love2dのデメリットもあります。
最大のデメリットは、やはり3D機能の制限でしょう。Love2dは2D専用に設計されており、3Dゲームの開発は基本的に不可能です。できなくはないのですが、かなりの猛者向けです。将来的に3D要素を追加する可能性があるプロジェクトには向きません。
日本語情報の少なさも課題です。公式ドキュメントは英語が中心で、日本語のチュートリアルや解説記事は限られています。ただし、公式Wikiが充実しているので、英語に抵抗がなければ困ることは少ないです。
(画像はLove2d公式Wikiのスクリーンショット)
エコシステムの規模も、Unityやアンリアルエンジンと比べると小さいです。アセットストアやプラグインは期待できず、多くの機能を自前で実装する必要があります。
正直、私も最初はUIライブラリがなくて苦労しました。ボタンやスライダーなど、UIコンポーネントをすべて自分で作る必要があったからです。しかし、自分で実装していく過程で「イベント処理はどう設計すべきか」という理解が深まりました。車輪の再発明だったかもしれませんが、既製品を使うだけでは得られなかった学びでした。
大規模プロジェクトを扱う際の構造化もネック。Luaは柔軟性が高い反面、大規模なコードベースでは設計規約やアーキテクチャの統一が重要です。適切な設計なしに開発を進めると、保守性が低下するおそれがあります。
Love2dは、2Dゲーム開発に必要な基本機能だけを提供するフレームワークです。Unityやアンリアルエンジンのような高機能なエンジンとは対極にある設計思想で、コードベースでの開発を好む開発者、使い慣れたテキストエディタで開発したい開発者にとって魅力的な選択肢です。
一方で、3D機能の欠如、日本語情報の少なさ、エコシステムの規模といったデメリットも存在します。
しかし、『Balatro』の成功が示すように、ツールの機能の豊富さではなく、アイデアとそれを形にする実行力こそがゲーム開発の本質です。Love2dの軽快な開発体験は、この本質に集中することを可能にします。
ゲーム開発の原点回帰を求める方、新しい開発体験を試したい方は、ぜひLove2dに触れてみてください。
次回は、実際にLove2dを使ったゲーム制作チュートリアルをお届けする予定です。
「LÖVE」公式サイトugokuware代表。本業の傍らゲーム開発者としても活動中。着せ替え×ローグライクデッキ構築の『Dress the Duel』を開発しており、プログラミング・アニメーション・グラフィックの一部を自ら担当している。開発には謎多きゲームエンジン「Love2d」を愛用。好きなゲームは『Slay the Spire』『Breath of the Wild』など、ジャンルを問わず幅広く好む。
西川善司が語る“ゲームの仕組み”の記事をまとめました。
Blenderを初めて使う人に向けたチュートリアル記事。モデル制作からUE5へのインポートまで幅広く解説。
アークライトの野澤 邦仁(のざわ くにひと)氏が、ボードゲームの企画から制作・出展方法まで解説。
ゲーム制作の定番ツールやイベント情報をまとめました。
CEDECで行われた講演のレポートをまとめました。
UNREAL FESTで行われた講演のレポートやインタビューをまとめました。
GDCで行われた講演などのレポートをまとめました。
CEDEC+KYUSHUで行われた講演のレポートやイベントレポートをまとめました。
GAME CREATORS CONFERENCEで行われた講演のレポートをまとめました。
Indie Developers Conferenceで行われた講演のレポートやインタビューをまとめました。
ゲームメーカーズ スクランブルで行われた講演のアーカイブ動画・スライドやレポートなどをまとめました。
東京ゲームショウで展示された作品のプレイレポートをまとめました。
BitSummitで展示された作品のプレイレポートをまとめました。
ゲームダンジョンで展示された作品のプレイレポートをまとめました。
日本と文化が近い中国でゲームを展開するための知見を、LeonaSoftware・グラティークの高橋 玲央奈氏が解説。
インディーゲームパブリッシャーの役割や活動内容などを直接インタビューします。