I know, I know… It’s May 3rd and the engine still isn’t out. The engine is going very, very well, but I’ve had a couple of questions about the actual Corona-side plugin development and getting it to users for testing. As I mentioned, I’ve been in touch with Corona’s Brent, but the engineering side has yet to get back to me about the technical questions as of this post. I don’t want people to start feeling like this is vapourware - the coding is in excellent shape. I’m using it actively in my personal very-much-Dusk-intensive metroidvania, and it’s very stable so far. There have been a couple of delays in development since February when I announced this project, but overall it’s in good shape and is definitely getting released… at some point… I think.
Now for some cold hard facts about Dusk 1.0:
Firstly, as I think I’ve mentioned before, I actually rewrote the entire library nearly from scratch for better code practices, lower memory use, and better Lua OOP. This was actually a huge amount of work, but all the end user will see is: all the map and layer methods use colons. The overall result, however, is that the engine is lighter in memory footprint and maps load a tad faster.
Secondly, again as I’ve mentioned before, I’ve changed a lot of function names to line up more with Corona’s style. Most of these changes are either purely cosmetic (map:setTrackingLevel() -> map:setCameraTrackingLevel()), but a couple of them actually change the functionality a bit (the iterators, for example). Dusk’s core ideas and most semantics remain intact.
Thirdly, I’ve pushed quite a bit on being more “unobtrusively feature-filled”. Dusk now supports some more of Tiled’s minor features like the collision editor (alas, no animation editor yet) and now fully supports tile rotating and flipping. In addition to Tiled features, some of Dusk has been invisibly improved. For example, if you set a sprite tile’s (with “!isSprite!” property) frame to something, it will keep the frame you set when it’s erased and re-drawn rather than resetting to what Tiled originally displayed it as. There are a number of these minor features that I’ve implemented to improve Dusk’s general well-rounditude.
Lastly, documentation. Textual documentation is coming, but in the meantime I’m hard at work on a series of four- to five-minute-long screencasts demonstrating various features of Dusk and how to use them in your code. Examples of the topics I cover are the basics, Box2D physics and the collision editor, the camera system, general know-how like map structure and coordinate conversions, etc. If you have a topic you’d like me to add to this list, feel free to let me know and, if it feels like something everyone could benefit from, I’ll definitely do one on it.
Now that I’ve buttered everyone up with good news :D… let me add that I and my family are going to be on vacation until the 17th. We’ll be leaving on Friday. Hopefully this won’t be too big a deal for people. Again, the current version of Dusk is extremely stable and very feature-rich.