I'm mostly asking this question because I don't know how to phrase it well enough to get relevant google results. I'm very ignorant about modding, but I know that in the general case it's a lot easier than doing your own stuff from scratch. Are there any good games out there that are mod-able that would help a beginner practice some 3D programming (as in, collision detections, transforms, etc in 3D)? If someone has already asked this question and you can find it, then I'd be very thankful for the link, and I'm sorry for posting something that has been answered. If you don't completely understand my question, I'd be happy to rephrase it if you let me know.
Crossbones+ - Reputation: 3172
Posted 20 January 2013 - 08:35 AM
So you want to learn 3D Graphics programming? or 3D Gameplay programming?
You can learn graphics programming using D3D/OpenGL APIs or a graphics engine like Ogre3D. To write graphic effects you don't need collision detections, etc, and a beginner should learn how to use matrices to perform transforms, etc. If you want to include physics there are a lot of physics engines that will make the job easier (PhysX, Havok, etc)
To learn gameplay programming I would suggest an game engine like Unity or UDK, which will handle most of the rendering/physics so you can focus on the gameplay.
You have to decide how deep you want to go into graphics or gameplay programming:
1 - UDK - Write gameplay scripts, create materials/effects (using graphs without any programming).
2 - Unity - Write shaders but with limited access to the Graphics API, plus all of the above.
3 - Ogre3D - A lot more access to the Graphics API, but doesn't handle physics natively, etc.
4 - D3D/OpenGL - Access to "everything" but you also have to write every effect, scene manager, etc (everything the game will need you have to write).
Members - Reputation: 312
Posted 23 January 2013 - 05:21 PM
for collision and transforming 3d stuff i'd recommend linear algebra lessons ^.^
to get started don't use opengl or directx stuff, it's just frustrating, use (if you want to learn about 3d graphics) a rendering engine like ogre3d(c++) or jmonkeyengine(java)
pick something that supports a programming language you already mastered.
i don't recommend using udk or unity because in my opinion those engine abstract the whole "3d world" thingy to a pretty high level, which would result in learning how to use a particular game engine and not learning about 3d graphics
ogre and jmonkey abstract this also, but to an intermediate level, where you don't have to deal with opengl/directx and displaying single triangles in the beginning, you can start off learning how to use a scenegraph and stuff to display and transform objects in 3d space
well that's how a began graphics programming in school ^.^ now i study media informatics at technical university in vienna and learn about all the details behind the scenes, like programming opengl and mathematics
Edited by DDoS, 23 January 2013 - 05:22 PM.