I agree with the comment that C would be harder than C++ or another language, it's certainly possible to do in C. You would end up recreating a lot of C++ or object oriented features as part of your project framework - work you wouldn't have to do otherwise. But you'd learn a lot, which sounds like your goal.