1) There are still some bugs. Big wow on that one. Given this was marked as an alpha, I can't say it has frustrated me with the bugs, there are fewer than I'd expect given the big undertaking that is graphics 2
2) It *works*. No show-stopping bugs. To be honest the only problem is the culling, and that is all - if it wasn't for that the demo would be running identically to what I had before (albeit a great deal quicker!).
3) The implementation of the paths for me leaves a lot to be desired. Having path be a series of offsets doesn't strike me as useful. I think it would be better to have it contain the actual image corners, which you can then modify directly. Needing to know the width and height of the image to position corners is absolutely horrible. This above all else is what I'd change as a design decision, as it is going to cause a lot of headaches in the future for people.
4) Positioning the X and Y to the top left corner is also a pain, but I only had to do this because of culling bugs (and even then I only managed to minimise it). Hopefully this wouldn't be necessary at the end, so I'm not going to lose any sleep over this.
The end result of this is instead of being able to do this, for example:
sprite.path.x1 = x1
sprite.path.x2 = x2
sprite.path.x3 = x3
sprite.path.x4 = x4
sprite.path.y1 = y1
sprite.path.y2 = y2
sprite.path.y3 = y3
sprite.path.y4 = y4
I have to do something like this:
local size = sizes[ imageName ]
local width = size.width
local height = size.height
sprite.x = x1
sprite.y = y1
sprite.path.x1 = 0
sprite.path.x2 = x2 - x1
sprite.path.x3 = x3 - x1 - width
sprite.path.x4 = x4 - x1 - width
sprite.path.y1 = 0
sprite.path.y2 = y2 - y1 -height
sprite.path.y3 = y3 - y1 - height
sprite.path.y4 = y4 - y1
Cleary more code slowing stuff down, and a probable major hindrance for any generic 3D engine.
5) I notice some jerkiness in the movement of the sprites when up close - am going to play a bit more later on to see if I am math.floor()-ing where I shouldn't, or something else. Also going to disable the pixelated draw modes - just anything I can see that might cause pixels to misbehave.