Only to advice:
I, as creator of a 2D Game Engine (i will public release the engine when i have time) i recommend:
If you want to make a game, you have a lot of Game Engines out there, you don't need to create one.
If you want to make your own becuase others game engines does not convince you, or, you want to learn.
Before launching you to this world, it will be not only good to lear how to use SFML and basic C++.
A really good engine need to be done by:
- People that knows about graphics processing.
- People that knows about good C/C++.
- People willing to read and investigate a lot.
- People that have time that can invest on the development of the game engine.
- More than 1 people.
Why more than 1 people?
You don't need only to create the engine, you also need to:
- Test it (a lot).
- Try to make the API programmer friendly.
- Make a proper documentation.
- If it will be multi-platform no one people can deep learn Windows/OSX/Linux/Android/IOS so you'll need people involved particularly in each individual area.
But in your time develping the engine, you may never finish it, but you'll end up learning a lot of things.
Have luck and fun in adventure.