I am an interface designer by trade, but I have always had a great interest in learning to develop video games. The problem is that I am really unsure of where to remotely begin. Perhaps I could tell you my goals and have you suggest a route to begin? My goal is to be able to create/develop 3D video games similar to San Andreas. So let's say I wanted to create Grand Theft Auto: San Andreas... where would I start as a complete beginner?
Questions from a newcomer
That's a really common question, the starting route is always the same regardless of the final game you want to make: Put your final goal aside, start making simple games.
Look here: http://www.gamedev.net/page/reference/faq.php/_/for-beginners-r1
For your particular goal, you'll probably never be able to make a game like GTA San Andreas by yourself, even a really good programmer and designer would have serious troubles making something like that, consider how many people worked to make that game, the time and the money they invested. It was probably a big team, working full time, and needed millions of dollars (and the company had a lot of experience with previous GTA games, which made everything a lot faster probably).
I think you may be leaning more towards the programming side of things so I will gear my answer to that - though as stated above, it is hard to tell. Also note that, as stated above, making a large game such as that requires a team of people, though something much smaller scale in my opinion is achievable if you work at it :)
Starting out with text based games such as number guessing and maybe even an old text based RPG are good projects to learn from. While drastically smaller in scale, they are still helpful in the learning process. After becoming comfortable with those moving onto 2D games is commonly the next step. Reason being 3D games add much more complexity to games and most of the math you learn in 2D applies easily to a 3D game. After doing many small 2D games, moving to 3D is a venture of its own complete with a unique set of challenges to solve :) There are plenty of helper libraries for things like graphics and sound if you are wanting to do and learn more than just using an engine.
If you just want things "to work" there are numerous free engines which support scripting. Rather then deal with how things work internally you can instead focus more on writing the game. While doing this removes the need to know how to use many different libraries you still need to know some math along side whichever language your engine uses.
Engines and libraries are relatively common questions asked here, so I encourage you to look around using the search to see what others suggest.
Good luck :)
You will also need a great language. I recommend using the Delphi Programming Language, because you can create games for windows, ios, osx, android, linux, xbox, etc with the same codebase.
My goal is to be able to create/develop 3D video games similar to San Andreas. So let's say I wanted to create Grand Theft Auto: San Andreas... where would I start as a complete beginner?
The last few GTA games have been measured in fractions of a billion. So start out with a quarter billion dollars, then hire several hundred experienced developers...
The For Beginners FAQ has already been mentioned. The Breaking In FAQ is also a bunch of excellent reading.
The very brief summary is to figure out what you want to do and build a path that is unique to you alone. If your interest really is programming, then the standard industry path begins with a degree in Computer Science or equivalent, along with building small game-related stuff on your own. More details in among all those FAQ links.
Choose a good game engine. You should probably use the standard coding language which is recommending by the game engine developer. That could be Python, C#, C+, Java, and so forth. Usually you should avoid the native language that the game engine developer invented, but there are exceptions which I will not cover here. Preferable is that you choose a language where you have a lot of experience.
Next you need to focus on programming basic applications for the game engine, such as GUI, display "Hello World" on the screen, import 2D textures to be displayed and make them user operated with device controls, and so on. Think of a game engine as both a development framework and a runtime environment for running code which will do what you want, though there are many variations of game engines. Some game engines depend on an already existing runtime, such as that inside of .NET Framework and may use a combination of game engine framework and platform framework. The important thing to remember is that you are selecting a game development pipeline of software and applications. Read my signature at bottom.
Make simple single person 2D games
Create simple multiplayer 2D games
Develop single person 3D games
Create multiplayer 3D games
Well san andreas is a big goal, there must be hundred of thousands of assests. I guess it could be done with plugins, like city generators, character generators, vehicle gens etc, then script the heck out of it.