Heya Caleb
Great work on the engine, but I didn’t manage to get the examples that jerejigga posted earlier - is there a newer version I’m not aware of or something?
I do kinda re-iterate that I don’t consider my own stuff a physic engine, just a collision engine. I think it is a useful distinction so people have an idea of the capabilities and don’t go asking for angry-birds-in-a-platformer. Bluergh!
And don’t worry about selling your own engine, and you can probably clear up any misrepresentation I did above as I’m not fully up to speed on your engine 
I do find your comment about Dusk having an addObjectListener function to be a bit odd, but then I never fully embraced the whole event-driven model for gaming, particularly simple games like these, as it seems clunky and imprecise. I much prefer a simple, linear game engine that handles everything in a specific, guaranteed order.
From what I gather, your ladder example is that it creates the icon *as part of the engine*. That also seems strange to me, as I’d have that abstracted away from the core engine. I guess I compartamentalise more than you. My set up is, from top to bottom, something like this (so the game engine sits on top of the seperate collision engine which sits on top of the seperate level data:
Core game:
-
Game engine - including movement code (which uses the collision engine, but the collision engine does not handle actual movements itself)
-
Collision engine
-
Loading level ‘engine’ - really by this I mean the container for the level data
Visuals:
Note how the two things are entirely seperate. Things like the icons etc are dealt with in the game-specific drawing code. I myself have handled these sort of things in different ways (although the ladder for me has so far just been part of the normal movement code, there are ladder ‘tiles’, not a ladder entity). The icon could either be a normal sprite-based entity which, in its update code sets visibility based on proximity to the player entity, or (which I prefer) is a data-only entity based on rectangles set up in Tiled (I prefer this for accurate sizing, I use the same thing for doorways etc). The icon would appear when my ‘zone’ entity registers the player is inside it.
At the end of the day we may well have very similar set-ups, just with different names.
I’m curious though, do you generally have collision data tied into the *visual* tiles or, like me, have an entirely separate invisible collision layer?
Also, does your collision code support slopes etc?
One thing that is causing me headaches is proper lift behaviour. It is one thing to have a simple horizontal slab that moves around in a space where you don’t touch anything, but I want lifts that are basically just a mobile sub-set of tiles (so can have slopes etc), and that can move across other parts of the normal level, resulting in you being pushed around and potentially crushed - I’m mean like that 
I haven’t quite found an optimal solution as it often requires recursing through the various collision layers 
I should add, your final comment about creating a new engine per game-type simply shows why making the visuals seperate from other modules (particularly the collision code) is the way to go. In the demo link I posted above, the drawing engine is exactly the same regardless of whether it is the side-on or top-down part of the demo, only the control and collision changes (there’s just a seperate module for side-on and top-down collision).