So I'm interested in becoming a game developer and am currently going to college as a computer science major. I'm still getting through all of the gen-ed classes but was wanting to start getting into programming again (I used to dabble with c++ in late middle school/early high school). My problem is I'm not sure which programming language to tackle first. Should I just relearn c++, go straight to c#, what about Java, or maybe lua? I'm not sure. Any insight would be extremely appreciated.
What Programming Language Should I Tackle First?
There are ten kinds of people in this world: those who understand binary and those who don't.
My strongest recommendation, no matter which language you choose, is to finish projects. The likelihood of being hired skyrockets if you say you made a Tetris clone as part of your learning than if you say you tried to make a Tetris clone. Even if you go apply for a job in a different field, you're still more impressive when you say you start and finish things for fun, which is what you're doing when you do it without being told it is an assignment. Businesses want people who get things done, not who give up halfway through.
Well, having been through a dedicated "Games Programming" degree at uni, one of the big things that the larger AAA style of studios we got to talk to / apply to internship at were looking for language wise were C++ skills, and at the slight smaller studios this shifted to C# and Unity skills.
Either will give you a good grounding in programming though personally I find that learning a lower level language for example C++ gives you a better understanding and makes it easier to transition to other languages.
One of the lecturers I had was a guy who (long time ago) worked on the old Dune and Orig C&C games, and he was always advocating that if you can program in C++ picking up any other languages is fairly simple, and working full time now in C# I do kind of agree.
But really, it does depend on your end goal. If you want to jump into a job at a triple A studio, focus on things like C++ and pick up a specialization (UI, Physics, Gameplay). But if you want to start your own studio or get a job at a smaller company, then work at C# / Unity and while you should still focus on a specialization really, a broader set of skills can be useful at smaller indie devs too.
In my opinion go for c#...You can find lots of online training sections and tutorials on C#..
I say yes, go with C++.
Reasons, 1) you have already done some C++ before, so it's not entirely new, 2) it's the industry standard for game development, 3) you're a college CS major so you should be able to handle it. C++ is not really that hard to learn, especially if you're using modern C++. I taught basic C++ to my 12 year old niece, so you can probably learn it as well. If you cant, then you might want to consider changing your major to something else. And 4) C++ will teach you how the hardware works and how things like memory management works more than some other high-level languages that will hide stuff from you. Again, CS major, so you should know how the hardware works and how to program for it.
I'd go with a simple language. The more fun and easy it is to get something up and running the more likely you are to finish it. I quite like pygame https://www.pygame.org/news.
And don't overlook JavaScript, that's my current language of choice. I know it has its detractors but it's super easy to get started. All you need is a simple file editor (like notepad++) and a browser. https://www.w3schools.com/html/html5_canvas.asp
I would say that, since you are going to start a collage degree in computer science, you have to take the language they use for your first computer science course.
Honestly, you first need to learn programming very well, before programming games.
So why not learning what you need for college and starting from there?
Chances are high that it will be python or Java or C.
Once you master the language and the basic concept and algorithms it will be easy to transfer them to another language.
I say yes, go with C++.
Reasons, 1) you have already done some C++ before, so it's not entirely new, 2) it's the industry standard for game development, 3) you're a college CS major so you should be able to handle it. C++ is not really that hard to learn, especially if you're using modern C++. I taught basic C++ to my 12 year old niece, so you can probably learn it as well. If you cant, then you might want to consider changing your major to something else. And 4) C++ will teach you how the hardware works and how things like memory management works more than some other high-level languages that will hide stuff from you. Again, CS major, so you should know how the hardware works and how to program for it.
I don't agree completely with your point 4.
C++ will teach you memory management for sure but forget about the hardware. Digital electronics will teach you how the hardware works, not C++. It's just a little less abstract than a language like C# but you don't actually see anything of the real hardware and it's good as it is.
If it required specific hardware knowledge you would have a very little amount of C++ programmer.