I think that instead of making an universal engine (which would be much more time consuming and hard to think through), you should create different engines\systems for the games you make. Each game you make will have a different one (different as in built from scratch, even if it uses similar code\logic from previous ones, like if it's the same genre - you can use previous stuff).
That way you can create a more customized engine for each game you make, and be able to take a more artistical approach to it. Making a universal engine means you'd have to have the same conditions from one world to another, and besides having to be data-based, you wouldn't have so much freedom as you would if you had built an adapted engine from start (well you could make it VERY universal but that would take an incredible amount of time and knowledge of the subject).
I think re-writing stuff from scratch is the best way. You'll end up having a library of procedures common to all games (like special effects that are not genre-specific) since every time you write the code you naturally end up finding out which procedures get repeated each time you get a game.
That can be used to ease up on the time spent developing the overall game.
That way you can create a more customized engine for each game you make, and be able to take a more artistical approach to it. Making a universal engine means you'd have to have the same conditions from one world to another, and besides having to be data-based, you wouldn't have so much freedom as you would if you had built an adapted engine from start (well you could make it VERY universal but that would take an incredible amount of time and knowledge of the subject).
I think re-writing stuff from scratch is the best way. You'll end up having a library of procedures common to all games (like special effects that are not genre-specific) since every time you write the code you naturally end up finding out which procedures get repeated each time you get a game.
That can be used to ease up on the time spent developing the overall game.