· Extensive knowledge of C/C++ programming languages.
Whats really important at your stage is to pick something you like and stick with it for a while. Once you have it down, jumping to other languages is a lot easier, because you can map your previous experiences to the new ones and understand the differences/advantages of languages. That said, C/C++ are staples in the industry for AAA quality, efficient games; if you have the opportunity and inclination, go for it. C# is another popular option. Some classes force you to write in Java, Python, etc., the important thing right now is to continue piling on knowledge of the fundamentals and gaining practical experience with projects.
· Visual Studio experience.
Whiles its a common IDE that people use, its just a tool you can learn to improve your workflow, this shouldn't be a hard requirement at most places. What is really important is to understand how to leverage the IDE/tool set you have available to build and debug your projects efficiently. Pick something that fits your needs and always be open to trying new tools.
· Familiarity with Unreal 4, including ample familiarity with the Blueprint system.
UE4 is great! Unity is great! Making things is GREAT! Go to any major website for a game engine and they have a learning section to get your feet wet. Google "[Insert Game Engine here] tutorial" and you will drown in results. This website has them in the menu bar right on the left side of the screen! Don't stress about picking the perfect project, just start making something! Attend a game jam or hackathon in your local area via game dev meetups or w/e.
IMO, for entry level positions, most folks are looking for you to understand the building blocks of programming, cause they plan to mold you into what they need. Having a project with tangible features/systems to point to are great talking points during an interview. Make sure to document your progress and have it as a portfolio of some kind, give people something to start the conversation on and wow them with your understanding.
· Excellent 3d math skills.
Take more maths for your extra classes while still in school, see if you can join a math club or programming club (seriously, get involved), and try to challenge yourself with problems that require more difficult math than you currently do. Khan academy has great math classes you can take for free, online. You should know geometry, trig, discrete, and all the calculus your brain can handle. I know plenty of programmers that are not math heavy, so its not always a requirement, but its a huge leg up! With more pay!
· Familiarity with Maya is a plus.
Try to be a T shaped person, i.e., be very deep in one domain, and know a decent amount in two others. The more time you spend on your main domain (programming), the better. For the other two pick something: design, art, production, audio, narrative/creative writing, marketing, business, w/e gets you excited. Then you should find ways to mix those skills into something unique, rather than just throw yourself full force into several domains and find out your are not particularly great at any one thing. You should know the other domains within game development at a shallow level, there is a saying “Jack of all trades, Master of none”.
Something you didn't mention is ability to work with a team. You can be a genius programmer, but if you lack the ability to communicate and collaborate, and just have terrible personality overall, you will get passed over in a heartbeat.
Be kind, work hard, and good luck!