If you want to gain some footage over the other class mates, learn the differences in OpenGL and DirectX. Do a lot of research using google to understand why those two are being called from within Ogre. It may seem out of the way, but the truth of the matter is, Ogre is just a front end for one or both of those two APIs. The reason that its important to know WHICH API your using is because of the Shader Language and Hardware support. With DirectX its known as HLSL or High Level Shader Language. In OpenGL its shader is GLSL ( OpenGL Shader Language ). ( Both have a similar C like scripting language. ) Shaders are used in practically all 3D games in general now days if you want the game to look good. Example : I wrote a game in BASIC. But I had to know the Shader language of choice for my game if I wanted to use water and make it look good, which means I had to know if my game supports DirextX or OpenGL. Well the Language IDE I used for BASIC ONLY uses DirectX, so I had to know this so that I knew which shader language to use. Which in my case at this time was HLSL.
It is the same no matter what Engine you use or graphics API you use. You must know the main API your working with so that you can prepare yourself. This ALSO means you need to know what the NATIVE version of DirextX and OpenGL your video card can support. ( Native meaning it is supported by default from the manufacture. ) This is VERY important. Why ? Well take the game Crysis 2 as an example. It supports DirectX 9 and DirectX 11. But, DirectX 11 tessellation support is NOT enabled by default unless your video card is a NATIVE directx 11 video card. Meaning, you will NEVER be able to enable support for DirectX 11 on a video card that is only native for DirectX 9. You CAN install DirectX 11 video drivers, but the hardware was not made for it meaning NOT ALL features will be supported. ( SOME features might be supported though. ) Tessellation is actually one of those features that is a DirectX 11 Native support ONLY. So no card that has a previous native version of DirectX 9 will use it. So in Crysis 2, I have seen sooo many posts on their forums from people that complain about how they cannot enable DX11 support and its because of their video card every time. Graphics programmers NEED to know these little tidbits. Your target audience is everything in game design. This is where research comes in to play here to knowing what the target audience is using as an average when it comes to Video Cards. In other words, is the average user supporting DirectX 9 or 11 now days, or are they using OpenGL 2.1 or 3.3 now days.. When your done making your game, will the target audience be using DirectX 11 on the average, even if DirectX 12 comes out ?
Now i'm not saying that your Native DirectX 9 video card cannot install the DirectX 11 Drivers. Nope. But I am saying that not all the features will be accessible by your video card. Same goes with OpenGL.
Believe it or not, everything I just mentioned here you will learn over time. 3D Game programmers understand this. Its why sooo many in class quit the class before its finished because there is SOO much you have to know. And knowing the Video Hardware as well as which API your going to use is one that is important and most fail at this. They see the glamor in game making but don't realize what all is involved and I have to admit it is a LOT of work. But oh so awesome once your see your 3D come to life.
This is a demonstration of a terrain I did in BASIC using the DarkBasic Pro engine ( DirectX support only. ) If I did not know that I was using DirectX, I would not have known which shader language I could use. So don't listen to people who tell you that you do NOT need to know which API and other info. It just means they are not 3D game programmers, even if they are good at programming. ( Notice how I say 3D all over my post, not 2D game programming. Shaders are not always used in 2D game design and so my whole post here would be useless. )
NOTE : Please forgive the first video, I was not actually planning on putting this out there for the public originally when I made it so the sound was bad. The second shows you that I accomplished shadows on a Matrix Terrain by making aligning the Matrix Normals. If you do not understand Matrix Math and Normals, you will learn this in class. Hopefully. Its a LOT of math, just letting you know now. ( Algebra and Trigonometry )
NOTE : I forgot to mention Cg library which is the Cg shader language. All this is, is the basic functions that most all GPUs know and can use. A lot of 2D gamers will use this too.