A visual editor for LÖVE, that runs in LÖVE.
The basic structure is that there is, from least complex to most complex:
- Underlying Libraries specifically chosen because they do what they do the best.
- Lasagna composed of the underlying libraries, in several layers, with just enough glue to combine them meaningfully without permanently binding to a particular library for a given purpose.
- Layer 1 low-level serialization and entity-component relationships that will make networking & physics a lot easier.
- Layer 2 mid-level features that integrate with the structure provided from layer 1, such as graphic optimizations and complex rendering.
- Layer 3 high-level features, such as logging, profiling, and libraries that editor tools can take advantage of.
- A Project Structure a specially formatted love project that will enable the editor to edit it while still being permissive about its configuration.
- A Bootstrap maintained separate from the editor, allowing for running of project files as a standalone and within the editor.
- The Editor that is capable of producing project files and allowing for easy composition of a game.
Below are some example layer categories and some candidate libraries that would be nice to have in each.
- Serialization & Net: tiny-ecs, binser, trickle, hero, sock.lua
- Configuration & Time: tick, modrun, tactile
- Rendering: love.physics-visualizer, chiro, anim8, anim9, Simple Tiled Implementation, love-imgui, scene.lua, anchor.lua
- Assets: Autobatch, cargo
- Profiling: PROBE, inspect.lua, lurker, Lovebird, Lovecat, love-console, perfhud
- Logging: ansicolors, log.lua, log-lua, i18n, argparse
- Wiring: talkback, middleclass, stateful, router.lua
- Advanced Items: lume, pool.lua, memoize, LuaFun, lua-stdlib, knife, microlight, CPML, LuaDate, dkjson, LuaFFT, Worp
- Upkeep: Busted, RTFM, LDoc, lustache, semver
- High Level: lua-imgur, gyfcat, gifload, magick, sfxr, pegasus, turbo, lua-websockets, lua-sqlite3