I spent most of high school trying to develop my own game engine, as well as learning new graphics techniques. I spent a ton of time rewriting my engine to have all sorts of shaders and I wasted time trying to design realistic levels and ZBrush sculpted models to match AAA quality. It was certainly a lot of fun and I learned a lot, but as far as the end result was going, I never liked the direction and gameplay and I kept rewriting it.
I think that trying to ground the gameplay mechanics in reality destroys a lot of the fun, and it took me a long time to figure this out. All the games I wanted to play when I was younger were based on modern weapons and movement. However, after playing and mapping for various versions of Quake, and playing Doom, I realized that fast-paced and complex movement mechanics made the game significantly more fun. The game is so much better when you get an arena full of enemies you have to airstrafe and hit with flickshots and various types of aim mechanics (tracking, prediction, hitscan).
The issue is pandering to the lowest common denominator of players and telling a good story. I had a great story I wanted to tell, but adding all sorts of unrealistic mechanics didn't make sense and I couldn't create characters to justify their abilities. I also find it incredibly difficult to get someone into a game that throws all regular movement and guns out the window.
I wanted to go all out with a game using GoldSource type graphics (easier to make), advanced mechanics like Quake 3 movement normally and Quake 1 movement when crouching, and try using machine learning trained enemies or just throwing a million enemies into a room with lots of verticality. Also, I wanted to add VR support, but the movement mechanics would need to be changed because I tried to bunnyhop in VR and I just couldn't find a good way to do that without being distracting.
If you made a game, what mechanics would you add and how would you justify it in the story?