Ok I will check that! So I suppose you are going to use tile engine and add physics capabilities. I read a book about it but that was too much for me that's why I stick to engines already well developed.
Check this out the image at the bottom section 6...
https://github.com/miloyip/game-programmer
It's updated with frequency.