in other words "shut up and make the damn game" is a good advice to follow
Exactly my experience with unity. There's all this cool stuff, but I don't understand how it works and can't take a step away from tutorials because of that. And since I have to implement most of the stuff myself anyway (Pathfinding on a tilemap, battle and travel ai, character movement, game screen logic etc) I might as well do it the hard way. Also, making 2d in unity is an overkill IMHO. It's like using an excavator to set up a mail box.
While I agree with a lot of your points, we disagree on the OOP and Garbage Collection languages. I develop in C# using Monogame and have excellent performance with what I am doing (2d, Top Down). As with all language and tool choices you have trade offs to make. Garbage collection only happens when memory pressure is high or there is significant idle time (over simplification). There are many things you can do to help reduce GC. If your objects are never disposed, they never get collected (reuse objects, cache, etc...). A game like yours could easily be written in C# and you wouldn't see any performance issues.
Is there any specific reason for prefering to use a C flavour of C++ rather than just C for you? I imagine using stuff like namespaces and other non oop related features would be a good reason
How did the college talk go?
gonna have a hard time selling your game is using ai art
@DavidLindes