I've been doing simple game development in a different programming language, but that's irrelevant, my question is, in video games, how do you make different parts of a mesh in an object move independently from the rest of the mesh, like when a video game is in third person mode and you can turn the head and look every where without messing up the rest of the mesh animation and stuff, any links or help would be very much appreciated.
Interesting question, I've always imagined stuff like that to be some sort programming that that is unimaginably complex, and will take me years to apply to anything. But that's how I think of anything I don't understand. Like I thought the only way to make programs was to memorize long strings of 0's and 1's. I'll keep in tab for answers.
like when a video game is in third person mode and you can turn the head and look every where without messing up the rest of the mesh animation and stuff
Typically, the character is modeled as a set of bones and joints with a mesh wrapped around them. An animation can be modeled as a subset of the bones doing a particular movement with taking the degrees of freedom of each bone/joint combo into account. A head turning can be very simple from the bone perspective if you just want the bone(s) of the head to turn. As bones move, the points in the mesh attached to them are transformed to match the motion.
The animations are usually imported from some modelling program (e.g. Maya). The engine is responsible for interpreting the animation data (which is imported together with the character mesh) and mapping it to movements within the game.
A basic pipeline may look like this:
1. Animator creates a character model and labels its bones/joints.
2. Animator creates a set of animations. "Attack", "Jump", etc. which transform a particular subset of bones in some fashion
3. Character model (3D mesh + animations) are imported into the engine (could be at run time)
4. Engine takes the animation data and maps it to movements. Each animation will end up being a particular instance of an "Animation" class, for example, which knows which Bones (can be a class as well) for which character will move and how they move.
5. User presses the "A" button. Engine determines the Attack instance of Animation will run. As the Animation runs, the physics system determines collisions and the rendering system displays the result.
I haven't programmed an animation system before, though I wouldn't think that any libraries do it per se (could be wrong though). That is, each engine has its own animation system, so if you want a ready-built animation system, you'll have to look into an open source engine such as Ogre (does it do animations or just rendering?), Irrlicht, Panda3D, Unity, etc.