2DゲームエンジンDEFOLDの紹介

2DゲームエンジンのDEFOLDを使いはじめました。
調べた内容を少しずつまとめます。
今日は紹介だけ。

img

完全無料

「完全」の意味はよくわからないけど、やったぜ!

言語はlua

javascriptに似たゆるい言語。プログラミング初心者でも手を出しやすいと思います。
Lua - Wikipediaより

Hello World

print("Hello World")

挿入ソート

local a = {5, 3, 1, 4, 2} -- `{´と`}´はテーブルコンストラクタ
for i = 2, #a do -- `#´は長さ演算子であり、`#a´はテーブルaのサイズ(ここでは5)を返す
    for j = i, 2, -1 do
        if a[j - 1] <= a[j] then break end
        a[j], a[j - 1] = a[j - 1], a[j]
    end
end

特に癖もなく普通の言語です。

マルチプラットフォーム対応

対応プラットフォームいっぱい。 - HTML5 - Android - iOS - Steam - FB Instant Games - Windows - macOS - Linux

セットアップ不要

エディタをダウンロードしてインストールするだけで環境構築完了です。 編集画面のUIもシンプルでよさそう。 img

Message Passingが良い

ちょっと細かい話ですが、DEFOLDでは メソッド呼び出しなどのオブジェクト同士のコミュニケーション時に、オブジェクトのメソッドを直接呼ぶことができません。
その代わりMessage Passingを使い、間接的にメッセージを送る方式を使います。
こんなイメージ
通常のメソッド呼び出しDEFOLDのMessagePassingObjectAObjectBObjectAObjectB事務局動け依存なしObjectBに動いてほしいObjectAが「動いてほしい」て言ってるよ。

これによりオブジェクト同士の依存が強制的になくなります。
依存がないとオブジェクトの再利用などの最適化ができるようになります。
そこらへんの最適化はDEFOLD側で全部いい感じにやってくれます。
なので開発者はゲームのことだけ考えれば良い。
ありがたやー。

とりあえずシューティングゲームでも作ってみます。