After getting inspiration from reading this forum and the Sonic Physics Guide I've written a small game engine and used the knowledge from the guide to implement Sonic game play mechanics. The engine is open source and use is unrestricted under the MIT licence, so have at it!
You can find everything at the Github repo at https://github.com/RobTF/spikeball
The engine may be somewhat different from many others as it does not use any existing game development framework, but instead is my own design written using pure C# with no third party libraries. Map/level editing is done using the wonderful "Tiled" map editor. The engine is actually quite generic and could be used as the basis for a Sonic fan game or even something completely different. I've tried to keep everything as simple as possible whilst having enough features to be fun and useful.
The actual engine logic is completely independent from the rendering, there is no dependency on sprite sizes or resolutions so it would be possible to use higher definition graphics (such as those used in Sonic 2 HD) as opposed to the ripped Sonic sprites I'm currently working with />/>
Although I've supplied a renderer in the form of a Windows application using Direct2D, the code is portable to other platforms via Mono/Xamarin and if there was interest, I'd be happy to create a renderer using something like Cairo or SkiaSharp that would work on iOS/Android.
If anyone is interested, has comments or would like to contribute that would be great!
thanks for reading and happy hacking,
P.S - During development I have noticed what may be a couple of errors in the maths within the Sonic Physics guide. I'm not 100% sure as there is a chance it could simply be a side effect of how I've implemented things but if anyone thinks could be worthwhile I'm happy to post details about this when I get some more time.