ホーム » 技術 » [Love2dの環境設定]ゲームでも作り始めたい

[Love2dの環境設定]ゲームでも作り始めたい


本文中にアフィリエイトリンクが含まれる場合があります。
表示が乱れた場合は再ロードをお試しください。

最近、「Balatro」や「Roblox」など、Luaで作られたゲームやプラットフォームが注目されています。
その裏で使われているのが、軽くて速いスクリプト言語「Lua」と、爆速で2Dゲームが作れるエンジン「Love2D」です。

本記事では、Love2DとLuaの特徴から、実際に動かすための環境構築、そしてコードの自動反映まで、実用的なステップで紹介します。
初心者でも安心して読める内容にしているので、「ちょっとゲーム作ってみたいかも」という人にもぴったりです。

Love2dとは

Love2D(LÖVE) は、Lua言語を使って2Dゲームを作るためのオープンソースのゲームエンジンです。

「とにかく軽い」「超シンプル」「めちゃくちゃ速く動く」
そんな開発環境を求める人にはぴったりのツールです。

1. スクリプト言語「Lua」で爆速開発

Love2Dは「Lua」という軽量なスクリプト言語を使ってゲームを作ります。

  • コンパイル不要!保存してすぐ動かせる
  • 文法がシンプルで覚えやすい
  • C言語とも親和性が高い(内部的に高速)

つまり、学びながらすぐ試せる開発が可能です。

2. 導入がめちゃくちゃ簡単

Love2D公式サイトから .exe を落としてドラッグ&ドロップするだけ。

  • インストール不要(実行ファイルのみ)
  • ゲームフォルダを Love2D にドラッグするだけで起動
  • クロスプラットフォーム対応(Windows / macOS / Linux)

3. 軽い!速い!超シンプル!

Love2Dはとにかく動作が軽快。ハードに依存しにくく、レトロゲーム風の2Dゲームとの相性も抜群です。

  • 数MBで動く軽量ランタイム
  • スマホでも動くレベルの軽さ
  • 複雑な設定不要で即スタート

4. 豊富な機能と拡張性

見た目はシンプルでも、やれることは本格的。

  • 描画・画像処理・音声再生に対応
  • コリジョン、アニメーション、タイマーなどもOK
  • LÖVE用ライブラリ(HUMP, STI, Lurker, anim8など)で機能拡張可能

5. 無料&オープンソース

Love2Dは完全無料。商用利用もOK。
改造・再配布・コミュニティ参加も自由です。

love2dで作られた代表的なゲーム

公式サイトには以下のようなゲームが提示されています。

LÖVE - Free 2D Game Engine

中でも私が好きなのがbaltroというゲームです。

私はインディーズゲームが大好きで、例えば「enter the gugeon」もクリアしましたし、「slay the spire」も全キャラクターレベル20の心臓を倒すまでやりました。

もちろん、ゼルダとかマリオとかのメジャータイトルもプレイしていますが、インディーズのアイデア勝負なゲームが本当に好きです。

(fpsは壊滅的に下手です。)

baltroは中でも特にはまったゲームで、シンプルで爽快感があるゲームです。

さらに、一か月で100万本を売り上げたという記事を読んでとても夢がある分野だなということを思いました。

Balatro: How a solo developer sold more than 1M copies in one month

私はゲームを作ったことのないまま任天堂に応募して、書類で落とされた経験もあります。

子どもの時からいつかゲームを作りたいと思っていたので、ひとまず簡単なものとしてこのlove2dに触れてみることにしました。

Lua言語の特徴

lua言語ってあまり聞きなじみのないコンピュータ言語ではないですか?

私は何かを始めるときは大体書籍を買うのですが、調べてみると公式のリファレンス以外ほとんど売られていませんでした。

しかし、lua言語は「Roblox」でも採用されている言語です。

正直robloxはやったことはありませんが、世界的に勢いがある注目すべきゲーム・コンテンツの一つだと思っています。

最近見たニュースだと、

・ゲーム内で実際の商品の販売が可能

・同時接続数がfortnite越え

・googleと提携したゲーム内広告

など個人的に面白いと感じるようなニュースが定期的に流れてきます。

それに伴って、色々注目を集めてきそうな言語でもあると思います。

Lua(ルア)は、「軽量」「高速」「組み込みやすい」をモットーに設計されたプログラミング言語です。

✅ 1. とにかく軽量!

Luaは小さなバイナリ1つで動き、組み込み用途にも最適です。

  • 言語仕様がコンパクトで覚えやすい
  • 実行エンジン(Luaインタプリタ)が小さく、移植も簡単
  • C言語と相性抜群で、ゲームエンジンやIoT機器などに組み込まれることも多い

✅ 2. 高速なスクリプト言語

Luaはスクリプト言語の中では非常に速い部類に入ります。

  • テーブルベースで最適化されており、軽快に動作
  • JIT(Just-In-Timeコンパイル)対応のLuaJITを使えば、さらに高速化!

✅ 3. シンプルな文法で学びやすい

初心者にも扱いやすく、構文が直感的です。

-- 変数
name = "Lua"

-- 条件分岐
if name == "Lua" then
  print("Hello, Lua!")
end

-- 関数
function greet(person)
  print("Hello, " .. person)
end
  • インデントは自由(Pythonのような縛りなし)
  • 「クラス」はないが、テーブルとメタテーブルでオブジェクト指向風の書き方も可能

✅ 4. ゲーム業界での採用実績が豊富

Luaは多くの商用ゲームエンジンやミドルウェアに搭載されています。

  • Love2D:2Dゲーム制作に特化したエンジン(完全にLuaベース)
  • Roblox:Luaをカスタマイズした言語が採用されている
  • World of Warcraft:ゲーム内UIやアドオンにLuaを使用
  • Celeste, CryEngine, Garry's Modなどでも使用

✅ 5. C言語と簡単に連携できる

C/C++で作った処理の一部をLuaから呼び出す、またはLuaで書いたロジックをCから使うことが可能です。

  • 重たい処理はC/C++で書き、柔軟な処理はLuaに任せる

環境設定から動作確認まで

このページでは環境設定から動作確認までを目的としています。

細かいコードの説明は他の機会でまとめようと思います。

インストール

まずはインストールです。以下のリンクからできます。ご自身の環境に合わせたものをインストールしてください。

LÖVE - Free 2D Game Engine

動作確認

基本的に作ったフォルダをインストールしたlove.exeドラッグ&ドロップすることでビルドすることができます。

しかし、開発となると毎回その作業をするのは面倒なので、高速に変更を反映できるようにしていきたいと思います。

ビルドしないで変更を反映

以下のリンクからluker.luaとlume.luaをインストールします。

rxi/lurker: Auto-swaps changed Lua files in a running LÖVE project

raw.githubusercontent.com/rxi/lume/master/lume.lua

そして、今回は動作確認なので適当なフォルダ、例えばtestなどをつくり同じように配置してください。

main.luaは以下のようなコードを貼り付けます。

local lurker = require "lurker"

function love.load()
    lurker.preswap = function()
        print("🔁 ファイル変更を検知、リロード中...")
    end

    player = {
        x = 100,
        y = 100,
        size = 50,
        speed = 200
    }
end

function love.update(dt)
    lurker:update()  -- ★ これが重要!

    if love.keyboard.isDown("right") then
        player.x = player.x + player.speed * dt
    elseif love.keyboard.isDown("left") then
        player.x = player.x - player.speed * dt
    end

    if love.keyboard.isDown("down") then
        player.y = player.y + player.speed * dt
    elseif love.keyboard.isDown("up") then
        player.y = player.y - player.speed * dt
    end
end

function love.draw()
    love.graphics.setColor(1, 0, 0)
    love.graphics.rectangle("fill", player.x, player.y, player.size, player.size)

    love.graphics.setColor(1, 1, 1)
    love.graphics.print("ki-", 10, 10)
end

そしたらビルドしてみましょう。

love.exeに作成したフォルダごとドラッグ&ドロップするかターミナルでフォルダに移動してビルドしてみましょう。

cd test
love .

以下のような表示が出たら成功です。

適当にコードをいじって保存すると、結果が反映されると思います。

vscodeの設定

次にビルドをvscode上でできるように設定していきます。

もちろん、vscodeでなくても開発はできますが、私が使っているので書きます。

Visual Studio Code - Code Editing. Redefined

いまだにvscodeの能力の30%くらいしか活用できていないような気がします。

まずは、以下の拡張機能をインストールします。

次に環境変数の設定をします。

環境変数を開いて、path→編集→新規からlove2dのインストールした場所を指定します。

何もいじっていない場合は、C:\Program Files\LOVEとかだと思います。

vscodeを一度閉じて設定を反映させます。

そしたらもう一度開き、Ctrl + Shift + B(ビルドショートカット)を押します。

上手くpathが通っていたら、先ほどと同じようなウィンドウが開くと思います。

 まとめ:LuaとLove2Dで、今すぐゲームを作りはじめよう!

  • Love2Dは超軽量で爆速、Luaを使ってゲームがすぐに作れるエンジンです。
  • 導入が簡単で、ファイルをドラッグ&ドロップするだけでゲームが動く。
  • スクリプト言語Luaは軽量&高速。ゲーム開発はもちろん、組み込みやRobloxでも採用される注目言語。
  • Balatroのようなインディーゲームが世界的ヒットを記録する時代。個人でも夢がある。
  • VSCodeやLurkerなどを活用すれば、ホットリロード開発も可能で、ストレスなくコードを書ける。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です