Quick update on engine progress:
I’ve created a “data structure” called a Twindex - named because of its two almost identical index lookup tables - that allows for quick X,Y position lookups. It’s based on the idea that if you can iterate only through the X,Y positions that actually have something in them, things will work a lot faster. For example, if you are iterating through 24 cells each frame, but only 2 of them actually have something in them, you could actually just do those two and achieve the same effect.
Anyhow, things are looking good - Twindex implementation’ll take a while, but it should be worth it, I think 
Quick question for the community:
Which is better, a single-file tile engine with all the code in one Lua module or a folder with cleaner code but more files? I’m wondering whether Ceramic should be split up into multiple files or not - all usage would be exactly the same, you’d just require() it with
[lua]
local ceramic=require(“Ceramic.Ceramic”)
[/lua
EDIT: If no one has a preference, I think I’ll split things up to get the code cleaner and less overwhelming.