tiny-ecs (日本語)
Lua 用のエンティティ・コンポーネントシステム
Tiny-ecs は単純、柔軟、実用的な Lua 用のエンティティ・コンポーネントシステムです。 Lua の自然なタブラー(表)のために、エンティティ・コンポーネントシステムは大規模かつ複雑なシステムの模擬に対しては自然な選択です。 ゲーム・プログラミングにおいて ECS はゲームのループを簡素化するための素晴らしい方法です。エンティティ・コンポーネントシステムに関する詳しい解説は、こちらに基礎情報があります:
tiny-ecs はシステムとエンティティに対してメタテーブルを使用しないため Lua のオブジェクト指向プログラミングにて動作します。 この意味はシステムおよびエンティティをサブクラス化することができ、 tiny-ecs にて既存の Lua クラス・フレームワークを使用するため、問題はありません。
用例:
local tiny = require("tiny")
local talkingSystem = tiny.processingSystem()
talkingSystem.filter = tiny.requireAll("name", "mass", "phrase")
function talkingSystem:process(e, dt)
e.mass = e.mass + dt * 3
print(e.name .. ", who weighs " .. e.mass .. " pounds, says, \"" .. e.phrase .. "\"")
end
local joe = {
name = "Joe",
phrase = "I'm a plumber.",
mass = 150,
hairColor = "brown"
}
local world = tiny.world(talkingSystem, joe)
for i = 1, 20 do
world:update(1)
end